Merge pull request #1569 from amdrexu/bugfix
Fix parser issue: redeclare gl_FragStencilRefARB is not supported
This commit is contained in:
commit
d509a5eec6
2 changed files with 10 additions and 0 deletions
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
#extension GL_ARB_shader_stencil_export: enable
|
#extension GL_ARB_shader_stencil_export: enable
|
||||||
|
|
||||||
|
out int gl_FragStencilRefARB;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
gl_FragStencilRefARB = 100;
|
gl_FragStencilRefARB = 100;
|
||||||
|
|
|
||||||
|
|
@ -3872,6 +3872,8 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS
|
||||||
identifier == "gl_BackSecondaryColor" ||
|
identifier == "gl_BackSecondaryColor" ||
|
||||||
identifier == "gl_SecondaryColor" ||
|
identifier == "gl_SecondaryColor" ||
|
||||||
(identifier == "gl_Color" && language == EShLangFragment) ||
|
(identifier == "gl_Color" && language == EShLangFragment) ||
|
||||||
|
(identifier == "gl_FragStencilRefARB" && (nonEsRedecls && version >= 140)
|
||||||
|
&& language == EShLangFragment) ||
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
identifier == "gl_SampleMask" ||
|
identifier == "gl_SampleMask" ||
|
||||||
identifier == "gl_Layer" ||
|
identifier == "gl_Layer" ||
|
||||||
|
|
@ -3954,6 +3956,12 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS
|
||||||
error(loc, "all redeclarations must use the same depth layout on", "redeclaration", symbol->getName().c_str());
|
error(loc, "all redeclarations must use the same depth layout on", "redeclaration", symbol->getName().c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (identifier == "gl_FragStencilRefARB") {
|
||||||
|
if (qualifier.hasLayout())
|
||||||
|
error(loc, "cannot apply layout qualifier to", "redeclaration", symbol->getName().c_str());
|
||||||
|
if (qualifier.storage != EvqVaryingOut)
|
||||||
|
error(loc, "cannot change output storage qualification of", "redeclaration", symbol->getName().c_str());
|
||||||
|
}
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
else if (identifier == "gl_SampleMask") {
|
else if (identifier == "gl_SampleMask") {
|
||||||
if (!publicType.layoutOverrideCoverage) {
|
if (!publicType.layoutOverrideCoverage) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue