summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
diff options
context:
space:
mode:
authordegasus <wickmarkus@web.de>2014-01-05 10:38:45 +0100
committerdegasus <wickmarkus@web.de>2014-01-05 10:38:45 +0100
commitc42f274e220e8987b996889a8e663bff302e7f8f (patch)
tree0781596a079f97a10e88812aea4a4111abb7f4cd /Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
parent4fff5ac90dc674f775dcf7d57b5b513f62f87fc5 (diff)
OpenGL: use shader 420pack if available to staticly bind ubo location
Bindung locations after compiling a shader stalls the driver. So if we manage not to bind anything after compilation, the lag would be reduced much.
Diffstat (limited to 'Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
index f4e7dcb6a7..e81c6d2d84 100644
--- a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
+++ b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
@@ -96,7 +96,7 @@ void SHADER::SetProgramVariables()
Bind();
// Bind UBO
- if (g_ActiveConfig.backend_info.bSupportsGLSLUBO)
+ if (g_ActiveConfig.backend_info.bSupportsGLSLUBO && !g_ActiveConfig.backend_info.bSupportShadingLanguage420pack)
{
GLint PSBlock_id = glGetUniformBlockIndex(glprogid, "PSBlock");
GLint VSBlock_id = glGetUniformBlockIndex(glprogid, "VSBlock");
@@ -135,7 +135,6 @@ void SHADER::SetProgramVariables()
}
}
-
// Bind Texture Sampler
for (int a = 0; a <= 9; ++a)
{
@@ -569,6 +568,7 @@ void ProgramShaderCache::CreateHeader ( void )
"%s\n"
"%s\n" // ubo
"%s\n" // early-z
+ "%s\n" // 420pack
// Precision defines for GLSLES3
"%s\n"
@@ -597,6 +597,7 @@ void ProgramShaderCache::CreateHeader ( void )
, v==GLSLES3 ? "#version 300 es" : v==GLSL_130 ? "#version 130" : v==GLSL_140 ? "#version 140" : "#version 150"
, g_ActiveConfig.backend_info.bSupportsGLSLUBO && v<GLSL_140 ? "#extension GL_ARB_uniform_buffer_object : enable" : ""
, g_ActiveConfig.backend_info.bSupportsEarlyZ ? "#extension GL_ARB_shader_image_load_store : enable" : ""
+ , g_ActiveConfig.backend_info.bSupportShadingLanguage420pack ? "#extension GL_ARB_shading_language_420pack : enable" : ""
, v==GLSLES3 ? "precision highp float;" : ""