glsl has been constant-propagating out references to ir->constant_value
(the value of a variable declared as const), but we can get rid of that
whole pass if we just have glsl-to-nir hand the constant propagating
problem off to NIR.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21751>
var->state_slots = NULL;
}
- var->constant_initializer = constant_copy(ir->constant_initializer, var);
+ /* Values declared const will have ir->constant_value instead of
+ * ir->constant_initializer.
+ */
+ if (ir->constant_initializer)
+ var->constant_initializer = constant_copy(ir->constant_initializer, var);
+ else
+ var->constant_initializer = constant_copy(ir->constant_value, var);
if (var->data.mode == nir_var_function_temp)
nir_function_impl_add_variable(impl, var);