This commit is contained in:
2021-03-12 21:44:06 +01:00
parent d83045394c
commit f5ed8f4e40
2 changed files with 7 additions and 7 deletions

View File

@@ -467,18 +467,18 @@ impl VulkanRenderer {
let mut offset: usize = 0;
for i in 0..13 {
let mut mip_size = dimensions.width_height_depth();
mip_size[0] = mip_size[0] / u32::pow(2, i);
mip_size[1] = mip_size[1] / u32::pow(2, i);
let mip_size = dimensions.to_image_dimensions().mipmap_dimensions(i).unwrap().width_height_depth();
println!("Mip level {}, dimensions {:?}", i, mip_size);
// TODO: load sizes from DXT header instead
// 4 bits per pixel in DXT1 -> 1/2 byte
let mip_byte_size = ((mip_size[0] * mip_size[1]) / 2) as usize;
let mip_byte_size = ((mip_size[0] * mip_size[1]) / 2 + 8) as usize;
let source = CpuAccessibleBuffer::from_iter(
device.clone(),
BufferUsage::transfer_source(),
false,
bytes[offset..(offset + mip_byte_size + 8)].iter().cloned(), // +8 because rounding errors???
bytes[offset..(offset + mip_byte_size)].iter().cloned(),
).unwrap();
cbb.copy_buffer_to_image_dimensions(
@@ -505,7 +505,7 @@ impl VulkanRenderer {
future.flush().unwrap();
let sampler = Sampler::new(device.clone(), Filter::Linear, Filter::Linear,
MipmapMode::Linear, SamplerAddressMode::Repeat, SamplerAddressMode::Repeat,
MipmapMode::Nearest, SamplerAddressMode::Repeat, SamplerAddressMode::Repeat,
SamplerAddressMode::Repeat, 0.0, 1.0, 0.0, 12 as f32).unwrap();
self.game_data.textures.push(Texture { image: image_view, sampler });