<div dir="ltr">What is WorkDim?  how is it different from the global and/or local workgroup dimensions?<br></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Jul 12, 2018 at 4:30 AM Karol Herbst <<a href="mailto:kherbst@redhat.com">kherbst@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From: Rob Clark <<a href="mailto:robdclark@gmail.com" target="_blank">robdclark@gmail.com</a>><br>
<br>
Signed-off-by: Karol Herbst <<a href="mailto:kherbst@redhat.com" target="_blank">kherbst@redhat.com</a>><br>
---<br>
 src/compiler/nir/nir.c             | 2 ++<br>
 src/compiler/nir/nir_intrinsics.py | 1 +<br>
 src/compiler/shader_enums.c        | 1 +<br>
 src/compiler/shader_enums.h        | 1 +<br>
 src/compiler/spirv/vtn_variables.c | 4 ++++<br>
 5 files changed, 9 insertions(+)<br>
<br>
diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c<br>
index c515a30b626..ca89a46f7d4 100644<br>
--- a/src/compiler/nir/nir.c<br>
+++ b/src/compiler/nir/nir.c<br>
@@ -1758,6 +1758,8 @@ nir_intrinsic_from_system_value(gl_system_value val)<br>
       return nir_intrinsic_load_local_group_size;<br>
    case SYSTEM_VALUE_GLOBAL_INVOCATION_ID:<br>
       return nir_intrinsic_load_global_invocation_id;<br>
+   case SYSTEM_VALUE_WORK_DIM:<br>
+      return nir_intrinsic_load_work_dim;<br>
    default:<br>
       unreachable("system value does not directly correspond to intrinsic");<br>
    }<br>
diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py<br>
index 919aa609f8a..1a03a6aa30f 100644<br>
--- a/src/compiler/nir/nir_intrinsics.py<br>
+++ b/src/compiler/nir/nir_intrinsics.py<br>
@@ -452,6 +452,7 @@ system_value("num_subgroups", 1)<br>
 system_value("subgroup_id", 1)<br>
 system_value("local_group_size", 3)<br>
 system_value("global_invocation_id", 3)<br>
+system_value("work_dim", 1)<br>
<br>
 # Blend constant color values.  Float values are clamped.#<br>
 system_value("blend_const_color_r_float", 1)<br>
diff --git a/src/compiler/shader_enums.c b/src/compiler/shader_enums.c<br>
index 4eade256604..a874083a0b7 100644<br>
--- a/src/compiler/shader_enums.c<br>
+++ b/src/compiler/shader_enums.c<br>
@@ -240,6 +240,7 @@ gl_system_value_name(gl_system_value sysval)<br>
      ENUM(SYSTEM_VALUE_NUM_WORK_GROUPS),<br>
      ENUM(SYSTEM_VALUE_LOCAL_GROUP_SIZE),<br>
      ENUM(SYSTEM_VALUE_GLOBAL_GROUP_SIZE),<br>
+     ENUM(SYSTEM_VALUE_WORK_DIM),<br>
      ENUM(SYSTEM_VALUE_DEVICE_INDEX),<br>
      ENUM(SYSTEM_VALUE_VIEW_INDEX),<br>
      ENUM(SYSTEM_VALUE_VERTEX_CNT),<br>
diff --git a/src/compiler/shader_enums.h b/src/compiler/shader_enums.h<br>
index 280bf1d2835..f8e22925f35 100644<br>
--- a/src/compiler/shader_enums.h<br>
+++ b/src/compiler/shader_enums.h<br>
@@ -586,6 +586,7 @@ typedef enum<br>
    SYSTEM_VALUE_NUM_WORK_GROUPS,<br>
    SYSTEM_VALUE_LOCAL_GROUP_SIZE,<br>
    SYSTEM_VALUE_GLOBAL_GROUP_SIZE,<br>
+   SYSTEM_VALUE_WORK_DIM,<br>
    /*@}*/<br>
<br>
    /** Required for VK_KHR_device_group */<br>
diff --git a/src/compiler/spirv/vtn_variables.c b/src/compiler/spirv/vtn_variables.c<br>
index 67b4d59b9fe..6bd7aa1b0d5 100644<br>
--- a/src/compiler/spirv/vtn_variables.c<br>
+++ b/src/compiler/spirv/vtn_variables.c<br>
@@ -1208,6 +1208,10 @@ vtn_get_builtin_location(struct vtn_builder *b,<br>
       *location = FRAG_RESULT_STENCIL;<br>
       vtn_assert(*mode == nir_var_shader_out);<br>
       break;<br>
+   case SpvBuiltInWorkDim:<br>
+      *location = SYSTEM_VALUE_WORK_DIM;<br>
+      set_mode_system_value(b, mode);<br>
+      break;<br>
    case SpvBuiltInGlobalSize:<br>
       *location = SYSTEM_VALUE_GLOBAL_GROUP_SIZE;<br>
       set_mode_system_value(b, mode);<br>
-- <br>
2.17.1<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote></div>