glsl: Set location on structure-split sampler uniform variables
gl_nir_lower_samplers_as_deref splits structure uniform variables,
creating new variables for individual fields. As part of that, it
calculates a new location. It then never set this on the new variables.
Thanks to Michael Fiano for finding this bug. Fixes crashes on i965
with Piglit's new tests/spec/glsl-1.10/execution/samplers/uniform-struct
test, which was reduced from the failing case in Michael's app.
Fixes: f003859f97 nir: Make gl_nir_lower_samplers use gl_nir_lower_samplers_as_deref
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
@@ -177,6 +177,7 @@ lower_deref(nir_builder *b, struct lower_samplers_as_deref_state *state,
|
||||
} else {
|
||||
var = nir_variable_create(state->shader, nir_var_uniform, type, name);
|
||||
var->data.binding = binding;
|
||||
var->data.location = location;
|
||||
_mesa_hash_table_insert_pre_hashed(state->remap_table, hash, name, var);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user