summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2018-06-23 12:13:03 -0700
committerKenneth Graunke <[email protected]>2019-02-21 10:26:07 -0800
commit8c54433275a55887925c553d696b6981424f98ac (patch)
treeb09a836b2f4957490b251b99c28043c408703d5e
parentd0b55ca78234fd4ff147407d5731b04c691eb3d5 (diff)
iris: Handle batch submission failure "better"
We used to not reset the batch, and just keep appending to it, so you'd get the same invalid contents over and over. I'd also really like to know about this, so aborting seems wise for now, if not for the long term
-rw-r--r--src/gallium/drivers/iris/iris_batch.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/gallium/drivers/iris/iris_batch.c b/src/gallium/drivers/iris/iris_batch.c
index 9ed447d42e9..497e37f12f6 100644
--- a/src/gallium/drivers/iris/iris_batch.c
+++ b/src/gallium/drivers/iris/iris_batch.c
@@ -457,15 +457,20 @@ _iris_batch_flush_fence(struct iris_batch *batch,
//throttle(iris);
- if (ret < 0)
- return ret;
+ if (ret >= 0) {
+ //if (iris->ctx.Const.ResetStrategy == GL_LOSE_CONTEXT_ON_RESET_ARB)
+ //iris_check_for_reset(ice);
- //if (iris->ctx.Const.ResetStrategy == GL_LOSE_CONTEXT_ON_RESET_ARB)
- //iris_check_for_reset(ice);
-
- if (unlikely(INTEL_DEBUG & DEBUG_SYNC)) {
- dbg_printf("waiting for idle\n");
- iris_bo_wait_rendering(batch->bo);
+ if (unlikely(INTEL_DEBUG & DEBUG_SYNC)) {
+ dbg_printf("waiting for idle\n");
+ iris_bo_wait_rendering(batch->bo);
+ }
+ } else {
+#ifdef DEBUG
+ fprintf(stderr, "iris: Failed to submit batchbuffer: %s\n",
+ strerror(-ret));
+ abort();
+#endif
}
/* Clean up after the batch we submitted and prepare for a new one. */