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.
This commit is contained in:
2022-01-19 10:28:19 +01:00
parent eb63646605
commit 71386c08f1

View File

@@ -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;