[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