From af4a05f15cb614f719b31560938044d5c657880c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Thu, 21 Oct 2021 15:40:20 -0400 Subject: [PATCH] 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 Reviewed-by: Ilia Mirkin Part-of: (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 cfebddf786f..54c27586e84 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -157,7 +157,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 7fd83128bc5..db9e2c011fd 100644 --- a/src/mesa/state_tracker/st_draw.c +++ b/src/mesa/state_tracker/st_draw.c @@ -264,6 +264,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;