From 0d84c5a0b69a42bbfc76fa5835edeff33820fdf6 Mon Sep 17 00:00:00 2001
From: wwylele <wwylele@gmail.com>
Date: Wed, 4 Apr 2018 17:23:55 +0300
Subject: [PATCH] gl_rasterizer: move state syncing from ctor to its own
 function

---
 src/video_core/renderer_opengl/gl_rasterizer.cpp | 8 ++++++--
 src/video_core/renderer_opengl/gl_rasterizer.h   | 3 +++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index ecae102d2..898e32bc0 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -174,6 +174,12 @@ RasterizerOpenGL::RasterizerOpenGL() : shader_dirty(true) {
 
     glEnable(GL_BLEND);
 
+    SyncEntireState();
+}
+
+RasterizerOpenGL::~RasterizerOpenGL() {}
+
+void RasterizerOpenGL::SyncEntireState() {
     // Sync fixed function OpenGL state
     SyncClipEnabled();
     SyncCullMode();
@@ -212,8 +218,6 @@ RasterizerOpenGL::RasterizerOpenGL() : shader_dirty(true) {
     SyncProcTexNoise();
 }
 
-RasterizerOpenGL::~RasterizerOpenGL() {}
-
 /**
  * This is a helper function to resolve an issue when interpolating opposite quaternions. See below
  * for a detailed description of this issue (yuriks):
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.h b/src/video_core/renderer_opengl/gl_rasterizer.h
index 5db9b6b7a..b347c90b8 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.h
+++ b/src/video_core/renderer_opengl/gl_rasterizer.h
@@ -162,6 +162,9 @@ private:
     static_assert(sizeof(UniformData) < 16384,
                   "UniformData structure must be less than 16kb as per the OpenGL spec");
 
+    /// Syncs entire status to match PICA registers
+    void SyncEntireState();
+
     /// Syncs the clip enabled status to match the PICA register
     void SyncClipEnabled();