Browse Source

Error if image load/store is used since it's not supported yet.

Alex Szpakowski 4 years ago
parent
commit
00494ec3b5
1 changed files with 16 additions and 0 deletions
  1. 16 0
      src/modules/graphics/Shader.cpp

+ 16 - 0
src/modules/graphics/Shader.cpp

@@ -734,6 +734,22 @@ bool Shader::validateInternal(StrongRef<ShaderStage> stages[], std::string &err,
 		}
 	}
 
+	for (int i = 0; i < program.getNumUniformVariables(); i++)
+	{
+		const glslang::TObjectReflection &info = program.getUniform(i);
+		const glslang::TType *type = info.getType();
+		if (type == nullptr)
+			continue;
+
+		if (type->isImage())
+		{
+			// TODO: Change this check to only error if a writable image is
+			// declared in non-compute, once support is added for them.
+			err = "Shader validation error:\nImage load/store (image2D uniforms, etc.) is not supported yet.";
+			return false;
+		}
+	}
+
 	for (int i = 0; i < program.getNumBufferBlocks(); i++)
 	{
 		const glslang::TObjectReflection &info = program.getBufferBlock(i);