Mesa (staging/21.3): st/mesa: don't crash when draw indirect buffer has no storage

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


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

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Thu Oct 21 15:40:20 2021 -0400

st/mesa: don't crash when draw indirect buffer has no storage

Fixes: 22f6624ed318e8 - gallium: separate indirect stuff from pipe_draw_info

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13471>
(cherry picked from commit 520300ad2202adbe652909839b94f6eedf489aa5)

---

 .pick_status.json                | 2 +-
 src/mesa/state_tracker/st_draw.c | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/.pick_status.json b/.pick_status.json
index c0807eec27d..34d4eb9089e 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -22,7 +22,7 @@
         "description": "st/mesa: don't crash when draw indirect buffer has no storage",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "22f6624ed318e8131681ec1f2e7b3a59449df412"
     },
diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_tracker/st_draw.c
index bfe443781c4..f488a69b948 100644
--- a/src/mesa/state_tracker/st_draw.c
+++ b/src/mesa/state_tracker/st_draw.c
@@ -262,6 +262,10 @@ st_indirect_draw_vbo(struct gl_context *ctx,
    indirect.buffer = st_buffer_object(indirect_data)->buffer;
    indirect.offset = indirect_offset;
 
+   /* Viewperf2020/Maya draws with a buffer that has no storage. */
+   if (!indirect.buffer)
+      return;
+
    if (!st->has_multi_draw_indirect) {
       int i;
 



More information about the mesa-commit mailing list