Browse Source

Fix texel buffer detection in shaders.

Sasha Szpakowski 1 year ago
parent
commit
c91101d2e4
1 changed files with 2 additions and 2 deletions
  1. 2 2
      src/modules/graphics/Shader.cpp

+ 2 - 2
src/modules/graphics/Shader.cpp

@@ -1073,7 +1073,7 @@ bool Shader::validateInternal(StrongRef<ShaderStage> stages[], std::string &err,
 
 		const auto &sampler = type->getSampler();
 
-		if (type->isTexture() && type->getSampler().isCombined())
+		if (type->isTexture() && type->getSampler().isCombined() && !sampler.isBuffer())
 		{
 			u.baseType = UNIFORM_SAMPLER;
 			u.dataBaseType = getBaseType(sampler.getBasicType());
@@ -1122,7 +1122,7 @@ bool Shader::validateInternal(StrongRef<ShaderStage> stages[], std::string &err,
 
 			reflection.storageTextures[u.name] = u;
 		}
-		else if (type->getBasicType() == glslang::EbtSampler && type->getSampler().isBuffer())
+		else if (type->getBasicType() == glslang::EbtSampler && sampler.isBuffer())
 		{
 			u.baseType = UNIFORM_TEXELBUFFER;
 			u.dataBaseType = getBaseType(sampler.getBasicType());