nir: sanitize work group intrinsics to always be 32-bit.
authorDave Airlie <airlied@redhat.com>
Wed, 11 Dec 2019 23:39:21 +0000 (09:39 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 27 Dec 2019 03:22:34 +0000 (13:22 +1000)
This saves handling them in the backend later.

Reviewed-by: Karol Herbst <kherbst@redhat.com>
src/compiler/nir/nir_lower_system_values.c

index 0ff73c9e265c73d4e75083cf7c7e4faee99f15c8..b99ae406ce4ea722291da24bf171a6e5395b1960 100644 (file)
@@ -222,6 +222,10 @@ lower_system_value_instr(nir_builder *b, nir_instr *instr, void *_state)
          return NULL;
       }
 
+   case nir_intrinsic_load_num_work_groups:
+   case nir_intrinsic_load_work_group_id:
+      return sanitize_32bit_sysval(b, intrin);
+
    case nir_intrinsic_load_deref: {
       nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]);
       if (deref->mode != nir_var_system_value)