nir: Fix count when we didn't lower load_uniforms but did shift load_ubos.
authorEric Anholt <eric@anholt.net>
Mon, 11 May 2020 18:53:22 +0000 (11:53 -0700)
committerMarge Bot <eric+marge@anholt.net>
Tue, 12 May 2020 17:01:55 +0000 (17:01 +0000)
The fixed commit was really nice in mostly fixing num_ubos to reflect the
shader after lowering, but for
dEQP-GLES31.functional.compute.basic.ubo_to_ssbo_single_invocation there
are no default uniforms and so we skipped the increment, even though we
shifted the block index up.

Fixes: 4777ee1a62f0 ("nir: Always create UBO variable when lowering uniforms to ubo")
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4992>

src/compiler/nir/nir_lower_uniforms_to_ubo.c

index 1046fdc6117c23f58dabf600923a9181bc1aec33..eef0d41440fb6d74dd00dc5b84a55d83d0a0bb0d 100644 (file)
@@ -110,6 +110,7 @@ nir_lower_uniforms_to_ubo(nir_shader *shader, int multiplier)
                var->data.binding++;
          }
       }
+      shader->info.num_ubos++;
 
       if (shader->num_uniforms > 0) {
          const struct glsl_type *type = glsl_array_type(glsl_vec4_type(),
@@ -126,7 +127,6 @@ nir_lower_uniforms_to_ubo(nir_shader *shader, int multiplier)
          ubo->interface_type =
                glsl_interface_type(&field, 1, GLSL_INTERFACE_PACKING_STD430,
                                    false, "__ubo0_interface");
-         shader->info.num_ubos++;
       }
    }