[Mesa-dev] [PATCH 0/9] anv: Enable VK_KHR_8bit_storage
Jose Maria Casanova Crespo
jmcasanova at igalia.com
Mon Jul 9 00:27:05 UTC 2018
This series enables support to VK_KHR_8bit_storage vulkan extension
for anv. It enables all capabilities available for this extension
including StorageBuffer8BitAccess, UniformAndStorageBuffer8BitAccess
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:
Jose Maria Casanova Crespo (9):
intel/compiler: grf127 can not be dest when src and dest overlap in
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 <jason at jlekstrand.net>
Cc: Iago Toral <itoral at igalia.com>
More information about the mesa-dev