intel/compiler: Don't stage Task/Mesh outputs in registers

Since the outputs are shared among the whole workgroup, these can't be
staged in registers as they will not be always visible for all the
invocations (to read/flush).  If they ever need to be staged, we
should use SLM for that.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13661>
This commit is contained in:
Caio Oliveira
2021-05-18 10:58:26 -07:00
committed by Marge Bot
parent be89ea3231
commit 18e1c9c542
+4 -1
View File
@@ -53,7 +53,10 @@ fs_visitor::emit_nir_code()
void
fs_visitor::nir_setup_outputs()
{
if (stage == MESA_SHADER_TESS_CTRL || stage == MESA_SHADER_FRAGMENT)
if (stage == MESA_SHADER_TESS_CTRL ||
stage == MESA_SHADER_TASK ||
stage == MESA_SHADER_MESH ||
stage == MESA_SHADER_FRAGMENT)
return;
unsigned vec4s[VARYING_SLOT_TESS_MAX] = { 0, };