From 251e35ae09a78a80d35bb386dc8d6f5889d79ede Mon Sep 17 00:00:00 2001 From: Sandy Date: Tue, 29 Mar 2022 16:14:21 -0400 Subject: [PATCH] Fixes for shader texture array in GLES3 (#2750) * opengl: use texture for texture2DArray * shaderc: Add default precision for sampler2DArray on GLES3 --- src/renderer_gl.cpp | 7 ++++--- tools/shaderc/shaderc.cpp | 5 +++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/renderer_gl.cpp b/src/renderer_gl.cpp index a1657f923..d99adb053 100644 --- a/src/renderer_gl.cpp +++ b/src/renderer_gl.cpp @@ -6476,9 +6476,10 @@ namespace bgfx { namespace gl if (m_type == GL_FRAGMENT_SHADER) { bx::write(&writer - , "#define varying in\n" - "#define texture2D texture\n" - "#define texture2DProj textureProj\n" + , "#define varying in\n" + "#define texture2D texture\n" + "#define texture2DArray texture\n" + "#define texture2DProj textureProj\n" , &err ); diff --git a/tools/shaderc/shaderc.cpp b/tools/shaderc/shaderc.cpp index 02b5ec6ba..5d92a8f06 100644 --- a/tools/shaderc/shaderc.cpp +++ b/tools/shaderc/shaderc.cpp @@ -2372,6 +2372,11 @@ namespace bgfx bx::stringPrintf(code, "precision highp int;\n"); } + if (glsl_profile >= 300) + { + bx::stringPrintf(code, "precision highp sampler2DArray;\n"); + } + // Pretend that all extensions are available. // This will be stripped later. if (usesTextureLod)