Merge branch 'gallium-newclear'
[mesa.git] / src / gallium / drivers / r300 / r300_cs.h
index 456b2ec7b922a52e6f2f458ea95dd4e043cffa7f..9c8c273902b9d93d80adbaf601fb6092dd81bfdf 100644 (file)
 #define VERY_VERBOSE_CS 1
 #define VERY_VERBOSE_REGISTERS 1
 
-/* XXX stolen from radeon_drm.h */
-#define RADEON_GEM_DOMAIN_CPU  0x1
-#define RADEON_GEM_DOMAIN_GTT  0x2
-#define RADEON_GEM_DOMAIN_VRAM 0x4
-
 /* XXX stolen from radeon_reg.h */
 #define RADEON_CP_PACKET0 0x0
 
@@ -54,7 +49,7 @@
     int cs_count = 0; (void) cs_count;
 
 #define CHECK_CS(size) \
-    assert(cs_winsys->check_cs(cs_winsys, (size)))
+    assert(r300_check_cs(cs_context_copy, (size)))
 
 #define BEGIN_CS(size) do { \
     CHECK_CS(size); \
     cs_count--; \
 } while (0)
 
+#define OUT_CS_TABLE(values, count) do { \
+    if (VERY_VERBOSE_REGISTERS) \
+        DBG(cs_context_copy, DBG_CS, "r300: writing table of %d dwords\n", count); \
+    cs_winsys->write_cs_table(cs_winsys, values, count); \
+    cs_count -= count; \
+} while (0)
+
 #define OUT_CS_BUF_RELOC(bo, offset, rd, wd, flags) do { \
     DBG(cs_context_copy, DBG_CS, "r300: writing relocation for buffer %p, offset %d, " \
             "domains (%d, %d, %d)\n", \
         DBG(cs_context_copy, DBG_CS, "r300: FLUSH_CS in %s (%s:%d)\n\n", __FUNCTION__, \
                 __FILE__, __LINE__); \
     } \
+    if (SCREEN_DBG_ON(r300->screen, DBG_STATS)) { \
+        r300->flush_counter++; \
+    } \
     cs_winsys->flush_cs(cs_winsys); \
 } while (0)