From: Dave Airlie Date: Sun, 11 Jun 2017 23:45:36 +0000 (+0100) Subject: glsl/lower_distance: only set max_array_access for 1D clip dist arrays X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=53587b7105aaf10ecf7e5dcb8ed63265af688738;p=mesa.git glsl/lower_distance: only set max_array_access for 1D clip dist arrays The max_array_access field applies to the first dimension, which means we only want to set it for the 1D clip dist arrays. This fixes an ir_validate assert seen with KHR-GL44.cull_distance.functional on nouveau and radeon with debug builds. Fixes: a08c4ebbe (glsl: rewrite clip/cull distance lowering pass) Reviewed-by: Timothy Arceri Tested-by: Tobias Klausmann Signed-off-by: Dave Airlie --- diff --git a/src/compiler/glsl/lower_distance.cpp b/src/compiler/glsl/lower_distance.cpp index 9858503e028..ff04e9a26d8 100644 --- a/src/compiler/glsl/lower_distance.cpp +++ b/src/compiler/glsl/lower_distance.cpp @@ -167,7 +167,6 @@ lower_distance_visitor::visit(ir_variable *ir) /* Clone the old var so that we inherit all of its properties */ *new_var = ir->clone(ralloc_parent(ir), NULL); (*new_var)->name = ralloc_strdup(*new_var, GLSL_CLIP_VAR_NAME); - (*new_var)->data.max_array_access = new_size - 1; (*new_var)->data.location = VARYING_SLOT_CLIP_DIST0; if (!ir->type->fields.array->is_array()) { @@ -182,6 +181,7 @@ lower_distance_visitor::visit(ir_variable *ir) this->shader_stage == MESA_SHADER_GEOMETRY))); assert (ir->type->fields.array == glsl_type::float_type); + (*new_var)->data.max_array_access = new_size - 1; /* And change the properties that we need to change */ (*new_var)->type = glsl_type::get_array_instance(glsl_type::vec4_type,