Revert "rsx: Downgrade depth-1 3D images to 2D (#11593)"

This reverts commit 6c096b72b5.
This commit is contained in:
kd-11 2022-03-01 20:20:22 +03:00 committed by kd-11
parent 6c096b72b5
commit 00a1864a95
2 changed files with 17 additions and 24 deletions

View File

@ -2092,6 +2092,20 @@ namespace rsx
switch (extended_dimension)
{
case rsx::texture_dimension_extended::texture_dimension_1d:
attributes.depth = 1;
attributes.height = 1;
attributes.slice_h = 1;
scale.height = scale.depth = 0.f;
subsurface_count = 1;
required_surface_height = 1;
break;
case rsx::texture_dimension_extended::texture_dimension_2d:
attributes.depth = 1;
scale.depth = 0.f;
subsurface_count = options.is_compressed_format? 1 : tex.get_exact_mipmap_count();
attributes.slice_h = required_surface_height = attributes.height;
break;
case rsx::texture_dimension_extended::texture_dimension_cubemap:
attributes.depth = 6;
subsurface_count = 1;
@ -2101,30 +2115,10 @@ namespace rsx
break;
case rsx::texture_dimension_extended::texture_dimension_3d:
attributes.depth = tex.depth();
if (attributes.depth > 1)
{
subsurface_count = 1;
tex_size = static_cast<u32>(get_texture_size(tex));
required_surface_height = tex_size / attributes.pitch;
attributes.slice_h = required_surface_height / attributes.depth;
break;
}
// Downgrade to 2D
extended_dimension = rsx::texture_dimension_extended::texture_dimension_2d;
[[ fallthrough ]];
case rsx::texture_dimension_extended::texture_dimension_2d:
attributes.depth = 1;
scale.depth = 0.f;
subsurface_count = options.is_compressed_format? 1 : tex.get_exact_mipmap_count();
attributes.slice_h = required_surface_height = attributes.height;
break;
case rsx::texture_dimension_extended::texture_dimension_1d:
attributes.depth = 1;
attributes.height = 1;
attributes.slice_h = 1;
scale.height = scale.depth = 0.f;
subsurface_count = 1;
required_surface_height = 1;
tex_size = static_cast<u32>(get_texture_size(tex));
required_surface_height = tex_size / attributes.pitch;
attributes.slice_h = required_surface_height / attributes.depth;
break;
default:
fmt::throw_exception("Unsupported texture dimension %d", static_cast<int>(extended_dimension));

View File

@ -24,7 +24,6 @@ namespace vk
dim_limit = (info.flags == VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT) ? gpu_limits.maxImageDimensionCube : gpu_limits.maxImageDimension2D;
break;
case VK_IMAGE_TYPE_3D:
ensure(info.extent.depth > 1);
longest_dim = std::max({ info.extent.width, info.extent.height, info.extent.depth });
dim_limit = gpu_limits.maxImageDimension3D;
break;