Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Bakker <jeroen@blender.org>2022-01-19 12:28:19 +0300
committerJeroen Bakker <jeroen@blender.org>2022-01-19 12:28:19 +0300
commit71386c08f110d402a7b4f5fbd5a7629829d8364f (patch)
treec14ce043ed5df4ac74b0034ef9722991ac288688
parenteb63646605ddce336da7a8779ab86336133786b1 (diff)
Fix T95039,T94998: Shaders compilation errors on Mac.
Cause was incorrect logic when generating the resource layout. It the explicit_location_support setting was ignored and the binding were generated for image, uniform buffers and storage buffers.
-rw-r--r--source/blender/gpu/opengl/gl_shader.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/source/blender/gpu/opengl/gl_shader.cc b/source/blender/gpu/opengl/gl_shader.cc
index fe5ffe5a2ad..9af5aeb3582 100644
--- a/source/blender/gpu/opengl/gl_shader.cc
+++ b/source/blender/gpu/opengl/gl_shader.cc
@@ -285,8 +285,7 @@ static std::ostream &print_qualifier(std::ostream &os, const Qualifier &qualifie
static void print_resource(std::ostream &os, const ShaderCreateInfo::Resource &res)
{
- if (res.bind_type != ShaderCreateInfo::Resource::BindType::SAMPLER ||
- GLContext::explicit_location_support) {
+ if (GLContext::explicit_location_support) {
os << "layout(binding = " << res.slot;
if (res.bind_type == ShaderCreateInfo::Resource::BindType::IMAGE) {
os << ", " << res.image.format;
@@ -299,6 +298,9 @@ static void print_resource(std::ostream &os, const ShaderCreateInfo::Resource &r
}
os << ") ";
}
+ else if (res.bind_type == ShaderCreateInfo::Resource::BindType::UNIFORM_BUFFER) {
+ os << "layout(std140) ";
+ }
int64_t array_offset;
StringRef name_no_array;