iris: Mark a dirty update when vs_needs_sgvs_element value changed

Add vs_needs_sgvs_element value check when updating vertex
element dirty state in iris_update_compiled_vs to solve
render error of Android game "Genshin Impact".

Signed-off-by: Xiaohui Gu <xiaohui.gu@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15142>
(cherry picked from commit 4d81c60e11)
This commit is contained in:
Xiaohui Gu 2021-10-25 13:58:03 +08:00 committed by Dylan Baker
parent e5a966781d
commit ec045339f6
2 changed files with 3 additions and 2 deletions

View file

@ -868,7 +868,7 @@
"description": "iris: Mark a dirty update when vs_needs_sgvs_element value changed",
"nominated": true,
"nomination_type": 0,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null
},

View file

@ -2830,7 +2830,8 @@ iris_bind_vs_state(struct pipe_context *ctx, void *state)
if (ice->state.vs_uses_draw_params != uses_draw_params ||
ice->state.vs_uses_derived_draw_params != uses_derived_draw_params ||
ice->state.vs_needs_edge_flag != info->vs.needs_edge_flag) {
ice->state.vs_needs_edge_flag != info->vs.needs_edge_flag ||
ice->state.vs_needs_sgvs_element != needs_sgvs_element) {
ice->state.dirty |= IRIS_DIRTY_VERTEX_BUFFERS |
IRIS_DIRTY_VERTEX_ELEMENTS;
}