This is also: Reviewed-by: Timothy Arceri <[email protected]>
On Wed, 2017-01-11 at 01:29 +0100, Bas Nieuwenhuizen wrote: > Port of c5d664f9dc2d281c74844cef36ecb9f5862a8f6a > "anv/pipeline: Call nir_lower_constant_initializers" > > Signed-off-by: Bas Nieuwenhuizen <[email protected]> > Cc: <[email protected]> > --- > src/amd/vulkan/radv_pipeline.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/src/amd/vulkan/radv_pipeline.c > b/src/amd/vulkan/radv_pipeline.c > index 03603f5ecc2..d818938e1e4 100644 > --- a/src/amd/vulkan/radv_pipeline.c > +++ b/src/amd/vulkan/radv_pipeline.c > @@ -205,6 +205,13 @@ radv_shader_compile_to_nir(struct radv_device > *device, > > free(spec_entries); > > + /* We have to lower away local constant initializers > right before we > + * inline functions. That way they get properly > initialized at the top > + * of the function and not at the top of its caller. > + */ > + nir_lower_constant_initializers(nir, nir_var_local); > + nir_validate_shader(nir); > + > nir_lower_returns(nir); > nir_validate_shader(nir); > > @@ -224,6 +231,12 @@ radv_shader_compile_to_nir(struct radv_device > *device, > nir_var_system_value) > ; > nir_validate_shader(nir); > > + /* Now that we've deleted all but the main function, > we can go ahead and > + * lower the rest of the constant initializers. > + */ > + nir_lower_constant_initializers(nir, ~0); > + nir_validate_shader(nir); > + > nir_lower_system_values(nir); > nir_validate_shader(nir); > } _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
