From: Rob Clark Date: Fri, 3 Nov 2017 16:47:51 +0000 (-0400) Subject: mesa/st/nir: assign driver_location for images X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0006b860ce83769e3d030ab1fec45a4de04dcadc;p=mesa.git mesa/st/nir: assign driver_location for images Signed-off-by: Rob Clark --- diff --git a/src/mesa/state_tracker/st_glsl_to_nir.cpp b/src/mesa/state_tracker/st_glsl_to_nir.cpp index 1912da2404a..dd4b05d7b97 100644 --- a/src/mesa/state_tracker/st_glsl_to_nir.cpp +++ b/src/mesa/state_tracker/st_glsl_to_nir.cpp @@ -176,6 +176,7 @@ st_nir_assign_uniform_locations(struct gl_program *prog, { int max = 0; int shaderidx = 0; + int imageidx = 0; nir_foreach_variable(uniform, uniform_list) { int loc; @@ -188,10 +189,13 @@ st_nir_assign_uniform_locations(struct gl_program *prog, uniform->interface_type != NULL) continue; - if (uniform->type->is_sampler()) { + if (uniform->type->is_sampler() || uniform->type->is_image()) { unsigned val = 0; bool found = shader_program->UniformHash->get(val, uniform->name); - loc = shaderidx++; + if (uniform->type->is_sampler()) + loc = shaderidx++; + else + loc = imageidx++; assert(found); (void) found; /* silence unused var warning */ /* this ensure that nir_lower_samplers looks at the correct