From 07d3ccd75df581c834c645c50965bb12616180dd Mon Sep 17 00:00:00 2001 From: SirLynix Date: Wed, 6 Sep 2023 13:23:49 +0200 Subject: [PATCH] Graphics/UberShader: Log uber-shader compilation errors --- src/Nazara/Graphics/UberShader.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/Nazara/Graphics/UberShader.cpp b/src/Nazara/Graphics/UberShader.cpp index cf1c3aae7..afc0af085 100644 --- a/src/Nazara/Graphics/UberShader.cpp +++ b/src/Nazara/Graphics/UberShader.cpp @@ -25,7 +25,15 @@ namespace Nz m_shaderModule = moduleResolver.Resolve(moduleName); NazaraAssert(m_shaderModule, "invalid shader module"); - m_shaderModule = Validate(*m_shaderModule, &m_optionIndexByName); + try + { + m_shaderModule = Validate(*m_shaderModule, &m_optionIndexByName); + } + catch (const std::exception& e) + { + NazaraError("failed to compile ubershader {0}: {1}", moduleName, e.what()); + throw; + } m_onShaderModuleUpdated.Connect(moduleResolver.OnModuleUpdated, [this, name = std::move(moduleName)](nzsl::ModuleResolver* resolver, const std::string& updatedModuleName) { @@ -62,7 +70,15 @@ namespace Nz { NazaraAssert(m_shaderModule, "invalid shader module"); - Validate(*m_shaderModule, &m_optionIndexByName); + try + { + m_shaderModule = Validate(*m_shaderModule, &m_optionIndexByName); + } + catch (const std::exception& e) + { + NazaraError("failed to compile ubershader: {0}", e.what()); + throw; + } } const std::shared_ptr& UberShader::Get(const Config& config)