From 2bd148c990232d12d46e047c9104139352a5dc3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20=C5=9Alusarz?= Date: Mon, 16 May 2022 12:10:00 +0200 Subject: [PATCH] intel/compiler: emit URB fences for TASK/MESH Cc: 22.1 Reviewed-by: Lionel Landwerlin Part-of: --- src/intel/compiler/brw_fs_nir.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/intel/compiler/brw_fs_nir.cpp b/src/intel/compiler/brw_fs_nir.cpp index 61563b0cbd3..d8379706c54 100644 --- a/src/intel/compiler/brw_fs_nir.cpp +++ b/src/intel/compiler/brw_fs_nir.cpp @@ -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); slm_fence = modes & nir_var_mem_shared; 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; } @@ -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 = false; - if (stage != MESA_SHADER_TESS_CTRL) - urb_fence = false; + switch (stage) { + case MESA_SHADER_TESS_CTRL: + case MESA_SHADER_TASK: + case MESA_SHADER_MESH: + break; + default: + urb_fence = false; + break; + } unsigned fence_regs_count = 0; fs_reg fence_regs[3] = {};