From 20cb81d38975ee38b6c8ba1426bd24c6207718b7 Mon Sep 17 00:00:00 2001 From: Jakob Sinclair Date: Tue, 5 May 2026 11:47:10 +0200 Subject: [PATCH] panvk: Enable scissor_mode for draws With some of the AFBC-fixes that went along with: , we now set frame bounding boxes to the renderPass::renderArea instead of the full frame size. By enabling scissor_mode, we can therefore benefit from issuing less fragment jobs in certain cases. Reviewed-by: Christoph Pillmayer Part-of: --- src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c | 5 ++++- src/panfrost/vulkan/jm/panvk_vX_cmd_draw.c | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c b/src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c index 87e7b647df7..653e9c456dd 100644 --- a/src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c +++ b/src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c @@ -2012,7 +2012,10 @@ prepare_dcd(struct panvk_cmd_buffer *cmdbuf, cfg.multisample_enable = msaa; cfg.occlusion_query = cmdbuf->state.gfx.occlusion_query.mode; cfg.alpha_to_coverage = alpha_to_coverage; -#if PAN_ARCH >= 11 +#if PAN_ARCH == 10 + cfg.scissor_to_bounding_box = true; +#elif PAN_ARCH >= 11 + cfg.scissor_mode = true; cfg.conservative_rast_mode = rs->conservative_mode == VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT ? MALI_CONSERVATIVE_RAST_MODE_OVER_ESTIMATE diff --git a/src/panfrost/vulkan/jm/panvk_vX_cmd_draw.c b/src/panfrost/vulkan/jm/panvk_vX_cmd_draw.c index a26368b9e82..22abb454d4e 100644 --- a/src/panfrost/vulkan/jm/panvk_vX_cmd_draw.c +++ b/src/panfrost/vulkan/jm/panvk_vX_cmd_draw.c @@ -1043,6 +1043,9 @@ panvk_emit_tiler_dcd(struct panvk_cmd_buffer *cmdbuf, cfg.occlusion_query = cmdbuf->state.gfx.occlusion_query.mode; cfg.occlusion = cmdbuf->state.gfx.occlusion_query.ptr; +#if PAN_ARCH == 9 + cfg.scissor_to_bounding_box = true; +#endif } }