Merge pull request #729 from gwihlidal/master

HLSL - Support for SV_GroupIndex
This commit is contained in:
John Kessenich 2017-02-17 17:39:32 -07:00 committed by GitHub
commit f2b276031b

View File

@ -543,7 +543,7 @@ bool HlslParseContext::parseMatrixSwizzleSelector(const TSourceLoc& loc, const T
error(loc, "matrix component swizzle missing", compString.c_str(), "");
return false;
}
startPos[numComps++] = c + 1;
startPos[numComps++] = (int)c + 1;
}
}
@ -2153,7 +2153,7 @@ TIntermTyped* HlslParseContext::handleAssignToMatrixSwizzle(const TSourceLoc& lo
TIntermTyped* vectorAssign = nullptr;
if (vector == nullptr) {
// create a new intermediate vector variable to assign to
TType vectorType(matrix->getBasicType(), EvqTemporary, matrix->getQualifier().precision, swizzle.size()/2);
TType vectorType(matrix->getBasicType(), EvqTemporary, matrix->getQualifier().precision, (int)swizzle.size()/2);
vector = intermediate.addSymbol(*makeInternalVariable("intermVec", vectorType), loc);
// assign the right to the new vector
@ -3887,6 +3887,8 @@ void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, con
qualifier.builtIn = EbvGlobalInvocationId;
else if (semanticUpperCase == "SV_GROUPTHREADID")
qualifier.builtIn = EbvLocalInvocationId;
else if (semanticUpperCase == "SV_GROUPINDEX")
qualifier.builtIn = EbvLocalInvocationIndex;
else if (semanticUpperCase == "SV_GROUPID")
qualifier.builtIn = EbvWorkGroupId;
else if (semanticUpperCase == "SV_DOMAINLOCATION")
@ -3903,8 +3905,6 @@ void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, con
qualifier.builtIn = EbvFragDepthLesser;
else if( semanticUpperCase == "SV_STENCILREF")
error(loc, "unimplemented; need ARB_shader_stencil_export", "SV_STENCILREF", "");
else if( semanticUpperCase == "SV_GROUPINDEX")
error(loc, "unimplemented", "SV_GROUPINDEX", "");
}
//