summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2014-12-02 13:18:56 -0800
committerEric Anholt <[email protected]>2014-12-05 10:43:14 -0800
commit34cf86bdc48e1b350437fe831fedd4632f4e06c2 (patch)
tree077250808d4a79e897b5b06018a7753a6ab03fc6 /src/gallium/drivers
parentc0e26c5d272d48c98ae50b9b5358492e76138657 (diff)
vc4: Add a debug flag for waiting for sync on submit.
This is nice when you're tracking down which command list is hanging the GPU.
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r--src/gallium/drivers/vc4/vc4_context.c8
-rw-r--r--src/gallium/drivers/vc4/vc4_screen.c2
-rw-r--r--src/gallium/drivers/vc4/vc4_screen.h1
3 files changed, 11 insertions, 0 deletions
diff --git a/src/gallium/drivers/vc4/vc4_context.c b/src/gallium/drivers/vc4/vc4_context.c
index bb30c0e8ca7..b26c07127a9 100644
--- a/src/gallium/drivers/vc4/vc4_context.c
+++ b/src/gallium/drivers/vc4/vc4_context.c
@@ -324,6 +324,14 @@ vc4_flush(struct pipe_context *pctx)
vc4->last_emit_seqno = submit.seqno;
+ if (vc4_debug & VC4_DEBUG_ALWAYS_SYNC) {
+ if (!vc4_wait_seqno(vc4->screen, vc4->last_emit_seqno,
+ PIPE_TIMEOUT_INFINITE)) {
+ fprintf(stderr, "Wait failed.\n");
+ abort();
+ }
+ }
+
vc4_reset_cl(&vc4->bcl);
vc4_reset_cl(&vc4->rcl);
vc4_reset_cl(&vc4->shader_rec);
diff --git a/src/gallium/drivers/vc4/vc4_screen.c b/src/gallium/drivers/vc4/vc4_screen.c
index abd44eee3a8..18451bd71a7 100644
--- a/src/gallium/drivers/vc4/vc4_screen.c
+++ b/src/gallium/drivers/vc4/vc4_screen.c
@@ -52,6 +52,8 @@ static const struct debug_named_value debug_options[] = {
"Skip actual hardware execution of commands" },
{ "always_flush", VC4_DEBUG_ALWAYS_FLUSH,
"Flush after each draw call" },
+ { "always_sync", VC4_DEBUG_ALWAYS_SYNC,
+ "Wait for finish after each flush" },
{ NULL }
};
diff --git a/src/gallium/drivers/vc4/vc4_screen.h b/src/gallium/drivers/vc4/vc4_screen.h
index ba07490fc94..3819bda3c63 100644
--- a/src/gallium/drivers/vc4/vc4_screen.h
+++ b/src/gallium/drivers/vc4/vc4_screen.h
@@ -37,6 +37,7 @@ struct vc4_bo;
#define VC4_DEBUG_PERF 0x0020
#define VC4_DEBUG_NORAST 0x0040
#define VC4_DEBUG_ALWAYS_FLUSH 0x0080
+#define VC4_DEBUG_ALWAYS_SYNC 0x0100
#define VC4_MAX_MIP_LEVELS 12
#define VC4_MAX_TEXTURE_SAMPLERS 16