nir/lower_variable_initializers: Restrict the modes we lower
authorJason Ekstrand <jason@jlekstrand.net>
Tue, 21 Jul 2020 23:46:24 +0000 (18:46 -0500)
committerMarge Bot <eric+marge@anholt.net>
Wed, 29 Jul 2020 17:38:58 +0000 (17:38 +0000)
This is not a functional change because these are the only modes we
handle.  All others get silently ignored.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

src/compiler/nir/nir_lower_variable_initializers.c

index 3a32bbd053370d4af0b29d849ccaa17b701fee3f..7b90a196b2d7876f6beae87ecfaacf1f4ccf2fef 100644 (file)
@@ -88,6 +88,16 @@ nir_lower_variable_initializers(nir_shader *shader, nir_variable_mode modes)
 {
    bool progress = false;
 
+   /* Only some variables have initializers that we want to lower.  Others
+    * such as uniforms have initializers which are useful later during linking
+    * so we want to skip over those.  Restrict to only variable types where
+    * initializers make sense so that callers can use nir_var_all.
+    */
+   modes &= nir_var_shader_out |
+            nir_var_shader_temp |
+            nir_var_function_temp |
+            nir_var_system_value;
+
    nir_foreach_function(function, shader) {
       if (!function->impl)
         continue;