r300g: add get_cs_info winsys entrypoint, abandon check_cs
[mesa.git] / src / gallium / drivers / r300 / r300_cs.h
index 456b2ec7b922a52e6f2f458ea95dd4e043cffa7f..6739f6703ac5ddc4e3c52b41508d1937e7ec5db1 100644 (file)
@@ -54,7 +54,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)