From 564f484ab7b61ddbca4153af72efe95f6fb83451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=80=D0=B0=D0=BD=D0=B8=D0=BC=D0=B8=D1=80=20=D0=9A?= =?UTF-8?q?=D0=B0=D1=80=D0=B0=D1=9F=D0=B8=D1=9B?= Date: Sat, 3 Aug 2019 08:52:14 -0700 Subject: [PATCH] shaderc: Split Metal and SPIRV compilers. --- tools/shaderc/shaderc.cpp | 8 ++++++-- tools/shaderc/shaderc.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) 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);