pvr: Add a Vulkan driver for Imagination Technologies PowerVR Rogue GPUs
authorFrank Binns <frank.binns@imgtec.com>
Fri, 25 Feb 2022 10:28:39 +0000 (10:28 +0000)
committerFrank Binns <frank.binns@imgtec.com>
Tue, 22 Mar 2022 15:04:55 +0000 (15:04 +0000)
commit8991e646411b73c1e03278267c80758e921f2352
treec473fa0666deaabd186f7665124f39366560e9f9
parent5d151ddfba2b434825c48d2eff222b15911fcb82
pvr: Add a Vulkan driver for Imagination Technologies PowerVR Rogue GPUs

Co-authored-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Co-authored-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Co-authored-by: Simon Perretta <simon.perretta@imgtec.com>
Co-authored-by: Alexander Wasey <Alexander.Wasey@imgtec.com>
Signed-off-by: Frank Binns <frank.binns@imgtec.com>
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Signed-off-by: Simon Perretta <simon.perretta@imgtec.com>
Signed-off-by: Alexander Wasey <Alexander.Wasey@imgtec.com>
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15243>
158 files changed:
CODEOWNERS
meson.build
meson_options.txt
src/imagination/.clang-format [new file with mode: 0644]
src/imagination/.dir-locals.el [new file with mode: 0644]
src/imagination/.editorconfig [new file with mode: 0644]
src/imagination/common/meson.build [new file with mode: 0644]
src/imagination/common/pvr_device_info.c [new file with mode: 0644]
src/imagination/common/pvr_device_info.h [new file with mode: 0644]
src/imagination/csbgen/gen_pack_header.py [new file with mode: 0644]
src/imagination/csbgen/meson.build [new file with mode: 0644]
src/imagination/csbgen/pvr_packet_helpers.h [new file with mode: 0644]
src/imagination/csbgen/rogue_cdm.xml [new file with mode: 0644]
src/imagination/csbgen/rogue_cr.xml [new file with mode: 0644]
src/imagination/csbgen/rogue_hwdefs.h [new file with mode: 0644]
src/imagination/csbgen/rogue_ipf.xml [new file with mode: 0644]
src/imagination/csbgen/rogue_lls.xml [new file with mode: 0644]
src/imagination/csbgen/rogue_pbestate.xml [new file with mode: 0644]
src/imagination/csbgen/rogue_pds.xml [new file with mode: 0644]
src/imagination/csbgen/rogue_ppp.xml [new file with mode: 0644]
src/imagination/csbgen/rogue_texstate.xml [new file with mode: 0644]
src/imagination/csbgen/rogue_vdm.xml [new file with mode: 0644]
src/imagination/include/hwdef/rogue_hw_defs.h [new file with mode: 0644]
src/imagination/include/hwdef/rogue_hw_utils.h [new file with mode: 0644]
src/imagination/include/pvr_rogue_fw.h [new file with mode: 0644]
src/imagination/meson.build [new file with mode: 0644]
src/imagination/rogue/meson.build [new file with mode: 0644]
src/imagination/rogue/nir/rogue_nir_constreg.c [new file with mode: 0644]
src/imagination/rogue/nir/rogue_nir_lower_io.c [new file with mode: 0644]
src/imagination/rogue/nir/rogue_nir_pfo.c [new file with mode: 0644]
src/imagination/rogue/rogue.c [new file with mode: 0644]
src/imagination/rogue/rogue.h [new file with mode: 0644]
src/imagination/rogue/rogue_build_data.c [new file with mode: 0644]
src/imagination/rogue/rogue_build_data.h [new file with mode: 0644]
src/imagination/rogue/rogue_compiler.c [new file with mode: 0644]
src/imagination/rogue/rogue_compiler.h [new file with mode: 0644]
src/imagination/rogue/rogue_constreg.c [new file with mode: 0644]
src/imagination/rogue/rogue_constreg.h [new file with mode: 0644]
src/imagination/rogue/rogue_dump.c [new file with mode: 0644]
src/imagination/rogue/rogue_dump.h [new file with mode: 0644]
src/imagination/rogue/rogue_encode.c [new file with mode: 0644]
src/imagination/rogue/rogue_encode.h [new file with mode: 0644]
src/imagination/rogue/rogue_encoders.c [new file with mode: 0644]
src/imagination/rogue/rogue_encoders.h [new file with mode: 0644]
src/imagination/rogue/rogue_instr.c [new file with mode: 0644]
src/imagination/rogue/rogue_instr.h [new file with mode: 0644]
src/imagination/rogue/rogue_nir.c [new file with mode: 0644]
src/imagination/rogue/rogue_nir.h [new file with mode: 0644]
src/imagination/rogue/rogue_nir_helpers.h [new file with mode: 0644]
src/imagination/rogue/rogue_operand.c [new file with mode: 0644]
src/imagination/rogue/rogue_operand.h [new file with mode: 0644]
src/imagination/rogue/rogue_regalloc.c [new file with mode: 0644]
src/imagination/rogue/rogue_regalloc.h [new file with mode: 0644]
src/imagination/rogue/rogue_shader.c [new file with mode: 0644]
src/imagination/rogue/rogue_shader.h [new file with mode: 0644]
src/imagination/rogue/rogue_util.c [new file with mode: 0644]
src/imagination/rogue/rogue_util.h [new file with mode: 0644]
src/imagination/rogue/rogue_validate.c [new file with mode: 0644]
src/imagination/rogue/rogue_validate.h [new file with mode: 0644]
src/imagination/rogue/tools/offline_compiler.c [new file with mode: 0644]
src/imagination/vulkan/meson.build [new file with mode: 0644]
src/imagination/vulkan/pds/meson.build [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds.c [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_disasm.c [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_printer.c [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_arrays0.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_arrays1.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_arrays2.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_arrays3.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_arrays_base_instance0.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_arrays_base_instance1.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_arrays_base_instance2.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_arrays_base_instance3.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_arrays_base_instance_drawid0.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_arrays_base_instance_drawid1.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_arrays_base_instance_drawid2.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_arrays_base_instance_drawid3.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_elements0.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_elements1.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_elements2.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_elements3.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_elements_base_instance0.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_elements_base_instance1.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_elements_base_instance2.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_elements_base_instance3.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_elements_base_instance_drawid0.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_elements_base_instance_drawid1.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_elements_base_instance_drawid2.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_pds_programs/pvr_draw_indirect_elements_base_instance_drawid3.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_rogue_pds_defs.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_rogue_pds_disasm.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_rogue_pds_encode.h [new file with mode: 0644]
src/imagination/vulkan/pds/pvr_xgl_pds.c [new file with mode: 0644]
src/imagination/vulkan/pvr_blit.c [new file with mode: 0644]
src/imagination/vulkan/pvr_bo.c [new file with mode: 0644]
src/imagination/vulkan/pvr_bo.h [new file with mode: 0644]
src/imagination/vulkan/pvr_cmd_buffer.c [new file with mode: 0644]
src/imagination/vulkan/pvr_csb.c [new file with mode: 0644]
src/imagination/vulkan/pvr_csb.h [new file with mode: 0644]
src/imagination/vulkan/pvr_descriptor_set.c [new file with mode: 0644]
src/imagination/vulkan/pvr_device.c [new file with mode: 0644]
src/imagination/vulkan/pvr_formats.c [new file with mode: 0644]
src/imagination/vulkan/pvr_formats.h [new file with mode: 0644]
src/imagination/vulkan/pvr_hw_pass.c [new file with mode: 0644]
src/imagination/vulkan/pvr_hw_pass.h [new file with mode: 0644]
src/imagination/vulkan/pvr_image.c [new file with mode: 0644]
src/imagination/vulkan/pvr_job_common.c [new file with mode: 0644]
src/imagination/vulkan/pvr_job_common.h [new file with mode: 0644]
src/imagination/vulkan/pvr_job_compute.c [new file with mode: 0644]
src/imagination/vulkan/pvr_job_compute.h [new file with mode: 0644]
src/imagination/vulkan/pvr_job_context.c [new file with mode: 0644]
src/imagination/vulkan/pvr_job_context.h [new file with mode: 0644]
src/imagination/vulkan/pvr_job_render.c [new file with mode: 0644]
src/imagination/vulkan/pvr_job_render.h [new file with mode: 0644]
src/imagination/vulkan/pvr_limits.h [new file with mode: 0644]
src/imagination/vulkan/pvr_pass.c [new file with mode: 0644]
src/imagination/vulkan/pvr_pipeline.c [new file with mode: 0644]
src/imagination/vulkan/pvr_pipeline_cache.c [new file with mode: 0644]
src/imagination/vulkan/pvr_private.h [new file with mode: 0644]
src/imagination/vulkan/pvr_query.c [new file with mode: 0644]
src/imagination/vulkan/pvr_queue.c [new file with mode: 0644]
src/imagination/vulkan/pvr_shader.c [new file with mode: 0644]
src/imagination/vulkan/pvr_shader.h [new file with mode: 0644]
src/imagination/vulkan/pvr_tex_state.c [new file with mode: 0644]
src/imagination/vulkan/pvr_tex_state.h [new file with mode: 0644]
src/imagination/vulkan/pvr_wsi.c [new file with mode: 0644]
src/imagination/vulkan/usc/programs/pvr_cdm_load_sr.h [new file with mode: 0644]
src/imagination/vulkan/usc/programs/pvr_end_of_tile.h [new file with mode: 0644]
src/imagination/vulkan/usc/programs/pvr_usc_compute_shader.h [new file with mode: 0644]
src/imagination/vulkan/usc/programs/pvr_usc_fragment_shader.h [new file with mode: 0644]
src/imagination/vulkan/usc/programs/pvr_vdm_load_sr.h [new file with mode: 0644]
src/imagination/vulkan/usc/programs/pvr_vdm_store_sr.h [new file with mode: 0644]
src/imagination/vulkan/vk_format.h [new file with mode: 0644]
src/imagination/vulkan/winsys/powervr/pvr_drm.c [new file with mode: 0644]
src/imagination/vulkan/winsys/powervr/pvr_drm_public.h [new file with mode: 0644]
src/imagination/vulkan/winsys/pvr_winsys.c [new file with mode: 0644]
src/imagination/vulkan/winsys/pvr_winsys.h [new file with mode: 0644]
src/imagination/vulkan/winsys/pvr_winsys_helper.c [new file with mode: 0644]
src/imagination/vulkan/winsys/pvr_winsys_helper.h [new file with mode: 0644]
src/imagination/vulkan/winsys/pvrsrvkm/fw-api/pvr_rogue_fwif.h [new file with mode: 0644]
src/imagination/vulkan/winsys/pvrsrvkm/fw-api/pvr_rogue_fwif_rf.h [new file with mode: 0644]
src/imagination/vulkan/winsys/pvrsrvkm/fw-api/pvr_rogue_fwif_shared.h [new file with mode: 0644]
src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv.c [new file with mode: 0644]
src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv.h [new file with mode: 0644]
src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bo.c [new file with mode: 0644]
src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bo.h [new file with mode: 0644]
src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bridge.c [new file with mode: 0644]
src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bridge.h [new file with mode: 0644]
src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_common.h [new file with mode: 0644]
src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_compute.c [new file with mode: 0644]
src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_compute.h [new file with mode: 0644]
src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_render.c [new file with mode: 0644]
src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_render.h [new file with mode: 0644]
src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_public.h [new file with mode: 0644]
src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_syncobj.c [new file with mode: 0644]
src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_syncobj.h [new file with mode: 0644]
src/meson.build