Modify atomic_uint binding check
Modify atomic_uint binding check. Currently, when not declared with offset, default atomic_unint won't check whether its binding is valid or not more than its limit value.
This commit is contained in:
parent
bd97b6f9f2
commit
891ec09c62
3 changed files with 15 additions and 9 deletions
|
|
@ -6380,13 +6380,15 @@ const TFunction* TParseContext::findFunctionExplicitTypes(const TSourceLoc& loc,
|
|||
void TParseContext::declareTypeDefaults(const TSourceLoc& loc, const TPublicType& publicType)
|
||||
{
|
||||
#ifndef GLSLANG_WEB
|
||||
if (publicType.basicType == EbtAtomicUint && publicType.qualifier.hasBinding() &&
|
||||
publicType.qualifier.hasOffset()) {
|
||||
if (publicType.basicType == EbtAtomicUint && publicType.qualifier.hasBinding()) {
|
||||
if (publicType.qualifier.layoutBinding >= (unsigned int)resources.maxAtomicCounterBindings) {
|
||||
error(loc, "atomic_uint binding is too large", "binding", "");
|
||||
return;
|
||||
}
|
||||
atomicUintOffsets[publicType.qualifier.layoutBinding] = publicType.qualifier.layoutOffset;
|
||||
|
||||
if(publicType.qualifier.hasOffset()) {
|
||||
atomicUintOffsets[publicType.qualifier.layoutBinding] = publicType.qualifier.layoutOffset;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue