From 40e7a86f5fa66489bbfe7e79c416c208b34ff7b7 Mon Sep 17 00:00:00 2001 From: Ben Doherty Date: Mon, 16 Nov 2020 14:37:55 -0800 Subject: [PATCH] Fix, matc crash when building mobile materials (#3296) --- libs/filamat/src/MaterialBuilder.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libs/filamat/src/MaterialBuilder.cpp b/libs/filamat/src/MaterialBuilder.cpp index 15cf3f466d..d7273e6f46 100644 --- a/libs/filamat/src/MaterialBuilder.cpp +++ b/libs/filamat/src/MaterialBuilder.cpp @@ -640,6 +640,7 @@ bool MaterialBuilder::generateShaders(const std::vector& variants, Chun const bool targetApiNeedsSpirv = (targetApi == TargetApi::VULKAN || targetApi == TargetApi::METAL); const bool targetApiNeedsMsl = targetApi == TargetApi::METAL; + const bool targetApiNeedsGlsl = targetApi == TargetApi::OPENGL; std::vector* pSpirv = targetApiNeedsSpirv ? &spirv : nullptr; std::string* pMsl = targetApiNeedsMsl ? &msl : nullptr; @@ -678,6 +679,11 @@ bool MaterialBuilder::generateShaders(const std::vector& variants, Chun #endif } + std::string* pGlsl = nullptr; + if (targetApiNeedsGlsl) { + pGlsl = &shader; + } + #ifndef FILAMAT_LITE GLSLPostProcessor::Config config{ @@ -690,7 +696,7 @@ bool MaterialBuilder::generateShaders(const std::vector& variants, Chun config.glsl.subpassInputToColorLocation.emplace_back(0, 0); } - bool ok = postProcessor.process(shader, config, &shader, pSpirv, pMsl); + bool ok = postProcessor.process(shader, config, pGlsl, pSpirv, pMsl); #else bool ok = true; #endif