nv50/ir: fake SV_THREAD_KILL support

If we say that there are no helper invocations, it's suboptimal but
allows ES 3.1 to chug along.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10162>
This commit is contained in:
Ilia Mirkin
2021-04-03 01:13:16 -04:00
committed by Marge Bot
parent ea49c9dabc
commit 97d61ae771
2 changed files with 7 additions and 0 deletions
@@ -1230,6 +1230,11 @@ NV50LoweringPreSSA::handleRDSV(Instruction *i)
off);
break;
}
case SV_THREAD_KILL:
// Not actually supported. But it's implementation-dependent, so we can
// always just say it's not a helper.
bld.mkMov(def, bld.loadImm(NULL, 0));
break;
default:
bld.mkFetch(i->getDef(0), i->dType,
FILE_SHADER_INPUT, addr, i->getIndirect(0, 0), NULL);
@@ -261,6 +261,8 @@ TargetNV50::getSVAddress(DataFile shaderFile, const Symbol *sym) const
return 0;
case SV_SAMPLE_POS:
return 0; /* sample position is handled differently */
case SV_THREAD_KILL:
return 0;
default:
return sysvalLocation[sym->reg.data.sv.sv];
}