Skip to content
Snippets Groups Projects
Commit 89a04a54 authored by Erik Faye-Lund's avatar Erik Faye-Lund Committed by Marge Bot
Browse files

compiler/glsl: avoid null-pointer deref


When we encounter a bindless image here, lower_deref returns a
NULL-pointer, and calling record_images_used will try to dereference
that NULL-pointer.

So let's dig out the var from the source instruction instead of the
result of the lowering.

Fixes: 5910c938 ("nir/glsl: gather bitmask of images used by program")
Reviewed-by: default avatarTapani Pälli <tapani.palli@intel.com>
Part-of: <mesa/mesa!9895>
parent cb580af0
No related branches found
No related tags found
No related merge requests found
......@@ -120,9 +120,10 @@ remove_struct_derefs_prep(nir_deref_instr **p, char **name,
static void
record_images_used(struct shader_info *info,
nir_deref_instr *deref)
nir_intrinsic_instr *instr)
{
nir_variable *var = nir_deref_instr_get_variable(deref);
nir_variable *var =
nir_deref_instr_get_variable(nir_src_as_deref(instr->src[0]));
/* Structs have been lowered already, so get_aoa_size is sufficient. */
const unsigned size =
......@@ -301,7 +302,7 @@ lower_intrinsic(nir_intrinsic_instr *instr,
nir_deref_instr *deref =
lower_deref(b, state, nir_src_as_deref(instr->src[0]));
record_images_used(&state->shader->info, deref);
record_images_used(&state->shader->info, instr);
/* don't lower bindless: */
if (!deref)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment