This series enables support to VK_KHR_8bit_storage vulkan extension for anv. It enables all capabilities available for this extension including StorageBuffer8BitAccess, UniformAndStorageBuffer8BitAccess and StoragePushConstant8.
8-bit read operations from UBO and SSBO and push constants are already supported by the backend so this series only implements the pending write support for SSBO and the conversions to/from 8-bit integers. This series is applied on top of VK_KHR_create_renderpass2 series already sent by Jason that updates the vulkan XML and headers to 1.1.80. Only patch 2 (fix for register allocator to avoid grf127 overlaps) and 7 (spir-v headers update) have pending review. This series is organized as follows: * Patchs 1-2 were already submitted, but patch 2 has pending review. They implement the restriction of "r127 must not be used for return address when there is a src and dest overlap in send instruction." We need to fix this to avoid faling 2 CTS test of this new extensions. * Patch 3 enables 8-bit support in some helpers. * Patch 4 enable conversions to 8-bit integers. * Patches 5-6 implement 8-bit write operations for SSBO. They also relax the requirements of the brw_eu_validate to allow raw movs of bytes altough there are difference between exec size and dest size. * Patches 7-9 enable the Vulkan and SPIR-V 8bit_storage extensions. SPIR-V headers are updated. With this series we pass all CTS VK_KHR_8bit_storage tests: dEQP-VK.spirv_assembly.instruction.*.8bit_storage.* Jose Maria Casanova Crespo (9): intel/compiler: grf127 can not be dest when src and dest overlap in send i965/fs: Register allocator shoudn't use grf127 for sends dest i965: Support for 8-bit base types in helper functions i965/fs: Enable conversions to 8-bit integers intel/compiler: relax brw_eu_validate for byte raw movs i965/fs: Enable store_ssbo for 8-bit types. spirv: Include headers and grammar for SPV_KHR_8bit_storage spirv/nir: Add support for SPV_KHR_8bit_storage anv: Enable SPV_KHR_8bit_storage and VK_KHR_8bit_storage src/compiler/shader_info.h | 1 + src/compiler/spirv/spirv.core.grammar.json | 44 ++++++++++++++++++---- src/compiler/spirv/spirv.h | 3 ++ src/compiler/spirv/spirv_to_nir.c | 5 +++ src/intel/compiler/brw_eu_validate.c | 19 ++++++++-- src/intel/compiler/brw_fs_nir.cpp | 28 ++++++++++---- src/intel/compiler/brw_fs_reg_allocate.cpp | 25 ++++++++++++ src/intel/compiler/brw_nir.c | 4 ++ src/intel/vulkan/anv_device.c | 11 ++++++ src/intel/vulkan/anv_extensions.py | 1 + src/intel/vulkan/anv_pipeline.c | 1 + 11 files changed, 124 insertions(+), 18 deletions(-) Cc: Jason Ekstrand <ja...@jlekstrand.net> Cc: Iago Toral <ito...@igalia.com> -- 2.17.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev