Although OpenGL allows them in uniform blocks, SPIR-V says they can't be
used with externally visible storage classes.
}
else if(kind==BasicTypeDeclaration::VOID)
error(var, "Type 'void' not allowed on variable");
- else if(kind==BasicTypeDeclaration::BOOL && !var.interface.empty() && var.source!=BUILTIN_SOURCE)
- error(var, "Type 'bool' not allowed on interface variable");
+ else if(kind==BasicTypeDeclaration::BOOL && var.source!=BUILTIN_SOURCE)
+ {
+ if(scope==INTERFACE_BLOCK)
+ error(var, "Type 'bool' not allowed in an interface block");
+ else if(!var.interface.empty())
+ error(var, "Type 'bool' not allowed on interface variable");
+ }
if(var.init_expression)
{