From 6224daf90779d19941b5c8d59d69150d9bcb17ba Mon Sep 17 00:00:00 2001 From: Christophe Dehais Date: Fri, 19 Nov 2021 16:27:13 +0100 Subject: [PATCH] Set BGFX_SHADER_LANGUAGE_GLSL to actual profile more consistently (#2664) --- tools/shaderc/shaderc.cpp | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/tools/shaderc/shaderc.cpp b/tools/shaderc/shaderc.cpp index 8cdc23266..6bc34ee82 100644 --- a/tools/shaderc/shaderc.cpp +++ b/tools/shaderc/shaderc.cpp @@ -1128,7 +1128,6 @@ namespace bgfx preprocessor.setDefaultDefine("BX_PLATFORM_WINDOWS"); preprocessor.setDefaultDefine("BX_PLATFORM_XBOXONE"); -// preprocessor.setDefaultDefine("BGFX_SHADER_LANGUAGE_ESSL"); preprocessor.setDefaultDefine("BGFX_SHADER_LANGUAGE_GLSL"); preprocessor.setDefaultDefine("BGFX_SHADER_LANGUAGE_HLSL"); preprocessor.setDefaultDefine("BGFX_SHADER_LANGUAGE_METAL"); @@ -1140,10 +1139,14 @@ namespace bgfx preprocessor.setDefaultDefine("BGFX_SHADER_TYPE_VERTEX"); char glslDefine[128]; - bx::snprintf(glslDefine, BX_COUNTOF(glslDefine) - , "BGFX_SHADER_LANGUAGE_GLSL=%d" - , (profile->lang == ShadingLang::ESSL) ? 1 : profile->id - ); + if (profile->lang == ShadingLang::GLSL + || profile->lang == ShadingLang::ESSL) + { + bx::snprintf(glslDefine, BX_COUNTOF(glslDefine) + , "BGFX_SHADER_LANGUAGE_GLSL=%d" + , profile->id + ); + } char hlslDefine[128]; if (profile->lang == ShadingLang::HLSL) @@ -1158,12 +1161,19 @@ namespace bgfx if (0 == bx::strCmpI(platform, "android") ) { preprocessor.setDefine("BX_PLATFORM_ANDROID=1"); - preprocessor.setDefine("BGFX_SHADER_LANGUAGE_GLSL=1"); + if (profile->lang == ShadingLang::SpirV) + { + preprocessor.setDefine("BGFX_SHADER_LANGUAGE_SPIRV=1"); + } + else + { + preprocessor.setDefine(glslDefine); + } } else if (0 == bx::strCmpI(platform, "asm.js") ) { preprocessor.setDefine("BX_PLATFORM_EMSCRIPTEN=1"); - preprocessor.setDefine("BGFX_SHADER_LANGUAGE_GLSL=1"); + preprocessor.setDefine(glslDefine); } else if (0 == bx::strCmpI(platform, "ios") ) { @@ -1174,7 +1184,7 @@ namespace bgfx } else { - preprocessor.setDefine("BGFX_SHADER_LANGUAGE_GLSL=1"); + preprocessor.setDefine(glslDefine); } } else if (0 == bx::strCmpI(platform, "linux") )