Found this nugget while looking at the ACO driver. It seems sensible to
avoid SLM fences if there is no SLM. This also makes the check depend
on SLM usage rather than just shader stage which will be useful if we
ever implement task/mesh because task shaders also have SLM.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13092>
break;
}
- if (stage != MESA_SHADER_COMPUTE && stage != MESA_SHADER_KERNEL)
+ if (nir->info.shared_size > 0) {
+ assert(gl_shader_stage_uses_workgroup(stage));
+ } else {
slm_fence = false;
+ }
/* If the workgroup fits in a single HW thread, the messages for SLM are
* processed in-order and the shader itself is already synchronized so