mesa/src/imagination/vulkan
Karmjit Mahil aa791961a8 pvr: Add support for dynamic buffers descriptors
This is based on the new approach of having a descriptor set
addresses table in memory. To handle dynamic offsets provided on
vkCmdBindDescriptorSets() we duplicate the set with dynamic
descriptors, apply the offsets, and write the new bo's address
into the table. There are better ways of handling dynamic
descriptors but this implementation won't require many/if any
changes in the compiler code.

The descriptor set itself doesn't allocate and reserve space for
the dynamic descriptors since they would all be collected together
when creating the pipeline layout. While copying the descriptor
set we allocate extra space at the end for the dynamic primaries
and secondaries to account for that.

Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21391>
2023-02-23 16:26:51 +00:00
..
pds pvr: Add push consts support to descriptor program. 2023-02-23 10:14:17 +00:00
usc pvr: Upload spm load programs to device. 2023-02-15 09:16:03 +00:00
winsys pvr: Add firmware stream support for transfer submit 2023-02-08 16:33:35 +00:00
meson.build meson: replace vk_wsi_args with dependencies to let meson take care of transitivity 2023-02-23 09:42:46 +00:00
pvr_blit.c pvr: add support for tile buffer output clear 2023-01-18 15:10:21 +00:00
pvr_bo.c pvr: debug: Add option to zero-alloc all buffer objects 2022-12-01 15:05:59 +00:00
pvr_bo.h pvr: debug: Add option to track pvr_bo allocations 2022-11-25 16:42:55 +00:00
pvr_clear.c pvr: Add new Rogue compiler framework 2023-02-08 15:15:17 +00:00
pvr_clear.h pvr: Remove PVR_STATIC_CLEAR_.*_BIT and use VkImageAspectFlags. 2023-01-04 16:30:39 +00:00
pvr_cmd_buffer.c pvr: Add support for dynamic buffers descriptors 2023-02-23 16:26:51 +00:00
pvr_common.h pvr: Add support for dynamic buffers descriptors 2023-02-23 16:26:51 +00:00
pvr_csb.c pvr: Add pvr_csb_bake() 2023-01-27 18:17:52 +00:00
pvr_csb.h pvr: Add pvr_csb_bake() 2023-01-27 18:17:52 +00:00
pvr_csb_enum_helpers.h pvr: debug: Print hexdump for referenced buffers with unknown encoding 2022-12-01 15:05:59 +00:00
pvr_descriptor_set.c pvr: Add support for dynamic buffers descriptors 2023-02-23 16:26:51 +00:00
pvr_device.c pvr: Add support for dynamic buffers descriptors 2023-02-23 16:26:51 +00:00
pvr_dump_bo.c pvr: debug: Add "cs" debug option to dump control stream on job submit 2022-11-25 16:42:55 +00:00
pvr_dump_bo.h pvr: debug: Add "cs" debug option to dump control stream on job submit 2022-11-25 16:42:55 +00:00
pvr_dump_csb.c pvr: debug: Print hexdump at the end of all sub buffers 2022-12-01 15:05:59 +00:00
pvr_formats.c pvr: setup buffer and image format feature bits 2022-10-31 11:07:30 +00:00
pvr_formats.h pvr: Change pvr_get_hw_clear_color() to pack based on accum formats. 2022-10-25 10:15:09 +00:00
pvr_hardcode.c pvr: Add new Rogue compiler framework 2023-02-08 15:15:17 +00:00
pvr_hardcode.h pvr: Add new Rogue compiler framework 2023-02-08 15:15:17 +00:00
pvr_hw_pass.c pvr: Store format aspects on render pass attachments 2022-11-11 16:48:51 +00:00
pvr_hw_pass.h pvr: Convert attachment indexes to unsigned. 2022-09-30 10:52:51 +00:00
pvr_image.c pvr: remove some stale FIXMEs/pvr_finishmes 2022-11-10 14:11:07 +00:00
pvr_job_common.c pvr: Move BRN 44079, 48492 and 66011 code into pvrsrvkm specific directory 2022-07-27 10:13:19 +00:00
pvr_job_common.h pvr: Move BRN 44079, 48492 and 66011 code into pvrsrvkm specific directory 2022-07-27 10:13:19 +00:00
pvr_job_compute.c pvr: Rename global_queue_job_count to global_cmd_buffer_submit_count 2023-01-27 18:17:52 +00:00
pvr_job_compute.h pvr: Handle pipeline barrier vk_sync. 2022-10-19 16:07:26 +00:00
pvr_job_context.c pvr: Move BRN 44079, 48492 and 66011 code into pvrsrvkm specific directory 2022-07-27 10:13:19 +00:00
pvr_job_context.h pvr: small cleanups 2023-01-27 11:22:44 +00:00
pvr_job_render.c pvr: Set SPMSCRATCHBUFFER flag. 2023-02-06 10:47:38 +00:00
pvr_job_render.h pvr: Set SPMSCRATCHBUFFER flag. 2023-02-06 10:47:38 +00:00
pvr_job_transfer.c pvr: Handle pipeline barrier vk_sync. 2022-10-19 16:07:26 +00:00
pvr_job_transfer.h pvr: Handle pipeline barrier vk_sync. 2022-10-19 16:07:26 +00:00
pvr_limits.h pvr: Add support for dynamic buffers descriptors 2023-02-23 16:26:51 +00:00
pvr_pass.c pvr: Add support for VK_ATTACHMENT_LOAD_OP_LOAD. 2023-02-15 09:29:21 +00:00
pvr_pipeline.c pvr: Add push consts support to descriptor program. 2023-02-23 10:14:17 +00:00
pvr_pipeline_cache.c
pvr_private.h pvr: Add support for dynamic buffers descriptors 2023-02-23 16:26:51 +00:00
pvr_query.c pvr: Handle VK_QUERY_RESULT_WAIT_BIT. 2023-02-17 13:06:51 +00:00
pvr_query_compute.c pvr: Add pvr_pds_compute_shader_program_init() 2022-12-05 14:46:07 +00:00
pvr_queue.c pvr: Process wait event sub command. 2023-01-27 19:41:08 +00:00
pvr_shader.c pvr: Add new Rogue compiler framework 2023-02-08 15:15:17 +00:00
pvr_shader.h pvr: Add new Rogue compiler framework 2023-02-08 15:15:17 +00:00
pvr_spm.c pvr: Upload spm load programs to device. 2023-02-15 09:16:03 +00:00
pvr_spm.h pvr: Upload spm load programs to device. 2023-02-15 09:16:03 +00:00
pvr_tex_state.c pvr: Add support for VK_ATTACHMENT_LOAD_OP_LOAD. 2023-02-15 09:29:21 +00:00
pvr_tex_state.h pvr: Add support for VK_ATTACHMENT_LOAD_OP_LOAD. 2023-02-15 09:29:21 +00:00
pvr_wsi.c pvr: Use the common AcquireNextImage implementation 2022-06-10 01:33:12 +00:00
vk_format.h vulkan: Common vk_format_get_component_bits 2022-07-18 22:14:06 +00:00