intel/compiler: emit URB fences for TASK/MESH

Cc: 22.1 <mesa-stable>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16665>
This commit is contained in:
Marcin Ślusarz
2022-05-16 12:10:00 +02:00
committed by Marge Bot
parent 9afd955353
commit 2bd148c990

View File

@@ -4489,7 +4489,7 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr
ugm_fence = modes & (nir_var_mem_ssbo | nir_var_mem_global); ugm_fence = modes & (nir_var_mem_ssbo | nir_var_mem_global);
slm_fence = modes & nir_var_mem_shared; slm_fence = modes & nir_var_mem_shared;
tgm_fence = modes & nir_var_image; tgm_fence = modes & nir_var_image;
urb_fence = modes & nir_var_shader_out; urb_fence = modes & (nir_var_shader_out | nir_var_mem_task_payload);
break; break;
} }
@@ -4545,8 +4545,15 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr
slm_fence && workgroup_size() <= dispatch_width) slm_fence && workgroup_size() <= dispatch_width)
slm_fence = false; slm_fence = false;
if (stage != MESA_SHADER_TESS_CTRL) switch (stage) {
case MESA_SHADER_TESS_CTRL:
case MESA_SHADER_TASK:
case MESA_SHADER_MESH:
break;
default:
urb_fence = false; urb_fence = false;
break;
}
unsigned fence_regs_count = 0; unsigned fence_regs_count = 0;
fs_reg fence_regs[3] = {}; fs_reg fence_regs[3] = {};