summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/Render.cpp
diff options
context:
space:
mode:
authorMatthew Parlane <parlane@gmail.com>2014-04-04 08:43:20 +1300
committerMatthew Parlane <parlane@gmail.com>2014-04-04 08:43:20 +1300
commit13119e67556bdd951a26eb31730b1219c9d68680 (patch)
treea379e8130aa3b74c477006b185c7c6cd96c1ff28 /Source/Core/VideoBackends/OGL/Render.cpp
parentc68be42c556e34b6221c079c95d9c639dbbeb989 (diff)
parent3251d78f8934b500b4cbdf06f3fd62038cb2047d (diff)
Merge pull request #240 from Sonicadvance1/GLSLES310_binding
Add initial support for GLSL ES 3.10.
Diffstat (limited to 'Source/Core/VideoBackends/OGL/Render.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/Render.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp
index cfc48f980a..4ad70be08a 100644
--- a/Source/Core/VideoBackends/OGL/Render.cpp
+++ b/Source/Core/VideoBackends/OGL/Render.cpp
@@ -459,7 +459,10 @@ Renderer::Renderer()
g_Config.backend_info.bSupportsPrimitiveRestart = !DriverDetails::HasBug(DriverDetails::BUG_PRIMITIVERESTART) &&
((GLExtensions::Version() >= 310) || GLExtensions::Supports("GL_NV_primitive_restart"));
g_Config.backend_info.bSupportsEarlyZ = GLExtensions::Supports("GL_ARB_shader_image_load_store");
- g_Config.backend_info.bSupportShadingLanguage420pack = GLExtensions::Supports("GL_ARB_shading_language_420pack");
+
+ // Desktop OpenGL supports the binding layout if it supports 420pack
+ // OpenGL ES 3.1 supports it implicitly without an extension
+ g_Config.backend_info.bSupportsBindingLayout = GLExtensions::Supports("GL_ARB_shading_language_420pack");
g_ogl_config.bSupportsGLSLCache = GLExtensions::Supports("GL_ARB_get_program_binary");
g_ogl_config.bSupportsGLPinnedMemory = GLExtensions::Supports("GL_AMD_pinned_memory");
@@ -472,7 +475,17 @@ Renderer::Renderer()
g_ogl_config.bSupportViewportFloat = GLExtensions::Supports("GL_ARB_viewport_array");
if (GLInterface->GetMode() == GLInterfaceMode::MODE_OPENGLES3)
- g_ogl_config.eSupportedGLSLVersion = GLSLES3;
+ {
+ if (strstr(g_ogl_config.glsl_version, "3.00"))
+ {
+ g_ogl_config.eSupportedGLSLVersion = GLSLES_300;
+ }
+ else
+ {
+ g_ogl_config.eSupportedGLSLVersion = GLSLES_310;
+ g_Config.backend_info.bSupportsBindingLayout = true;
+ }
+ }
else
{
if (strstr(g_ogl_config.glsl_version, "1.00") || strstr(g_ogl_config.glsl_version, "1.10") || strstr(g_ogl_config.glsl_version, "1.20"))