Browse Source

Fixes for shader texture array in GLES3 (#2750)

* opengl: use texture for texture2DArray

* shaderc: Add default precision for sampler2DArray on GLES3
Sandy 3 years ago
parent
commit
251e35ae09
2 changed files with 9 additions and 3 deletions
  1. 4 3
      src/renderer_gl.cpp
  2. 5 0
      tools/shaderc/shaderc.cpp

+ 4 - 3
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
 							);
 

+ 5 - 0
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)