mesa/src/broadcom/vulkan
Iago Toral Quiroga ea3223e7a4 v3dv: implement VK_EXT_inline_uniform_block
Inline uniform blocks store their contents in pool memory rather
than a separate buffer, and are intended to provide a way in which
some platforms may provide more efficient access to the uniform
data, similar to push constants but with more flexible size
constraints.

We implement these in a similar way as push constants: for constant
access we copy the data in the uniform stream (using the new
QUNIFORM_UNIFORM_UBO_*) enums to identify the inline buffer from
which we need to copy and for indirect access we fallback to
regular UBO access.

Because at NIR level there is no distinction between inline and
regular UBOs and the compiler isn't aware of Vulkan descriptor
sets, we use the UBO index on UBO load intrinsics to identify
inline UBOs, just like we do for push constants. Particularly,
we reserve indices 1..MAX_INLINE_UNIFORM_BUFFERS for this,
however, unlike push constants, inline buffers are accessed
through descriptor sets, and therefore we need to make sure
they are located in the first slots of the UBO descriptor map.
This means we store them in the first MAX_INLINE_UNIFORM_BUFFERS
slots of the map, with regular UBOs always coming after these
slots.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15575>
2022-03-28 10:44:13 +00:00
..
.dir-locals.el
.editorconfig
meson.build v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dv_android.c v3dv: Use the common QueueSignalReleaseImageANDROID from RADV 2022-01-05 16:36:10 +00:00
v3dv_bo.c v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dv_bo.h v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dv_cl.c v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dv_cl.h v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dv_cmd_buffer.c v3dv: implement VK_EXT_line_rasterization 2022-03-18 09:38:38 +00:00
v3dv_debug.c v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dv_debug.h v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dv_descriptor_set.c v3dv: implement VK_EXT_inline_uniform_block 2022-03-28 10:44:13 +00:00
v3dv_device.c v3dv: implement VK_EXT_inline_uniform_block 2022-03-28 10:44:13 +00:00
v3dv_formats.c v3dv: Stop using VK_OUTARRAY_MAKE() 2022-03-25 11:00:02 +00:00
v3dv_image.c vulkan/wsi: untangle buffer-images from prime 2022-02-22 10:04:34 +00:00
v3dv_limits.h v3dv: implement VK_EXT_inline_uniform_block 2022-03-28 10:44:13 +00:00
v3dv_meta_clear.c v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01: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: return early on image to buffer blit copies if image is linear 2022-03-18 13:17:58 +00:00
v3dv_pass.c v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dv_pipeline.c v3dv: implement VK_EXT_inline_uniform_block 2022-03-28 10:44:13 +00:00
v3dv_pipeline_cache.c broadcom: add on-disk cache debug option 2022-03-18 08:58:01 +00:00
v3dv_private.h v3dv: implement VK_EXT_inline_uniform_block 2022-03-28 10:44:13 +00:00
v3dv_query.c v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dv_queue.c v3dv: support importing external semaphores 2022-03-18 13:17:58 +00:00
v3dv_uniforms.c v3dv: implement VK_EXT_inline_uniform_block 2022-03-28 10:44:13 +00:00
v3dv_wsi.c v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dvx_cmd_buffer.c v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dvx_descriptor_set.c v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dvx_device.c v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dvx_formats.c v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dvx_image.c v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dvx_meta_common.c v3dv: TFU destination must be UIF 2022-03-18 13:17:58 +00:00
v3dvx_pipeline.c v3dv: implement VK_EXT_line_rasterization 2022-03-18 09:38:38 +00:00
v3dvx_private.h v3dv: implement VK_EXT_line_rasterization 2022-03-18 09:38:38 +00:00
v3dvx_queue.c v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00