mirror of https://gitlab.freedesktop.org/mesa/mesa
radv: Move all the dirty flags from TES binding to TCS binding.
With merged shaders we might not have an explicit TES. Fixes:879ddf9720
("radv: rework binding shaders to cmdbuf by introducing new helpers") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8939 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22784> (cherry picked from commitdf08ed7d1c
)
This commit is contained in:
parent
61b937290e
commit
84889a982c
|
@ -22,7 +22,7 @@
|
||||||
"description": "radv: Move all the dirty flags from TES binding to TCS binding.",
|
"description": "radv: Move all the dirty flags from TES binding to TCS binding.",
|
||||||
"nominated": true,
|
"nominated": true,
|
||||||
"nomination_type": 1,
|
"nomination_type": 1,
|
||||||
"resolution": 0,
|
"resolution": 1,
|
||||||
"main_sha": null,
|
"main_sha": null,
|
||||||
"because_sha": "879ddf97202fb4721be28f0efffeb064ea61c57b"
|
"because_sha": "879ddf97202fb4721be28f0efffeb064ea61c57b"
|
||||||
},
|
},
|
||||||
|
|
|
@ -6499,6 +6499,8 @@ static void
|
||||||
radv_bind_vertex_shader(struct radv_cmd_buffer *cmd_buffer, const struct radv_shader *vs)
|
radv_bind_vertex_shader(struct radv_cmd_buffer *cmd_buffer, const struct radv_shader *vs)
|
||||||
{
|
{
|
||||||
radv_bind_pre_rast_shader(cmd_buffer, vs);
|
radv_bind_pre_rast_shader(cmd_buffer, vs);
|
||||||
|
|
||||||
|
/* Can't put anything else here due to merged shaders */
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -6508,10 +6510,11 @@ radv_bind_tess_ctrl_shader(struct radv_cmd_buffer *cmd_buffer, const struct radv
|
||||||
|
|
||||||
cmd_buffer->tess_rings_needed = true;
|
cmd_buffer->tess_rings_needed = true;
|
||||||
|
|
||||||
/* Always re-emit patch control points when a new pipeline with tessellation is bound because a
|
/* Always re-emit patch control points/domain origin when a new pipeline with tessellation is
|
||||||
* bunch of parameters (user SGPRs, TCS vertices out, ccw, etc) can be different.
|
* 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -6519,13 +6522,7 @@ radv_bind_tess_eval_shader(struct radv_cmd_buffer *cmd_buffer, const struct radv
|
||||||
{
|
{
|
||||||
radv_bind_pre_rast_shader(cmd_buffer, tes);
|
radv_bind_pre_rast_shader(cmd_buffer, tes);
|
||||||
|
|
||||||
cmd_buffer->tess_rings_needed = true;
|
/* Can't put anything else here due to merged shaders */
|
||||||
|
|
||||||
/* 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 |
|
|
||||||
RADV_CMD_DIRTY_DYNAMIC_TESS_DOMAIN_ORIGIN;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in New Issue