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

Chema Casanova jmcasanova at igalia.com
Wed Feb 28 19:14:21 UTC 2018


On 28/02/18 18:02, Jason Ekstrand wrote:
> I think all the interesting patches are reviewed now.  All the boring
> "turn stuff on" patches are
> 
> Reviewed-by: Jason Ekstrand <jason at jlekstrand.net
> <mailto:jason at jlekstrand.net>>

Thanks a lot for the quick review of the series. One step less to enable
the VK_KHR_16bit_storage features completely.

Chema

> On Tue, Feb 27, 2018 at 5:27 AM, Jose Maria Casanova Crespo
> <jmcasanova at igalia.com <mailto:jmcasanova at igalia.com>> wrote:
> 
>     This v2 series includes several fixes to allow enabling the
>     VK_KHR_16bit_storage
>     features in ANV that have already landed but are currently disabled.
> 
>     Main differences with V1 [1] are:
> 
>        * Now UBO/SSBO padding for buffers size not multiple of 4 [1/8]
>     is done
>          in isl and the calculus to get the original buffer size before
>          padding is done in the backend.
>        * Now load_ubo/ssbo [3/8] at constant offsets use
>     untyped_surface_read
>          in all cases. A new patch [2/8] enables the
>          shuffle_32bit_load_result_to_16bit_data to skip components.
>        * vtn_type_block_size [6/8] has been simplified using
>     glsl_get_bit_size.
> 
>     Patches 2 and 3 and the re-enablement of features 5 and 8 are the
>     ones with
>     pending review.
> 
>     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-4] Fixes the behaviour when VK_KHR_relaxed_block_layout is
>     enabled, when
>          we can not guarantee that the surface read/write offsets are
>     multiple of 4.
>        * [5] Enables VK_KHR_16bit_storage for SSBO and UBO.
>        * [6-8] 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.
> 
>     This new version of this fixup series creates some conflicts in the
>     re-submitted
>     V5 series with the 16-bit Input/Output support that is still pending
>     of review.
>     An updated version including both series has been force-pushed at [2]
> 
>     [1]
>     https://lists.freedesktop.org/archives/mesa-dev/2018-February/186544.html
>     <https://lists.freedesktop.org/archives/mesa-dev/2018-February/186544.html>
>     [2] https://github.com/Igalia/mesa/tree/wip/VK_KHR_16bit_storage-rc5
>     <https://github.com/Igalia/mesa/tree/wip/VK_KHR_16bit_storage-rc5>
> 
>     Cc: Jason Ekstrand <jason.ekstrand at intel.com
>     <mailto:jason.ekstrand at intel.com>>
> 
>     Jose Maria Casanova Crespo (8):
>       isl/i965/fs: SSBO/UBO buffers need size padding if not multiple of
>         32-bit
>       i965/fs: shuffle_32bit_load_result_to_16bit_data now skips components
>       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              |   9 +-
>      src/intel/compiler/brw_fs.cpp                   |   2 +-
>      src/intel/compiler/brw_fs.h                     |   3 +-
>      src/intel/compiler/brw_fs_nir.cpp               | 124
>     ++++++++++++++++++------
>      src/intel/isl/isl_surface_state.c               |  22 ++++-
>      src/intel/vulkan/anv_device.c                   |  18 +++-
>      src/intel/vulkan/anv_extensions.py              |   2 +-
>      src/intel/vulkan/anv_nir_lower_push_constants.c |   2 -
>      8 files changed, 137 insertions(+), 45 deletions(-)
> 
>     --
>     2.14.3
> 
>     _______________________________________________
>     mesa-dev mailing list
>     mesa-dev at lists.freedesktop.org <mailto:mesa-dev at lists.freedesktop.org>
>     https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>     <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>
> 
> 


More information about the mesa-dev mailing list