summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2019-04-21 12:37:22 +1000
committerStenzek <stenzek@gmail.com>2019-04-21 14:28:14 +1000
commit356ebdf5098a24a70c04392ef7bcad7b762affbe (patch)
tree07f16b5113c2a50e2fe8bdda1258426c6560b9ef /Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
parent6553cf8bb1b7424c76f1a4165502d7e4250ccaa9 (diff)
OGL: Set shared context state up to match main context
Has a better chance of avoiding recompiling if so.
Diffstat (limited to 'Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
index 8832c8e6f0..f3ed0424e7 100644
--- a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
+++ b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
@@ -852,6 +852,18 @@ bool SharedContextAsyncShaderCompiler::WorkerThreadInitWorkerThread(void* param)
return false;
s_is_shared_context = true;
+
+ // Make the state match the main context to have a better chance of avoiding recompiles.
+ if (!context->IsGLES())
+ glEnable(GL_PROGRAM_POINT_SIZE);
+ if (g_ActiveConfig.backend_info.bSupportsClipControl)
+ glClipControl(GL_LOWER_LEFT, GL_ZERO_TO_ONE);
+ if (g_ActiveConfig.backend_info.bSupportsDepthClamp)
+ {
+ glEnable(GL_CLIP_DISTANCE0);
+ glEnable(GL_CLIP_DISTANCE1);
+ glEnable(GL_DEPTH_CLAMP);
+ }
if (g_ActiveConfig.backend_info.bSupportsPrimitiveRestart)
GLUtil::EnablePrimitiveRestart(context);