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@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8342>
This commit is contained in:
Jordan Justen 2018-11-13 14:26:23 -08:00
parent b7c1ad00fc
commit 9294193098
1 changed files with 8 additions and 2 deletions

View File

@ -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: