[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
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:


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 mailing list