From 8dab73cab2fb5a2d1cbc03b153e443a085208ad0 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 11 Aug 2023 15:16:51 -0400 Subject: [PATCH] zink: fix crash in lower_pv_mode_gs_store src->parent can be null Fixes: 39770c6503a ("zink: fix store subsitution in `lower_pv_mode_gs_store`") Part-of: (cherry picked from commit 04dbb556c282a13e510ade21d6e24ee4d1bf90e8) --- .pick_status.json | 2 +- src/gallium/drivers/zink/zink_compiler.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index c4b2d8eef96..70ad3a2906b 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -6774,7 +6774,7 @@ "description": "zink: fix crash in lower_pv_mode_gs_store", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "39770c6503ac44090decd88698802bb95189bb4d", "notes": null diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index 6f67427ce08..79cb8757189 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -428,7 +428,9 @@ lower_pv_mode_gs_ring_index(nir_builder *b, static nir_deref_instr* replicate_derefs(nir_builder *b, nir_deref_instr *old, nir_deref_instr *new) { - nir_deref_instr *parent = nir_src_as_deref(old->parent); + nir_deref_instr *parent = nir_deref_instr_parent(old); + if (!parent) + return new; switch(old->deref_type) { case nir_deref_type_var: return new;