Hi all, This series is about reworking how we deal with formats a bit. Up to now we had described formats as a set of planes, each of them mapping exactly to 1 HW binding table entry.
When introducing YCbCr support a while back, this way of describing formats prevented us to support YCbCr formats that have a layout with 2 planes interleaved (like VK_FORMAT_G16B16G16R16_422_UNORM, etc...). This is because of a limitation in the design of the HW sampler that makes it yield invalid results if you try to use 2 different views of the same memory region. With Gen11 the HW has been redesigned to get rid of this limitation and we can now use 2 different binding entries to look at a formats like VK_FORMAT_G8B8G8R8_422_UNORM. And as a result, we are also capable to enable 16bits interleaved formats. The changes here are a bit convoluted (apologies) because we have to think a bit more in terms of planes rather than aspects for creating image & image views, but overall we can still stick to aspects in much of the driver. Cheers, Lionel Landwerlin (13): anv: simplify internal address offset anv/image: remove unused parameter anv/lower_ycbcr: make sure to set 0s on all components anv: associate vulkan formats with aspects anv: use image aspects rather than computed ones anv: move helper function internally anv/image: use stored format to figure out plane from aspect anv: convert anv_layout_to_aux_usage to use plane anv: use format stored aspects to build up images & imageviews anv/formats: allow formats to be describe per generation anv: introduce device compatibility checks for format query anv/icl: enable 16bit single plane YCbCr formats anv/formats: drop RGBA swizzle for ycbcr formats src/intel/vulkan/anv_blorp.c | 22 +- src/intel/vulkan/anv_device.c | 4 +- src/intel/vulkan/anv_dump.c | 2 +- src/intel/vulkan/anv_formats.c | 760 ++++++++++-------- src/intel/vulkan/anv_image.c | 423 +++++----- .../vulkan/anv_nir_lower_ycbcr_textures.c | 4 +- src/intel/vulkan/anv_private.h | 112 +-- src/intel/vulkan/genX_cmd_buffer.c | 37 +- src/intel/vulkan/vk_format_info.h | 54 +- 9 files changed, 707 insertions(+), 711 deletions(-) -- 2.19.1 _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
