rsx: Allow compressed textures to be unaligned in size

- Align based on row length but let the texture itself be of arbitrary dimensions
This commit is contained in:
kd-11 2019-10-25 18:32:36 +03:00 committed by kd-11
parent 69e9ee26f6
commit d04241ad25
2 changed files with 3 additions and 8 deletions

View file

@ -1756,9 +1756,7 @@ namespace rsx
if (options.is_compressed_format) if (options.is_compressed_format)
{ {
attributes.width = align(attributes.width, 4); // Compressed textures cannot be 1D in some APIs
attributes.height = align(attributes.height, 4);
extended_dimension = std::max(extended_dimension, rsx::texture_dimension_extended::texture_dimension_2d); extended_dimension = std::max(extended_dimension, rsx::texture_dimension_extended::texture_dimension_2d);
} }

View file

@ -466,12 +466,9 @@ namespace gl
if (LIKELY(is_compressed_format(format))) if (LIKELY(is_compressed_format(format)))
{ {
//Compressed formats have a 4-byte alignment
//TODO: Verify that samplers are not affected by the padding
width = align(width, 4);
height = align(height, 4);
caps.supports_vtc_decoding = gl::get_driver_caps().vendor_NVIDIA; caps.supports_vtc_decoding = gl::get_driver_caps().vendor_NVIDIA;
unpack_settings.row_length(align(width, 4));
unpack_settings.apply(); unpack_settings.apply();
for (const rsx_subresource_layout& layout : input_layouts) for (const rsx_subresource_layout& layout : input_layouts)