zink: only unset a generated tcs if the bound tcs is the generated one

this could otherwise unbind a non-generated tcs if the tes had at some
point generated a tcs

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22801>
(cherry picked from commit 27d6a98638)
This commit is contained in:
Mike Blumenkrantz 2023-05-02 12:10:27 -04:00 committed by Eric Engestrom
parent d4b5487508
commit 53efaeca18
2 changed files with 2 additions and 2 deletions

View file

@ -211,7 +211,7 @@
"description": "zink: only unset a generated tcs if the bound tcs is the generated one",
"nominated": true,
"nomination_type": 0,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null
},

View file

@ -1820,7 +1820,7 @@ zink_bind_tes_state(struct pipe_context *pctx,
if (!!ctx->gfx_stages[MESA_SHADER_TESS_EVAL] != !!cso) {
if (!cso) {
/* if unsetting a TESS that uses a generated TCS, ensure the TCS is unset */
if (ctx->gfx_stages[MESA_SHADER_TESS_EVAL]->non_fs.generated_tcs)
if (ctx->gfx_stages[MESA_SHADER_TESS_CTRL] == ctx->gfx_stages[MESA_SHADER_TESS_EVAL]->non_fs.generated_tcs)
ctx->gfx_stages[MESA_SHADER_TESS_CTRL] = NULL;
}
}