summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlia Mirkin <[email protected]>2018-12-26 23:01:21 -0500
committerIlia Mirkin <[email protected]>2018-12-30 19:44:43 -0500
commitb34cfd474961bef6cb245e02a6dba7db0cf12ce6 (patch)
tree614e1584c1abbdd23f04658b39307eb171e57317
parentef3eac954574d630593012369ba309210158b760 (diff)
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 <[email protected]>
-rw-r--r--src/gallium/drivers/nouveau/nv30/nv30_fragprog.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/drivers/nouveau/nv30/nv30_fragprog.c b/src/gallium/drivers/nouveau/nv30/nv30_fragprog.c
index 6de61bcc1c0..073b2a34670 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_fragprog.c
+++ b/src/gallium/drivers/nouveau/nv30/nv30_fragprog.c
@@ -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;