From 0fceb99d89db23dbd0bfc30824a2acdb9a1ac0e4 Mon Sep 17 00:00:00 2001 From: Stanislav Ponomarev Date: Wed, 20 Mar 2024 16:27:47 -0400 Subject: [PATCH] Fixed crash when wgpu tries to read past image data for dds skybox re undoing a pre- ddsfile:0.5.2 workaround --- crates/bevy_render/src/texture/dds.rs | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/crates/bevy_render/src/texture/dds.rs b/crates/bevy_render/src/texture/dds.rs index b3ae1e7cfeb87..2d7894e0866bf 100644 --- a/crates/bevy_render/src/texture/dds.rs +++ b/crates/bevy_render/src/texture/dds.rs @@ -24,23 +24,20 @@ pub fn dds_buffer_to_image( } let mut image = Image::default(); let is_cubemap = dds.header.caps2.contains(Caps2::CUBEMAP); - let mut depth_or_array_layers = if dds.get_num_array_layers() > 1 { + let depth_or_array_layers = if dds.get_num_array_layers() > 1 { dds.get_num_array_layers() } else { dds.get_depth() }; - if is_cubemap { - if !dds.header.caps2.contains( - Caps2::CUBEMAP_NEGATIVEX - | Caps2::CUBEMAP_NEGATIVEY - | Caps2::CUBEMAP_NEGATIVEZ - | Caps2::CUBEMAP_POSITIVEX - | Caps2::CUBEMAP_POSITIVEY - | Caps2::CUBEMAP_POSITIVEZ, - ) { - return Err(TextureError::IncompleteCubemap); - } - depth_or_array_layers *= 6; + if is_cubemap && !dds.header.caps2.contains( + Caps2::CUBEMAP_NEGATIVEX + | Caps2::CUBEMAP_NEGATIVEY + | Caps2::CUBEMAP_NEGATIVEZ + | Caps2::CUBEMAP_POSITIVEX + | Caps2::CUBEMAP_POSITIVEY + | Caps2::CUBEMAP_POSITIVEZ, + ) { + return Err(TextureError::IncompleteCubemap); } image.texture_descriptor.size = Extent3d { width: dds.get_width(),