mesa/src/broadcom/vulkan
Caio Oliveira fd0a7efb5a spirv, nir: Delay calculation of shared_size when using explicit layout
Move the calculation to nir_lower_vars_to_explicit_types().  This
consolidates the check of shader_info::shared_memory_explicit_layout
in a single place instead of in all drivers.

This is motivated by SPV_KHR_untyped_pointers.  Before that extension
we had essentially two modes for shared memory variables

- No layout decorations in the SPIR-V, and both internal layout and
  driver location was _given by the driver_.

- Explicitly laid out, i.e. they are blocks, and decorated with Aliased.
  Because they all alias, we could assign them driver location directly
  to the start of the shared memory.

With the untyped pointers extension, there's a third option, to be added
by a later commit

- Explicitly laid out, i.e. they are blocks, and NOT decorated
  with Aliased.  Driver location is _given by the driver_.  Blocks
  with and without Aliased can be mixed.

The driver location of multiple blocks that don't alias depend on
alignment that is driver-specific, which we can more easily do from
the nir_lower_vars_to_explicit_types() that already has access to
a function to obtain such value.

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> (hk)
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> (v3dv)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> (anv/hasvk)
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> (panvk)
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> (radv)
Reviewed-by: Rob Clark <robdclark@gmail.com> (tu)
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34139>
2025-04-17 19:13:17 +00:00
..
.dir-locals.el
.editorconfig
meson.build v3dv: Switch to use libbroadcom_perfcntr 2024-12-02 14:13:24 +00:00
v3dv_android.c v3dv/android: Migrate ANB and AHB to use common helpers 2024-05-16 00:27:24 +00:00
v3dv_bo.c v3dv: Add some CPU tracepoints 2025-01-16 22:31:17 +00:00
v3dv_bo.h v3dv: store the offset of the BRANCH instruction in a CL 2024-04-03 12:57:56 +02:00
v3dv_cl.c v3dv: use Mesa log infrastructure instead of using stderr 2024-11-26 12:09:29 +00:00
v3dv_cl.h v3d,v3dv: document cl_emit_with_prepacked 2024-06-07 09:44:13 +02:00
v3dv_cmd_buffer.c v3dv: asserts push constants data is valid 2025-04-04 15:55:12 +00:00
v3dv_descriptor_set.c v3dv: check dynamic offset output 2025-04-04 15:55:12 +00:00
v3dv_device.c v3dv: avoid TFU reading unmapped pages beyond the end of the buffers 2025-04-15 00:17:11 +02:00
v3dv_event.c v3dv: don't lower fsat on V3D 7.x 2024-07-10 08:30:21 +02:00
v3dv_formats.c v3dv: check requirements for USAGE_INPUT_ATTACHMENT 2025-01-07 14:50:44 +00:00
v3dv_image.c v3dv: Switch to v3d_X(..) 2024-12-02 14:13:24 +00:00
v3dv_limits.h v3dv/device: set value for maxInlineUniformTotalSize 2024-08-05 15:10:24 +00:00
v3dv_meta_clear.c v3dv: fix crash on 32-bit builds 2025-02-10 12:42:54 +00:00
v3dv_meta_common.h v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dv_meta_copy.c v3dv: include depth offset on image view creation 2025-04-02 10:31:15 +00:00
v3dv_pass.c v3dv: Switch to v3d_X(..) 2024-12-02 14:13:24 +00:00
v3dv_pipeline.c spirv, nir: Delay calculation of shared_size when using explicit layout 2025-04-17 19:13:17 +00:00
v3dv_pipeline_cache.c v3dv: use Mesa log infrastructure instead of using stderr 2024-11-26 12:09:29 +00:00
v3dv_private.h v3dv: avoid TFU reading unmapped pages beyond the end of the buffers 2025-04-15 00:17:11 +02:00
v3dv_query.c v3dv: fix SSA dominance error 2025-01-23 23:35:43 +00:00
v3dv_queue.c v3dv: improve handling of trailing barriers 2025-02-12 13:15:12 +00:00
v3dv_uniforms.c v3dv: use Mesa log infrastructure instead of using stderr 2024-11-26 12:09:29 +00:00
v3dv_wsi.c v3dv: match render and display device for wsi present 2024-10-03 13:42:23 +00:00
v3dvx_cmd_buffer.c v3dv: rename v3dv_cmd_buffer_merge_barrier_state 2025-02-12 13:15:12 +00:00
v3dvx_descriptor_set.c v3dv: add support for multi-planar formats, enable YCbCr 2023-01-16 14:10:21 +00:00
v3dvx_device.c v3dv: restrict to channels when encoding border color 2024-07-01 08:02:07 +00:00
v3dvx_formats.c v3dv: support VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR 2024-06-11 05:32:26 +00:00
v3dvx_image.c v3dv: use new texture shader state rb_swap and reverse fields in v3d 7.x 2023-10-13 22:37:43 +00:00
v3dvx_meta_common.c v3dv: fix a few asserts that check layerCount instead of array_layers 2024-06-06 07:12:27 +00:00
v3dvx_pipeline.c v3dv: remove unused assignments 2024-12-16 10:56:38 +00:00
v3dvx_private.h v3dv: Switch to use libbroadcom_perfcntr 2024-12-02 14:13:24 +00:00
v3dvx_queue.c v3d,v3dv: don't use max internal bpp for tile sizing in V3D 7.x 2023-10-13 22:37:43 +00:00