diff --git a/src/video_core/texture_cache/image_info.cpp b/src/video_core/texture_cache/image_info.cpp index 60fbf004f3..d43ffa2eac 100644 --- a/src/video_core/texture_cache/image_info.cpp +++ b/src/video_core/texture_cache/image_info.cpp @@ -63,13 +63,15 @@ ImageInfo::ImageInfo(const TICEntry& config) noexcept { ASSERT(config.Depth() == 1); type = ImageType::e1D; size.width = config.Width(); + size.depth = 1; resources.layers = 1; break; case TextureType::Texture1DArray: ASSERT(config.Depth() > 0); - ASSERT(base_layer < config.Depth()); + ASSERT(config.BaseLayer() < config.Depth()); type = ImageType::e1D; size.width = config.Width(); + size.depth = 1; resources.layers = config.Depth() - config.BaseLayer(); break; case TextureType::Texture2D: @@ -80,15 +82,17 @@ ImageInfo::ImageInfo(const TICEntry& config) noexcept { rescaleable = !config.IsPitchLinear(); size.width = config.Width(); size.height = config.Height(); + size.depth = 1; resources.layers = 1; break; case TextureType::Texture2DArray: ASSERT(config.Depth() > 0); - ASSERT(base_layer < config.Depth()); + ASSERT(config.BaseLayer() < config.Depth()); type = ImageType::e2D; rescaleable = true; size.width = config.Width(); size.height = config.Height(); + size.depth = 1; resources.layers = config.Depth() - config.BaseLayer(); break; case TextureType::TextureCubemap: @@ -97,6 +101,7 @@ ImageInfo::ImageInfo(const TICEntry& config) noexcept { type = ImageType::e2D; size.width = config.Width(); size.height = config.Height(); + size.depth = 1; resources.layers = 6; break; case TextureType::TextureCubeArray: @@ -105,6 +110,7 @@ ImageInfo::ImageInfo(const TICEntry& config) noexcept { type = ImageType::e2D; size.width = config.Width(); size.height = config.Height(); + size.depth = 1; resources.layers = (config.Depth() - config.BaseLayer()) * 6; break; case TextureType::Texture3D: @@ -118,6 +124,7 @@ ImageInfo::ImageInfo(const TICEntry& config) noexcept { case TextureType::Texture1DBuffer: type = ImageType::Buffer; size.width = config.Width(); + size.depth = 1; resources.layers = 1; break; default: diff --git a/src/video_core/texture_cache/image_view_info.cpp b/src/video_core/texture_cache/image_view_info.cpp index ed371e8ec7..d04f574288 100644 --- a/src/video_core/texture_cache/image_view_info.cpp +++ b/src/video_core/texture_cache/image_view_info.cpp @@ -76,7 +76,7 @@ ImageViewInfo::ImageViewInfo(const TICEntry& config, s32 base_layer) noexcept case TextureType::Texture3D: ASSERT(base_layer == 0); type = ImageViewType::e3D; - range.extent.layers = 1; + range.extent.layers = config.Depth(); break; case TextureType::TextureCubemap: ASSERT(config.Depth() == 1);