From ec045339f62c3e4ea26a6acdffbf8553492bfe8d Mon Sep 17 00:00:00 2001 From: Xiaohui Gu Date: Mon, 25 Oct 2021 13:58:03 +0800 Subject: [PATCH] iris: Mark a dirty update when vs_needs_sgvs_element value changed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Tapani Pälli Cc: mesa-stable Part-of: (cherry picked from commit 4d81c60e11e3b73b6e2f52637291858ac08cf982) --- .pick_status.json | 2 +- src/gallium/drivers/iris/iris_program.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 95640401560..2b080135e0c 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -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 }, diff --git a/src/gallium/drivers/iris/iris_program.c b/src/gallium/drivers/iris/iris_program.c index 17108c8b0b9..0a14830aee3 100644 --- a/src/gallium/drivers/iris/iris_program.c +++ b/src/gallium/drivers/iris/iris_program.c @@ -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; }