nir_lower_system_values: Fix load_global_invocation_id to use base_work_group_id...
authorJesse Natalie <jenatali@microsoft.com>
Wed, 9 Sep 2020 00:58:12 +0000 (17:58 -0700)
committerMarge Bot <eric+marge@anholt.net>
Tue, 22 Sep 2020 21:22:26 +0000 (21:22 +0000)
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6668>

src/compiler/nir/nir_lower_system_values.c

index b99f655..cf06cea 100644 (file)
@@ -351,7 +351,8 @@ lower_compute_system_value_instr(nir_builder *b,
       if (options && options->has_base_global_invocation_id)
          return nir_iadd(b, nir_load_global_invocation_id_zero_base(b, bit_size),
                             nir_load_base_global_invocation_id(b, bit_size));
-      else if (!b->shader->options->has_cs_global_id)
+      else if ((options && options->has_base_work_group_id) ||
+               !b->shader->options->has_cs_global_id)
          return nir_load_global_invocation_id_zero_base(b, bit_size);
       else
          return NULL;