mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2024-11-27 04:04:23 +08:00
llvmpipe: reset viewport_index_slot in fb bind
I hit a problem running a set of lvp caselists with
dEQP-VK.transform_feedback.simple.draw_indirect_endqueryindexed_streamid_0_16,Crash
This was crashing due to
assert(setup->viewport_index_slot < 0);
in try_update_scene_state
This was because a previous draw had set viewport index slot to 2,
but a clear then draw sequence never resets it, so the clear gets
a scene, and when the subsequent flush happens for that scene,
the viewport_index_slot is never updated. It only gets updated on
draws.
This just resets it as lp_setup_update_state will always pick up
the correct one for the next draw.
Cc: mesa-stable
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25387>
(cherry picked from commit 8791aab20f
)
This commit is contained in:
parent
563b08c2be
commit
6489f6464b
@ -31,7 +31,7 @@
|
|||||||
"description": "llvmpipe: reset viewport_index_slot in fb bind",
|
"description": "llvmpipe: reset viewport_index_slot in fb bind",
|
||||||
"nominated": true,
|
"nominated": true,
|
||||||
"nomination_type": 0,
|
"nomination_type": 0,
|
||||||
"resolution": 0,
|
"resolution": 1,
|
||||||
"main_sha": null,
|
"main_sha": null,
|
||||||
"because_sha": null
|
"because_sha": null
|
||||||
},
|
},
|
||||||
|
@ -410,6 +410,7 @@ lp_setup_bind_framebuffer(struct lp_setup_context *setup,
|
|||||||
setup->framebuffer.y0 = 0;
|
setup->framebuffer.y0 = 0;
|
||||||
setup->framebuffer.x1 = fb->width-1;
|
setup->framebuffer.x1 = fb->width-1;
|
||||||
setup->framebuffer.y1 = fb->height-1;
|
setup->framebuffer.y1 = fb->height-1;
|
||||||
|
setup->viewport_index_slot = -1;
|
||||||
setup->dirty |= LP_SETUP_NEW_SCISSOR;
|
setup->dirty |= LP_SETUP_NEW_SCISSOR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user