Mesa (master): intel/compiler: Disable push constants on gen12-hp

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jan 13 21:27:40 UTC 2021


Module: Mesa
Branch: master
Commit: 9294193098149c87d95a55d71e42cdbd1f885bb3
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9294193098149c87d95a55d71e42cdbd1f885bb3

Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Tue Nov 13 14:26:23 2018 -0800

intel/compiler: Disable push constants on gen12-hp

We currently don't use push constants with the COMPUTE_WALKER command.
Make all uniforms to be pull constants.

The local group id previously was a push constant, but is now
available in R0.2[7:0].

Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8342>

---

 src/intel/compiler/brw_fs_nir.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/intel/compiler/brw_fs_nir.cpp b/src/intel/compiler/brw_fs_nir.cpp
index d8675c6fbcf..19ead829755 100644
--- a/src/intel/compiler/brw_fs_nir.cpp
+++ b/src/intel/compiler/brw_fs_nir.cpp
@@ -107,7 +107,8 @@ fs_visitor::nir_setup_uniforms()
 
    uniforms = nir->num_uniforms / 4;
 
-   if (stage == MESA_SHADER_COMPUTE || stage == MESA_SHADER_KERNEL) {
+   if ((stage == MESA_SHADER_COMPUTE || stage == MESA_SHADER_KERNEL) &&
+       devinfo->gen <= 12 && !gen_device_info_is_12hp(devinfo)) {
       /* Add uniforms for builtins after regular NIR uniforms. */
       assert(uniforms == prog_data->nr_params);
 
@@ -3739,7 +3740,12 @@ fs_visitor::nir_emit_cs_intrinsic(const fs_builder &bld,
       break;
 
    case nir_intrinsic_load_subgroup_id:
-      bld.MOV(retype(dest, BRW_REGISTER_TYPE_UD), subgroup_id);
+      if (devinfo->gen > 12 || gen_device_info_is_12hp(devinfo))
+         bld.AND(retype(dest, BRW_REGISTER_TYPE_UD),
+                 retype(brw_vec1_grf(0, 2), BRW_REGISTER_TYPE_UD),
+                 brw_imm_ud(INTEL_MASK(7, 0)));
+      else
+         bld.MOV(retype(dest, BRW_REGISTER_TYPE_UD), subgroup_id);
       break;
 
    case nir_intrinsic_load_local_invocation_id:



More information about the mesa-commit mailing list