Browse Source

vulkan: fix validation errors when a resource is declared in multiple stages.

Sasha Szpakowski 1 year ago
parent
commit
92a03719e2
1 changed files with 11 additions and 1 deletions
  1. 11 1
      src/modules/graphics/vulkan/Shader.cpp

+ 11 - 1
src/modules/graphics/vulkan/Shader.cpp

@@ -69,7 +69,17 @@ public:
 			}
 		}
 		else
-			return (uint32_t)it->second.getOffset();
+		{
+			auto binding = (uint32_t)it->second.getOffset();
+
+			uint32_t binaryBindingOffset;
+			if (!comp.get_binary_offset_for_decoration(id, spv::DecorationBinding, binaryBindingOffset))
+				throw love::Exception("could not get binary offset for uniform %s binding", name.c_str());
+
+			spirv[binaryBindingOffset] = binding;
+
+			return binding;
+		}
 	};