Mesa (staging/21.3): iris: clear bos_written when resetting a batch

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Oct 22 21:06:11 UTC 2021


Module: Mesa
Branch: staging/21.3
Commit: 84541774436e609bbc8ea89a9ebeff5a5404d925
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=84541774436e609bbc8ea89a9ebeff5a5404d925

Author: Tapani Pälli <tapani.palli at intel.com>
Date:   Thu Oct 21 11:02:34 2021 +0300

iris: clear bos_written when resetting a batch

This fixes dEQP-EGL.functional.sharing.gles2.multithread.* tests that
are hitting: "iris: Failed to submit batchbuffer: Invalid argument"
error.

v2: clear on reset rather than clear 'on-the-fly' (Kenneth Graunke)

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5537
Fixes: e4c3d3efc7a ("iris: Defer construction of the validation (exec_object2) list")
Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13464>
(cherry picked from commit 1465ec8cf35c3e62635bba31682a0e2673e40100)

---

 .pick_status.json                     | 2 +-
 src/gallium/drivers/iris/iris_batch.c | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/.pick_status.json b/.pick_status.json
index 720ea320c75..c0807eec27d 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -94,7 +94,7 @@
         "description": "iris: clear bos_written when resetting a batch",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "e4c3d3efc7a2fa9f975b1f9211f7d61aa7d31d94"
     },
diff --git a/src/gallium/drivers/iris/iris_batch.c b/src/gallium/drivers/iris/iris_batch.c
index afd152f3eaf..f9a1eed0def 100644
--- a/src/gallium/drivers/iris/iris_batch.c
+++ b/src/gallium/drivers/iris/iris_batch.c
@@ -412,6 +412,9 @@ iris_batch_reset(struct iris_batch *batch)
    create_batch(batch);
    assert(batch->bo->index == 0);
 
+   memset(batch->bos_written, 0,
+          sizeof(BITSET_WORD) * BITSET_WORDS(batch->exec_array_size));
+
    struct iris_syncobj *syncobj = iris_create_syncobj(bufmgr);
    iris_batch_add_syncobj(batch, syncobj, I915_EXEC_FENCE_SIGNAL);
    iris_syncobj_reference(bufmgr, &syncobj, NULL);



More information about the mesa-commit mailing list