glsl_to_nir: Use a variable's constant_value if it wasn't const-propped out.

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>
This commit is contained in:
Emma Anholt 2023-03-06 16:26:14 -08:00 committed by Marge Bot
parent dccbecbef5
commit 470214cb82

View file

@ -707,7 +707,13 @@ nir_visitor::visit(ir_variable *ir)
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);