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:

committed by
Marge Bot

parent
9afd955353
commit
2bd148c990
@@ -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) {
|
||||||
urb_fence = false;
|
case MESA_SHADER_TESS_CTRL:
|
||||||
|
case MESA_SHADER_TASK:
|
||||||
|
case MESA_SHADER_MESH:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
urb_fence = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
unsigned fence_regs_count = 0;
|
unsigned fence_regs_count = 0;
|
||||||
fs_reg fence_regs[3] = {};
|
fs_reg fence_regs[3] = {};
|
||||||
|
Reference in New Issue
Block a user