HLSL: Support SV_Coverage and SV_DispatchThreadId; catch SV_GroupIndex.

This commit is contained in:
John Kessenich
2016-10-16 12:12:11 -06:00
parent 4a3467933e
commit b50fd17acb
7 changed files with 88 additions and 9 deletions

View File

@@ -2935,6 +2935,8 @@ void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, con
qualifier.builtIn = EbvTessLevelInner;
else if (semanticUpperCase == "SV_GSINSTANCEID")
qualifier.builtIn = EbvInvocationId;
else if (semanticUpperCase == "SV_DISPATCHTHREADID")
qualifier.builtIn = EbvLocalInvocationId;
else if (semanticUpperCase == "SV_GROUPTHREADID")
qualifier.builtIn = EbvLocalInvocationId;
else if (semanticUpperCase == "SV_GROUPID")
@@ -2943,6 +2945,8 @@ void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, con
qualifier.builtIn = EbvTessCoord;
else if (semanticUpperCase == "SV_DEPTH")
qualifier.builtIn = EbvFragDepth;
else if( semanticUpperCase == "SV_COVERAGE")
qualifier.builtIn = EbvSampleMask;
//TODO, these need to get refined to be more specific
else if( semanticUpperCase == "SV_DEPTHGREATEREQUAL")
@@ -2950,9 +2954,9 @@ void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, con
else if( semanticUpperCase == "SV_DEPTHLESSEQUAL")
qualifier.builtIn = EbvFragDepthLesser;
else if( semanticUpperCase == "SV_STENCILREF")
error(loc, "unimplemented", "SV_STENCILREF", "");
else if( semanticUpperCase == "SV_COVERAGE")
error(loc, "unimplemented", "SV_COVERAGE", "");
error(loc, "unimplemented; need ARB_shader_stencil_export", "SV_STENCILREF", "");
else if( semanticUpperCase == "SV_GROUPINDEX")
error(loc, "unimplemented", "SV_GROUPINDEX", "");
}
//