winsys/radeon: the env var RADEON_NOOP can be used to skip CS ioctls
authorMarek Olšák <maraeo@gmail.com>
Fri, 21 Dec 2012 18:15:20 +0000 (19:15 +0100)
committerMarek Olšák <maraeo@gmail.com>
Fri, 21 Dec 2012 22:42:23 +0000 (23:42 +0100)
src/gallium/winsys/radeon/drm/radeon_drm_cs.c

index c6498ef7230e55649d5d629eb23702120d747a0c..f9be96186e6c599d06b173d1548c01cb437af23c 100644 (file)
@@ -432,6 +432,8 @@ void radeon_drm_cs_sync_flush(struct radeon_drm_cs *cs)
     }
 }
 
+DEBUG_GET_ONCE_BOOL_OPTION(noop, "RADEON_NOOP", FALSE)
+
 static void radeon_drm_cs_flush(struct radeon_winsys_cs *rcs, unsigned flags)
 {
     struct radeon_drm_cs *cs = radeon_drm_cs(rcs);
@@ -449,7 +451,8 @@ static void radeon_drm_cs_flush(struct radeon_winsys_cs *rcs, unsigned flags)
     cs->cst = tmp;
 
     /* If the CS is not empty or overflowed, emit it in a separate thread. */
-    if (cs->base.cdw && cs->base.cdw <= RADEON_MAX_CMDBUF_DWORDS) {
+    if (cs->base.cdw && cs->base.cdw <= RADEON_MAX_CMDBUF_DWORDS &&
+       !debug_get_option_noop()) {
         unsigned i, crelocs = cs->cst->crelocs;
 
         cs->cst->chunks[0].length_dw = cs->base.cdw;