diff mbox

[i-g-t,v2,1/2] lib: make sure all rings are idle in gpu_quiescent_gpu()

Message ID 1369750978-6040-1-git-send-email-imre.deak@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Imre Deak May 28, 2013, 2:22 p.m. UTC
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
 lib/drmtest.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
diff mbox

Patch

diff --git a/lib/drmtest.c b/lib/drmtest.c
index 16f5be1..2d37fb6 100644
--- a/lib/drmtest.c
+++ b/lib/drmtest.c
@@ -109,6 +109,7 @@  int gem_available_fences(int fd)
 }
 
 
+#define LOCAL_I915_EXEC_VEBOX	(4 << 0)
 /* Ensure the gpu is idle by launching a nop execbuf and stalling for it. */
 void gem_quiescent_gpu(int fd)
 {
@@ -143,6 +144,21 @@  void gem_quiescent_gpu(int fd)
 
 	do_ioctl(fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, &execbuf);
 
+	if (gem_has_blt(fd)) {
+		execbuf.flags = I915_EXEC_BLT;
+		do_ioctl(fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, &execbuf);
+	}
+
+	if (gem_has_bsd(fd)) {
+		execbuf.flags = I915_EXEC_BSD;
+		do_ioctl(fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, &execbuf);
+	}
+
+	if (gem_has_vebox(fd)) {
+		execbuf.flags = LOCAL_I915_EXEC_VEBOX;
+		do_ioctl(fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, &execbuf);
+	}
+
 	gem_sync(fd, handle);
 }