mesa/src/imagination/vulkan
Luigi Santivetti 6a65b5dd4d pvr: fix src/dst image formats for DS resolve ops
This change only addresses the clear of one channel via the TQ for DS
formats. This is exercised by VK_KHR_depth_stencil_resolve in two ways:
resolve depth and clear stencil, or resolve stencil and clear depth.

When resolving, we need to propagate source and destination format if the
DS format is combined because we need either combination of both for cases
where the DSMERGE and PICKD flags are set.

- Resolve op
  + For combined DS formats
    1. resolve the stencil from the source merging it with the depth of the
       destination. Leave source depth unchanged.
    2. resolve the depth from the source merging it with the stencil of the
       destination. Leave the source stencil untouched.
  + For non-combined formats
    1. we can use the source for all aspects / channels, this ensures the
       size to blit the source to is compatible with the destination. Note
       that the TQ doesn't require src/dst to be single channel formats.

- Non resolve op
  + Not part of this change.

Fix for deqp:
  dEQP-VK.renderpass2.depth_stencil_resolve.*.*.d24_unorm_s8_uint.compatibility*
  dEQP-VK.renderpass2.depth_stencil_resolve.*.*.d32_sfloat_s8_uint.compatibility*

Signed-off-by: Luigi Santivetti <luigi.santivetti@imgtec.com>
Co-authored-by: Leon Perianu <leon.perianu@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39654>
2026-02-05 16:01:38 +00:00
..
pds pvr: rename PVR_HAS_ERN to PVR_HAS_ENHANCEMENT 2026-02-02 14:25:18 +00:00
rogue pvr: fix src/dst image formats for DS resolve ops 2026-02-05 16:01:38 +00:00
winsys pvr: rename PVR_HAS_ERN to PVR_HAS_ENHANCEMENT 2026-02-02 14:25:18 +00:00
meson.build pvr: workaround hardware clamping for YCBCR_IDENTITY conversion 2026-01-28 13:41:28 +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: rename PVR_HAS_ERN to PVR_HAS_ENHANCEMENT 2026-02-02 14:25:18 +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: handle plane addresses for ycbcr images. 2026-01-28 13:41:27 +00:00
pvr_arch_device.c pvr: rename PVR_HAS_ERN to PVR_HAS_ENHANCEMENT 2026-02-02 14:25:18 +00:00
pvr_arch_formats.c pvr: add ycbcr formats 2026-01-28 13:41:28 +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: implement chroma swap 2026-01-28 13:41:28 +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: rename PVR_HAS_ERN to PVR_HAS_ENHANCEMENT 2026-02-02 14:25:18 +00:00
pvr_arch_job_render.c pvr: rename PVR_HAS_ERN to PVR_HAS_ENHANCEMENT 2026-02-02 14:25:18 +00:00
pvr_arch_job_transfer.c pvr: fix logic for when to reset fill blit 2026-02-05 16:01:37 +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: drop pvr_assert macro 2026-02-05 09:37:37 +00:00
pvr_arch_pipeline.c pvr: Add support for VK_KHR_pipeline_executable_properties 2026-02-02 16:55:38 +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: handle plane addresses for ycbcr images. 2026-01-28 13:41:27 +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 pvr: implement chroma swap 2026-01-28 13:41:28 +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_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: add multiplanar format support 2026-01-28 13:41:26 +00: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_dump_bo.h
pvr_formats.c pvr: Fixup for deqp-vk.api 2d.optimal.* conformance 2026-02-05 10:18:09 +00:00
pvr_formats.h pvr: fix logic for setting DSMERGE and PICKD 2026-02-05 16:01:38 +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: drop pvr_assert macro 2026-02-05 09:37:37 +00:00
pvr_image.h pvr: handle plane addresses for ycbcr images. 2026-01-28 13:41:27 +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: drop pvr_assert macro 2026-02-05 09:37:37 +00:00
pvr_mrt.h pvr: rename PVR_PER_ARCH aliases to pvr_arch_ for clarity 2026-01-12 19:38:03 +00:00
pvr_nir_lower_ycbcr.c pvr: workaround hardware clamping for YCBCR_IDENTITY conversion 2026-01-28 13:41:28 +00:00
pvr_nir_lower_ycbcr.h pvr: workaround hardware clamping for YCBCR_IDENTITY conversion 2026-01-28 13:41:28 +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: Add support for VK_KHR_pipeline_executable_properties 2026-02-02 16:55:38 +00:00
pvr_physical_device.h pvr: encapsulate format-table 2026-01-12 19:38:04 +00:00
pvr_pipeline.h pvr: Add support for VK_KHR_pipeline_executable_properties 2026-02-02 16:55:38 +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_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: implement chroma swap 2026-01-28 13:41:28 +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: handle SRC_SMRG_D32S8_D32S8 in tq shader 2026-02-05 16:01:37 +00:00
pvr_usc.h pvr: encapsulate clear-state 2025-11-17 16:04:31 +00:00
pvr_wsi.c pvr: preliminary EXT_image_drm_format_modifier support 2026-01-28 14:49:24 +00:00
pvr_wsi.h pvr: break out wsi to separate header 2025-10-02 05:34:09 +00:00