From 9294193098149c87d95a55d71e42cdbd1f885bb3 Mon Sep 17 00:00:00 2001 From: Jordan Justen Date: Tue, 13 Nov 2018 14:26:23 -0800 Subject: [PATCH] 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 Reviewed-by: Jason Ekstrand Part-of: --- 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: