From ac51602455443acafdf79ae92711a7eefb21f21c Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Wed, 1 Nov 2017 22:33:45 -0600 Subject: [PATCH] Fix #1065: don't validate Vulkan binding numbers. To handle sparse assignments, don't check maxCombinedTextureImageUnits. --- Test/vulkan.vert | 3 +++ glslang/MachineIndependent/ParseHelper.cpp | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Test/vulkan.vert b/Test/vulkan.vert index a6dc8ad0..e670e958 100644 --- a/Test/vulkan.vert +++ b/Test/vulkan.vert @@ -58,3 +58,6 @@ out ban1 { // ERROR, only outer dimension out ban2 { float f; } bai2[arraySize][2]; + +layout(binding = 3000) uniform sampler2D s3000; +layout(binding = 3001) uniform b3001 { int a; }; diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index a648b9bb..bc1fa025 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -4614,7 +4614,7 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) } else lastBinding += type.getCumulativeArraySize(); } - if (lastBinding >= resources.maxCombinedTextureImageUnits) + if (spvVersion.vulkan == 0 && lastBinding >= resources.maxCombinedTextureImageUnits) error(loc, "sampler binding not less than gl_MaxCombinedTextureImageUnits", "binding", type.isArray() ? "(using array)" : ""); } if (type.getBasicType() == EbtAtomicUint) {