nouveau: track last validated offsets, so we know when relocs can be avoided.
[mesa.git] / src / mesa / drivers / dri / nouveau_winsys / nouveau_local.h
index 1978edea02dd7a01626a08a3ba1241810b4c5ab3..e7111de4dc137d37fe4638725d1413b39f27e85e 100644 (file)
@@ -20,7 +20,6 @@
 //#define NOUVEAU_DMA_TRACE
 //#define NOUVEAU_DMA_DEBUG
 //#define NOUVEAU_DMA_DUMP_POSTRELOC_PUSHBUF
-#define NOUVEAU_DMA_SUBCHAN_LRU
 #define NOUVEAU_DMA_BARRIER 
 #define NOUVEAU_DMA_TIMEOUT 2000
 
        nv->pushbuf = nouveau_pipe_dma_beginp(nv->obj, (mthd), (size));        \
 } while(0)
 
+#define BEGIN_RING_GR(obj,mthd,size) do {                                      \
+       nv->pushbuf = nouveau_pipe_dma_beginp(obj, (mthd), (size));            \
+} while(0)
+
 #define OUT_RING(data) do {                                                    \
        (*nv->pushbuf++) = (data);                                             \
 } while(0)
        nouveau_pipe_dma_kickoff(nv->channel);                                 \
 } while(0)
 
+#define BIND_RING(o,s) do {                                                    \
+       nv->o->subc = (s);                                                     \
+       BEGIN_RING(o, 0x0000, 1);                                              \
+       OUT_RING  (nv->o->handle);                                             \
+} while(0)
+
 #define OUT_RELOC(bo,data,flags,vor,tor) do {                                  \
        nouveau_pushbuf_emit_reloc(nv->channel, nv->pushbuf, (void*)(bo),      \
                                   (data), (flags), (vor), (tor));             \