mesa/src/imagination/vulkan
Erik Faye-Lund 67950d9021 pvr: avoid needless dispatches in powervr winsys
All uses of PVR_ARCH_DISPATCH in the powervr winsys were due to needing
to reach the kmd_stream.xml definitions. However, this isn't quite
enough to do this multi-arch; we also need to widen the interface to
pass extra context-switching information for future GPUs.

But, doing this with the per-arch infrastructure isn't a huge gain,
because all of this code runs during context-init. So let's walk things
a bit, and drop the dispatching here.

This does mean we need to stop using kmd_stream.xml definitions; I don't
think this is a huge loss; we're mostly open-coding the firmware
interface here anyway.

Unfortunately, the same is not the case in the pvrsrvkm winsys, because
the kernel driver used there doesn't abstract away the same HW details,
so we'll need to set up a bunch of things based on HW definitions. So
let's take a different approach there.

Reviewed-by: Ashish Chauhan <ashish.chauhan@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39348>
2026-01-23 12:40:20 +00:00
..
pds pvr: replace constant-returning function with a macro 2025-12-11 15:26:05 +00:00
rogue pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
winsys pvr: avoid needless dispatches in powervr winsys 2026-01-23 12:40:20 +00:00
meson.build pvr: avoid needless dispatches in powervr winsys 2026-01-23 12:40:20 +00:00
pvr_arch_border.c pvr: use pvr_arch defines in implementations 2026-01-12 19:38:04 +00:00
pvr_arch_cmd_buffer.c pvr: fix suspend and resume for dynamic rendering 2026-01-19 12:05:50 +00:00
pvr_arch_cmd_query.c pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_arch_csb.c pvr: use pvr_arch defines in implementations 2026-01-12 19:38:04 +00:00
pvr_arch_descriptor_set.c pvr: build pvr_arch_*.c as a multi-arch sources 2025-12-19 10:35:05 +01:00
pvr_arch_device.c pvr: use pvr_arch defines in implementations 2026-01-12 19:38:04 +00:00
pvr_arch_formats.c pvr: Fix bugs in the format table 2026-01-14 00:58:18 +00:00
pvr_arch_framebuffer.c pvr: use pvr_arch defines in implementations 2026-01-12 19:38:04 +00:00
pvr_arch_hw_pass.c pvr: use pvr_arch defines in implementations 2026-01-12 19:38:04 +00:00
pvr_arch_image.c pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_arch_job_common.c pvr: use pvr_arch defines in implementations 2026-01-12 19:38:04 +00:00
pvr_arch_job_compute.c pvr: use pvr_arch defines in implementations 2026-01-12 19:38:04 +00:00
pvr_arch_job_context.c pvr: use pvr_arch defines in implementations 2026-01-12 19:38:04 +00:00
pvr_arch_job_render.c pvr: use pvr_arch defines in implementations 2026-01-12 19:38:04 +00:00
pvr_arch_job_transfer.c pvr: use pvr_arch defines in implementations 2026-01-12 19:38:04 +00:00
pvr_arch_mrt.c pvr: use pvr_arch defines in implementations 2026-01-12 19:38:04 +00:00
pvr_arch_pass.c pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_arch_pipeline.c nir/lower_blend: Move the format to nir_lower_blend_rt 2026-01-19 21:33:14 +00:00
pvr_arch_query_compute.c pvr: use pvr_arch defines in implementations 2026-01-12 19:38:04 +00:00
pvr_arch_queue.c pvr: fix suspend and resume for dynamic rendering 2026-01-19 12:05:50 +00:00
pvr_arch_sampler.c pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_arch_spm.c pvr: use pvr_arch defines in implementations 2026-01-12 19:38:04 +00:00
pvr_arch_tex_state.c pco: restrict shadow sampler comparator clamping to unorm formats 2026-01-20 17:51:07 +00:00
pvr_blit.h pvr: run clang-format 2025-12-11 19:07:40 +00:00
pvr_bo.c pvr: rename rogue_get_slc_cache_line_size 2025-11-11 10:13:14 +01:00
pvr_bo.h pvr: Remove PVR_WINSYS_BO_FLAG_ZERO_ON_ALLOC flag 2023-09-06 12:19:46 +00:00
pvr_border.h pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_buffer.h pvr: break out buffer to separate header 2025-10-02 05:34:06 +00:00
pvr_clear.h pvr: encapsulate clear-state 2025-11-17 16:04:31 +00:00
pvr_cmd_buffer.h pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_common.h pvr: factor out pvr_sampler 2025-11-11 10:13:14 +01:00
pvr_csb.c pvr: split pvr_csb.c 2025-12-19 09:52:03 +01:00
pvr_csb.h pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_csb_enum_helpers.h pvr: include pvr_common.h instead of pvr_private.h 2025-09-26 08:15:59 +00:00
pvr_descriptor_set.c vk: descriptors: sort bindings along with flags 2026-01-20 15:55:47 +00:00
pvr_descriptor_set.h pvr: build pvr_arch_*.c as a multi-arch sources 2025-12-19 10:35:05 +01:00
pvr_device.c pvr: split pvr_device.c 2025-12-19 09:52:03 +01:00
pvr_device.h pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_dump_bo.c pvr: Return VkResult from winsys buffer_map operation 2023-05-18 15:56:59 +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_formats.c pvr: encapsulate format-table 2026-01-12 19:38:04 +00:00
pvr_formats.h pvr: encapsulate format-table 2026-01-12 19:38:04 +00:00
pvr_framebuffer.h pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_free_list.c pvr: break out pvr_free_list into a separate module 2025-12-11 15:26:05 +00:00
pvr_free_list.h pvr: break out pvr_free_list into a separate module 2025-12-11 15:26:05 +00:00
pvr_hw_pass.h pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_image.c pvr: limit hw-defs to rogue 2025-12-19 10:35:05 +01:00
pvr_image.h pvr: break out image to separate header 2025-10-02 05:34:05 +00:00
pvr_instance.c pvr: remove drm device config table 2026-01-22 12:25:11 +00:00
pvr_instance.h pvr: break out pvr_instance and pvr_physical_device 2025-11-11 10:13:11 +01:00
pvr_job_common.h pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_job_compute.h pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_job_context.h pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_job_render.h pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_job_transfer.h pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_macros.h pvr: build pvr_arch_*.c as a multi-arch sources 2025-12-19 10:35:05 +01:00
pvr_mrt.h pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_pass.h pvr: add support for VK_KHR_dynamic_rendering 2025-12-11 12:52:28 +00:00
pvr_physical_device.c pvr: Temporarily disable the buffer device address extension 2026-01-22 18:19:32 +00:00
pvr_physical_device.h pvr: encapsulate format-table 2026-01-12 19:38:04 +00:00
pvr_pipeline.h pvr: replace constant-returning function with a macro 2025-12-11 15:26:05 +00:00
pvr_query.c pvr: factor out cmdbuf functions from pvr_query.c 2025-12-19 09:52:03 +01:00
pvr_query.h pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_queue.h pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_robustness.c treewide: Replace calling to function ALIGN with align 2025-11-12 21:58:40 +00:00
pvr_robustness.h pvr: Add robustness buffer support 2023-03-27 18:36:32 +00:00
pvr_rt_dataset.c pvr: factor out pvr_rt_dataset to separate module 2025-12-19 09:52:03 +01:00
pvr_rt_dataset.h pvr: factor out pvr_rt_dataset to separate module 2025-12-19 09:52:03 +01:00
pvr_sampler.h pvr: fixup some includes 2025-12-11 15:26:05 +00:00
pvr_spm.c pvr: split pvr_spm.c 2025-12-19 09:52:04 +01:00
pvr_spm.h pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_tex_state.h pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_transfer_frag_store.c pvr: limit hw-defs to rogue 2025-12-19 10:35:05 +01:00
pvr_transfer_frag_store.h pvr: merge legacy uscgen code into pvr_usc 2025-09-22 14:52:05 +01:00
pvr_usc.c pvr: factor out pvr_sampler 2025-11-11 10:13:14 +01:00
pvr_usc.h pvr: encapsulate clear-state 2025-11-17 16:04:31 +00:00
pvr_wsi.c pvr: Free drm device in can_present_on_device 2026-01-21 21:50:42 +00:00
pvr_wsi.h pvr: break out wsi to separate header 2025-10-02 05:34:09 +00:00