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: f22290949d ("radv: add support for dynamic tessellation domain origin")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20486>
(cherry picked from commit f1b3e6aefd)
This commit is contained in:
Samuel Pitoiset 2023-01-03 10:02:04 +01:00 committed by Eric Engestrom
parent 6f1f06eacf
commit 60474e53ea
2 changed files with 6 additions and 4 deletions

View file

@ -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"
},

View file

@ -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