mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-17 11:48:05 +02:00
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> |
||
|---|---|---|
| .. | ||
| .dir-locals.el | ||
| .editorconfig | ||
| meson.build | ||
| v3dv_android.c | ||
| v3dv_bo.c | ||
| v3dv_bo.h | ||
| v3dv_cl.c | ||
| v3dv_cl.h | ||
| v3dv_cmd_buffer.c | ||
| v3dv_descriptor_set.c | ||
| v3dv_device.c | ||
| v3dv_event.c | ||
| v3dv_formats.c | ||
| v3dv_image.c | ||
| v3dv_limits.h | ||
| v3dv_meta_clear.c | ||
| v3dv_meta_common.h | ||
| v3dv_meta_copy.c | ||
| v3dv_pass.c | ||
| v3dv_pipeline.c | ||
| v3dv_pipeline_cache.c | ||
| v3dv_private.h | ||
| v3dv_query.c | ||
| v3dv_queue.c | ||
| v3dv_uniforms.c | ||
| v3dv_wsi.c | ||
| v3dvx_cmd_buffer.c | ||
| v3dvx_descriptor_set.c | ||
| v3dvx_device.c | ||
| v3dvx_formats.c | ||
| v3dvx_image.c | ||
| v3dvx_meta_common.c | ||
| v3dvx_pipeline.c | ||
| v3dvx_private.h | ||
| v3dvx_queue.c | ||