[Mesa-dev] [PATCH 0/7] anv: VK_KHR_16bit_storage enabling SSBO/UBO/PushConstant

Jose Maria Casanova Crespo jmcasanova at igalia.com
Fri Feb 23 09:26:09 UTC 2018


This series includes several fixes to allow enabling the VK_KHR_16bit_storage
features in ANV that have already landed but are currently disabled.

The series includes the following fixes:

   * [1] Fixes issues in UBO/SSBO support when buffer size is not multiple
     of 4. Patch adds a padding so the size will always include the last DWord
     completelly. For unsized SSBO arrays there are some bits arithmetic to allow
     recalculating the original size without the padding to calculate the
     number of elements correctly.
   * [2-3] Fixes the behaviour when VK_KHR_relaxed_block_layout is enabled, as
     we can not guarantee that the surface read/write offsets are multiple of 4.
   * [4] Enables VK_KHR_16bit_storage for SSBO and UBO.
   * [5-7] Enables 16-bit push constants removing/changing asserts that don't
     apply anymore to 16-bit case and a fix in the calculus os the size to be
     read.

To catch this issues several new tests were developed and they will be included upstream
to VK-GL-CTS as soon as possible.

I will re-submit a rebased V5 series with the 16-bit Input/Output support that is still
pending of review.

Cc: Jason Ekstrand <jason.ekstrand at intel.com>
Cc: Topi Pohjolainen <topi.pohjolainen at intel.com>

Jose Maria Casanova Crespo (7):
  anv/spirv: SSBO/UBO buffers needs padding size is not multiple of
    32-bits
  i965/fs: Support 16-bit do_read_vector with
    VK_KHR_relaxed_block_layout
  i965/fs: Support 16-bit store_ssbo with VK_KHR_relaxed_block_layout
  anv: Enable VK_KHR_16bit_storage for SSBO and UBO
  spirv: Calculate properly 16-bit vector sizes
  spirv/i965/anv: Relax push constant offset assertions being 32-bit
    aligned
  anv: Enable VK_KHR_16bit_storage for PushConstant

 src/compiler/spirv/vtn_variables.c              | 19 ++++-
 src/intel/compiler/brw_fs_nir.cpp               | 98 ++++++++++++++++++-------
 src/intel/vulkan/anv_descriptor_set.c           | 16 ++++
 src/intel/vulkan/anv_device.c                   | 18 ++++-
 src/intel/vulkan/anv_extensions.py              |  2 +-
 src/intel/vulkan/anv_nir_lower_push_constants.c |  2 -
 6 files changed, 120 insertions(+), 35 deletions(-)

-- 
2.14.3



More information about the mesa-dev mailing list