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

Jason Ekstrand jason at jlekstrand.net
Wed Feb 28 17:02:52 UTC 2018


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>

On Tue, Feb 27, 2018 at 5:27 AM, Jose Maria Casanova Crespo <
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
> [2] https://github.com/Igalia/mesa/tree/wip/VK_KHR_16bit_storage-rc5
>
> Cc: Jason Ekstrand <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
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180228/08c3706d/attachment-0001.html>


More information about the mesa-dev mailing list