diff --git a/tools/shaderc/shaderc.cpp b/tools/shaderc/shaderc.cpp index e6f291011..057915209 100644 --- a/tools/shaderc/shaderc.cpp +++ b/tools/shaderc/shaderc.cpp @@ -1479,9 +1479,13 @@ namespace bgfx code += _comment; code += preprocessor.m_preprocessed; - if (0 != spirv || 0 != metal) + if (0 != metal) { - compiled = compileSPIRVShader(_options, metal ? BX_MAKEFOURCC('M', 'T', 'L', 0) : 0, code, _writer); + compiled = compileMetalShader(_options, BX_MAKEFOURCC('M', 'T', 'L', 0), code, _writer); + } + else if (0 != spirv) + { + compiled = compileSPIRVShader(_options, 0, code, _writer); } else if (0 != pssl) { diff --git a/tools/shaderc/shaderc.h b/tools/shaderc/shaderc.h index ada3dbe0b..92e3f7c01 100644 --- a/tools/shaderc/shaderc.h +++ b/tools/shaderc/shaderc.h @@ -167,6 +167,7 @@ namespace bgfx bool compileGLSLShader(const Options& _options, uint32_t _version, const std::string& _code, bx::WriterI* _writer); bool compileHLSLShader(const Options& _options, uint32_t _version, const std::string& _code, bx::WriterI* _writer); + bool compileMetalShader(const Options& _options, uint32_t _version, const std::string& _code, bx::WriterI* _writer); bool compilePSSLShader(const Options& _options, uint32_t _version, const std::string& _code, bx::WriterI* _writer); bool compileSPIRVShader(const Options& _options, uint32_t _version, const std::string& _code, bx::WriterI* _writer);