nvc0/ir: add support for TGSI_SEMANTIC_HELPER_INVOCATION
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
@@ -389,6 +389,7 @@ enum SVSemantic
|
|||||||
SV_SBASE,
|
SV_SBASE,
|
||||||
SV_VERTEX_STRIDE,
|
SV_VERTEX_STRIDE,
|
||||||
SV_INVOCATION_INFO,
|
SV_INVOCATION_INFO,
|
||||||
|
SV_THREAD_KILL,
|
||||||
SV_UNDEFINED,
|
SV_UNDEFINED,
|
||||||
SV_LAST
|
SV_LAST
|
||||||
};
|
};
|
||||||
|
@@ -1644,6 +1644,7 @@ CodeEmitterGK110::getSRegEncoding(const ValueRef& ref)
|
|||||||
case SV_VERTEX_COUNT: return 0x10;
|
case SV_VERTEX_COUNT: return 0x10;
|
||||||
case SV_INVOCATION_ID: return 0x11;
|
case SV_INVOCATION_ID: return 0x11;
|
||||||
case SV_YDIR: return 0x12;
|
case SV_YDIR: return 0x12;
|
||||||
|
case SV_THREAD_KILL: return 0x13;
|
||||||
case SV_TID: return 0x21 + SDATA(ref).sv.index;
|
case SV_TID: return 0x21 + SDATA(ref).sv.index;
|
||||||
case SV_CTAID: return 0x25 + SDATA(ref).sv.index;
|
case SV_CTAID: return 0x25 + SDATA(ref).sv.index;
|
||||||
case SV_NTID: return 0x29 + SDATA(ref).sv.index;
|
case SV_NTID: return 0x29 + SDATA(ref).sv.index;
|
||||||
|
@@ -244,6 +244,7 @@ CodeEmitterGM107::emitSYS(int pos, const Value *val)
|
|||||||
case SV_LANEID : id = 0x00; break;
|
case SV_LANEID : id = 0x00; break;
|
||||||
case SV_VERTEX_COUNT : id = 0x10; break;
|
case SV_VERTEX_COUNT : id = 0x10; break;
|
||||||
case SV_INVOCATION_ID : id = 0x11; break;
|
case SV_INVOCATION_ID : id = 0x11; break;
|
||||||
|
case SV_THREAD_KILL : id = 0x13; break;
|
||||||
case SV_INVOCATION_INFO: id = 0x1d; break;
|
case SV_INVOCATION_INFO: id = 0x1d; break;
|
||||||
default:
|
default:
|
||||||
assert(!"invalid system value");
|
assert(!"invalid system value");
|
||||||
|
@@ -1839,6 +1839,7 @@ CodeEmitterNVC0::getSRegEncoding(const ValueRef& ref)
|
|||||||
case SV_VERTEX_COUNT: return 0x10;
|
case SV_VERTEX_COUNT: return 0x10;
|
||||||
case SV_INVOCATION_ID: return 0x11;
|
case SV_INVOCATION_ID: return 0x11;
|
||||||
case SV_YDIR: return 0x12;
|
case SV_YDIR: return 0x12;
|
||||||
|
case SV_THREAD_KILL: return 0x13;
|
||||||
case SV_TID: return 0x21 + SDATA(ref).sv.index;
|
case SV_TID: return 0x21 + SDATA(ref).sv.index;
|
||||||
case SV_CTAID: return 0x25 + SDATA(ref).sv.index;
|
case SV_CTAID: return 0x25 + SDATA(ref).sv.index;
|
||||||
case SV_NTID: return 0x29 + SDATA(ref).sv.index;
|
case SV_NTID: return 0x29 + SDATA(ref).sv.index;
|
||||||
|
@@ -376,6 +376,7 @@ static nv50_ir::SVSemantic translateSysVal(uint sysval)
|
|||||||
case TGSI_SEMANTIC_TESSOUTER: return nv50_ir::SV_TESS_OUTER;
|
case TGSI_SEMANTIC_TESSOUTER: return nv50_ir::SV_TESS_OUTER;
|
||||||
case TGSI_SEMANTIC_TESSINNER: return nv50_ir::SV_TESS_INNER;
|
case TGSI_SEMANTIC_TESSINNER: return nv50_ir::SV_TESS_INNER;
|
||||||
case TGSI_SEMANTIC_VERTICESIN: return nv50_ir::SV_VERTEX_COUNT;
|
case TGSI_SEMANTIC_VERTICESIN: return nv50_ir::SV_VERTEX_COUNT;
|
||||||
|
case TGSI_SEMANTIC_HELPER_INVOCATION: return nv50_ir::SV_THREAD_KILL;
|
||||||
default:
|
default:
|
||||||
assert(0);
|
assert(0);
|
||||||
return nv50_ir::SV_CLOCK;
|
return nv50_ir::SV_CLOCK;
|
||||||
|
@@ -275,6 +275,7 @@ static const char *SemanticStr[SV_LAST + 1] =
|
|||||||
"SBASE",
|
"SBASE",
|
||||||
"VERTEX_STRIDE",
|
"VERTEX_STRIDE",
|
||||||
"INVOCATION_INFO",
|
"INVOCATION_INFO",
|
||||||
|
"THREAD_KILL",
|
||||||
"?",
|
"?",
|
||||||
"(INVALID)"
|
"(INVALID)"
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user