From cf91b625428f3f2204c724ebc0def20690807846 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Mon, 15 Jan 2018 17:39:18 -0800 Subject: [PATCH] shaderc: Allow passing CS buffers into all shader stages in GLSL. --- scripts/bgfx.lua | 6 +++++- tools/shaderc/shaderc.cpp | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/scripts/bgfx.lua b/scripts/bgfx.lua index 4ad513291..e82e158ac 100644 --- a/scripts/bgfx.lua +++ b/scripts/bgfx.lua @@ -76,7 +76,6 @@ function bgfxProjectBase(_kind, _defines) includedirs { path.join(BGFX_DIR, "3rdparty"), - path.join(BGFX_DIR, "3rdparty/dxsdk/include"), path.join(BX_DIR, "include"), path.join(BIMG_DIR, "include"), } @@ -121,6 +120,11 @@ function bgfxProjectBase(_kind, _defines) "BGFX_CONFIG_DEBUG=1", } + configuration { "vs*", "not durango" } + includedirs { + path.join(BGFX_DIR, "3rdparty/dxsdk/include"), + } + configuration { "android*" } links { "EGL", diff --git a/tools/shaderc/shaderc.cpp b/tools/shaderc/shaderc.cpp index 177b1ef38..5f0c56dec 100644 --- a/tools/shaderc/shaderc.cpp +++ b/tools/shaderc/shaderc.cpp @@ -1792,6 +1792,11 @@ namespace bgfx { std::string code; + if (NULL != bx::strFind(preprocessor.m_preprocessed.c_str(), "layout(std430") ) + { + glsl = 430; + } + if (glsl < 400) { const bool usesTextureLod = false @@ -2004,6 +2009,15 @@ namespace bgfx else { bx::stringPrintf(code, "#version %d\n", glsl); + + bx::stringPrintf(code + , "#define texture2DLod textureLod\n" + "#define texture2DGrad textureGrad\n" + "#define texture2DProjLod textureProjLod\n" + "#define texture2DProjGrad textureProjGrad\n" + "#define textureCubeLod textureLod\n" + "#define textureCubeGrad textureGrad\n" + ); } code += preprocessor.m_preprocessed;