diff --git a/src/gallium/drivers/nouveau/nv30/nv30_clear.c b/src/gallium/drivers/nouveau/nv30/nv30_clear.c index 4e6df1eff60..8b401ab1459 100644 --- a/src/gallium/drivers/nouveau/nv30/nv30_clear.c +++ b/src/gallium/drivers/nouveau/nv30/nv30_clear.c @@ -58,6 +58,8 @@ nv30_clear(struct pipe_context *pipe, unsigned buffers, struct pipe_framebuffer_state *fb = &nv30->framebuffer; uint32_t colr = 0, zeta = 0, mode = 0; + push->user_priv = &nv30->bufctx; + if (!nv30_state_validate(nv30, NV30_NEW_FRAMEBUFFER | NV30_NEW_SCISSOR, true)) return; diff --git a/src/gallium/drivers/nouveau/nv30/nv30_fragprog.c b/src/gallium/drivers/nouveau/nv30/nv30_fragprog.c index 6de61bcc1c0..6de65021825 100644 --- a/src/gallium/drivers/nouveau/nv30/nv30_fragprog.c +++ b/src/gallium/drivers/nouveau/nv30/nv30_fragprog.c @@ -165,13 +165,15 @@ static void nv30_fp_state_bind(struct pipe_context *pipe, void *hwcso) { struct nv30_context *nv30 = nv30_context(pipe); + struct nouveau_pushbuf *push = nv30->base.pushbuf; struct nv30_fragprog *fp = hwcso; /* reset the bucftx so that we don't keep a dangling reference to the fp * code */ + push->user_priv = &nv30->bufctx; if (fp != nv30->state.fragprog) - PUSH_RESET(nv30->base.pushbuf, BUFCTX_FRAGPROG); + PUSH_RESET(push, BUFCTX_FRAGPROG); nv30->fragprog.program = fp; nv30->dirty |= NV30_NEW_FRAGPROG;