texenvprogram: fix for ARB_draw_buffers.
[mesa.git] / src / gallium / drivers / nv30 / nv30_query.c
index 1d1c8a484e1933da0d78cab6297e01bbce5377a4..e27e9ccbf60f7ae3705e3aeaa2991f110e74bc02 100644 (file)
@@ -41,6 +41,9 @@ nv30_query_begin(struct pipe_context *pipe, struct pipe_query *pq)
 {
        struct nv30_context *nv30 = nv30_context(pipe);
        struct nv30_query *q = nv30_query(pq);
+       struct nv30_screen *screen = nv30->screen;
+       struct nouveau_channel *chan = screen->base.channel;
+       struct nouveau_grobj *rankine = screen->rankine;
 
        assert(q->type == PIPE_QUERY_OCCLUSION_COUNTER);
 
@@ -57,10 +60,10 @@ nv30_query_begin(struct pipe_context *pipe, struct pipe_query *pq)
                assert(0);
        nouveau_notifier_reset(nv30->screen->query, q->object->start);
 
-       BEGIN_RING(rankine, NV34TCL_QUERY_RESET, 1);
-       OUT_RING  (1);
-       BEGIN_RING(rankine, NV34TCL_QUERY_UNK17CC, 1);
-       OUT_RING  (1);
+       BEGIN_RING(chan, rankine, NV34TCL_QUERY_RESET, 1);
+       OUT_RING  (chan, 1);
+       BEGIN_RING(chan, rankine, NV34TCL_QUERY_UNK17CC, 1);
+       OUT_RING  (chan, 1);
 
        q->ready = FALSE;
 }
@@ -69,12 +72,15 @@ static void
 nv30_query_end(struct pipe_context *pipe, struct pipe_query *pq)
 {
        struct nv30_context *nv30 = nv30_context(pipe);
+       struct nv30_screen *screen = nv30->screen;
+       struct nouveau_channel *chan = screen->base.channel;
+       struct nouveau_grobj *rankine = screen->rankine;
        struct nv30_query *q = nv30_query(pq);
 
-       BEGIN_RING(rankine, NV34TCL_QUERY_GET, 1);
-       OUT_RING  ((0x01 << NV34TCL_QUERY_GET_UNK24_SHIFT) |
+       BEGIN_RING(chan, rankine, NV34TCL_QUERY_GET, 1);
+       OUT_RING  (chan, (0x01 << NV34TCL_QUERY_GET_UNK24_SHIFT) |
                   ((q->object->start * 32) << NV34TCL_QUERY_GET_OFFSET_SHIFT));
-       FIRE_RING(NULL);
+       FIRE_RING(chan);
 }
 
 static boolean