nouveau/nir: Set the input for vertex/instance ID like TGSI does.

Doesn't seem to help tests, but clears a TODO about differences between
them.

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16063>
This commit is contained in:
Emma Anholt 2022-04-14 11:23:34 -07:00 committed by Marge Bot
parent 801dca3c40
commit f29706a25f

View file

@ -1004,19 +1004,21 @@ bool Converter::assignSlots() {
BITSET_FOREACH_SET(i, nir->info.system_values_read, SYSTEM_VALUE_MAX) { BITSET_FOREACH_SET(i, nir->info.system_values_read, SYSTEM_VALUE_MAX) {
info_out->sv[info_out->numSysVals].sn = tgsi_get_sysval_semantic(i); info_out->sv[info_out->numSysVals].sn = tgsi_get_sysval_semantic(i);
info_out->sv[info_out->numSysVals].si = 0; info_out->sv[info_out->numSysVals].si = 0;
info_out->sv[info_out->numSysVals].input = 0; // TODO inferSysValDirection(sn); info_out->sv[info_out->numSysVals].input = 0;
switch (i) { switch (i) {
case SYSTEM_VALUE_VERTEX_ID:
info_out->sv[info_out->numSysVals].input = 1;
info_out->io.vertexId = info_out->numSysVals;
break;
case SYSTEM_VALUE_INSTANCE_ID: case SYSTEM_VALUE_INSTANCE_ID:
info_out->sv[info_out->numSysVals].input = 1;
info_out->io.instanceId = info_out->numSysVals; info_out->io.instanceId = info_out->numSysVals;
break; break;
case SYSTEM_VALUE_TESS_LEVEL_INNER: case SYSTEM_VALUE_TESS_LEVEL_INNER:
case SYSTEM_VALUE_TESS_LEVEL_OUTER: case SYSTEM_VALUE_TESS_LEVEL_OUTER:
info_out->sv[info_out->numSysVals].patch = 1; info_out->sv[info_out->numSysVals].patch = 1;
break; break;
case SYSTEM_VALUE_VERTEX_ID:
info_out->io.vertexId = info_out->numSysVals;
break;
default: default:
break; break;
} }