From 60474e53eab39e0e0f4026caf9b51393b584a926 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 3 Jan 2023 10:02:04 +0100 Subject: [PATCH] radv: fix re-emitting tessellation domain origin when it's dynamic The winding order can be different between pipelines. Fixes new dEQP-VK.pipeline.pipeline_library.dynamic_control_points.change_*_winding. Fixes: f22290949d3 ("radv: add support for dynamic tessellation domain origin") Signed-off-by: Samuel Pitoiset Part-of: (cherry picked from commit f1b3e6aefd42eae8ce8b551f67d1f8650353407e) --- .pick_status.json | 2 +- src/amd/vulkan/radv_cmd_buffer.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 8e9a5a94506..c7083769bd1 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1390,7 +1390,7 @@ "description": "radv: fix re-emitting tessellation domain origin when it's dynamic", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "f22290949d3d6ad75445404e48195ed319505a05" }, diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index b5ab6cf8cc8..7eba6bd20f8 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -5464,10 +5464,12 @@ radv_CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipeline cmd_buffer->state.tess_lds_size = tcs->info.tcs.num_lds_blocks; } - /* Always re-emit patch control points when a new pipeline with tessellation is bound - * because a bunch of parameters (user SGPRs, TCS vertices out, etc) can be different. + /* Always re-emit patch control points/domain origin when a new pipeline with tessellation + * is bound because a bunch of parameters (user SGPRs, TCS vertices out, ccw, etc) can be + * different. */ - cmd_buffer->state.dirty |= RADV_CMD_DIRTY_DYNAMIC_PATCH_CONTROL_POINTS; + cmd_buffer->state.dirty |= RADV_CMD_DIRTY_DYNAMIC_PATCH_CONTROL_POINTS | + RADV_CMD_DIRTY_DYNAMIC_TESS_DOMAIN_ORIGIN; } /* Re-emit the streamout buffers because the SGPR idx can be different and with NGG streamout