st/mesa: fix incorrect RowStride computation
[mesa.git] / src / gallium / drivers / nv30 / nv30_state_emit.c
index ac52d946f021232356e8912b47041080fe19d049..deefe7fd8db1eba2cf47c265ecafd1f2cc2ec984 100644 (file)
@@ -12,6 +12,7 @@ static struct nv30_state_entry *render_states[] = {
        &nv30_state_blend,
        &nv30_state_blend_colour,
        &nv30_state_zsa,
+       &nv30_state_sr,
        &nv30_state_viewport,
        &nv30_state_vbo,
        NULL
@@ -44,13 +45,15 @@ nv30_state_emit(struct nv30_context *nv30)
        unsigned i;
        uint64_t states;
 
-       if (nv30->pctx_id != screen->cur_pctx) {
+       /* XXX: racy!
+        */
+       if (nv30 != screen->cur_ctx) {
                for (i = 0; i < NV30_STATE_MAX; i++) {
                        if (state->hw[i] && screen->state[i] != state->hw[i])
                                state->dirty |= (1ULL << i);
                }
 
-               screen->cur_pctx = nv30->pctx_id;
+               screen->cur_ctx = nv30;
        }
 
        for (i = 0, states = state->dirty; states; i++) {