nv30: fix rare issue with fp unbinding not finding the bufctx
If the last-active context gets deleted, the pushbuf doesn't have a bufctx to reference. Then there could be a sequence of binds which would trigger a reset on that bin before validation was done. Instead we just pass in the bufctx in question directly. All other instances of PUSH_RESET happen strictly after a validation is run. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102349 Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
@@ -171,7 +171,7 @@ nv30_fp_state_bind(struct pipe_context *pipe, void *hwcso)
|
||||
* code
|
||||
*/
|
||||
if (fp != nv30->state.fragprog)
|
||||
PUSH_RESET(nv30->base.pushbuf, BUFCTX_FRAGPROG);
|
||||
nouveau_bufctx_reset(nv30->bufctx, BUFCTX_FRAGPROG);
|
||||
|
||||
nv30->fragprog.program = fp;
|
||||
nv30->dirty |= NV30_NEW_FRAGPROG;
|
||||
|
||||
Reference in New Issue
Block a user