diff options
| author | 2019-12-26 16:15:24 -0300 | |
|---|---|---|
| committer | 2020-02-28 17:56:35 -0300 | |
| commit | b92dfcd7f2a03b04a1d6090d7dd2684986f7adee (patch) | |
| tree | d6c0be18f991e4a36c9e8018cba19137cb943459 /src | |
| parent | gl_state: Remove program tracking (diff) | |
| download | yuzu-b92dfcd7f2a03b04a1d6090d7dd2684986f7adee.tar.gz yuzu-b92dfcd7f2a03b04a1d6090d7dd2684986f7adee.tar.xz yuzu-b92dfcd7f2a03b04a1d6090d7dd2684986f7adee.zip | |
gl_state: Remove completely
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_framebuffer_cache.cpp | 1 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_framebuffer_cache.h | 2 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 13 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.h | 5 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_resource_manager.cpp | 1 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_manager.h | 1 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_state.cpp | 90 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_state.h | 31 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_stream_buffer.cpp | 1 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_texture_cache.cpp | 1 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/renderer_opengl.cpp | 5 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/renderer_opengl.h | 3 |
13 files changed, 4 insertions, 152 deletions
diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt index db65e7bf3..b89752882 100644 --- a/src/video_core/CMakeLists.txt +++ b/src/video_core/CMakeLists.txt | |||
| @@ -71,8 +71,6 @@ add_library(video_core STATIC | |||
| 71 | renderer_opengl/gl_shader_util.h | 71 | renderer_opengl/gl_shader_util.h |
| 72 | renderer_opengl/gl_state_tracker.cpp | 72 | renderer_opengl/gl_state_tracker.cpp |
| 73 | renderer_opengl/gl_state_tracker.h | 73 | renderer_opengl/gl_state_tracker.h |
| 74 | renderer_opengl/gl_state.cpp | ||
| 75 | renderer_opengl/gl_state.h | ||
| 76 | renderer_opengl/gl_stream_buffer.cpp | 74 | renderer_opengl/gl_stream_buffer.cpp |
| 77 | renderer_opengl/gl_stream_buffer.h | 75 | renderer_opengl/gl_stream_buffer.h |
| 78 | renderer_opengl/gl_texture_cache.cpp | 76 | renderer_opengl/gl_texture_cache.cpp |
diff --git a/src/video_core/renderer_opengl/gl_framebuffer_cache.cpp b/src/video_core/renderer_opengl/gl_framebuffer_cache.cpp index d624a6272..b8a512cb6 100644 --- a/src/video_core/renderer_opengl/gl_framebuffer_cache.cpp +++ b/src/video_core/renderer_opengl/gl_framebuffer_cache.cpp | |||
| @@ -11,7 +11,6 @@ | |||
| 11 | #include "common/common_types.h" | 11 | #include "common/common_types.h" |
| 12 | #include "video_core/engines/maxwell_3d.h" | 12 | #include "video_core/engines/maxwell_3d.h" |
| 13 | #include "video_core/renderer_opengl/gl_framebuffer_cache.h" | 13 | #include "video_core/renderer_opengl/gl_framebuffer_cache.h" |
| 14 | #include "video_core/renderer_opengl/gl_state.h" | ||
| 15 | 14 | ||
| 16 | namespace OpenGL { | 15 | namespace OpenGL { |
| 17 | 16 | ||
diff --git a/src/video_core/renderer_opengl/gl_framebuffer_cache.h b/src/video_core/renderer_opengl/gl_framebuffer_cache.h index 02ec80ae9..8f698fee0 100644 --- a/src/video_core/renderer_opengl/gl_framebuffer_cache.h +++ b/src/video_core/renderer_opengl/gl_framebuffer_cache.h | |||
| @@ -13,7 +13,6 @@ | |||
| 13 | #include "common/common_types.h" | 13 | #include "common/common_types.h" |
| 14 | #include "video_core/engines/maxwell_3d.h" | 14 | #include "video_core/engines/maxwell_3d.h" |
| 15 | #include "video_core/renderer_opengl/gl_resource_manager.h" | 15 | #include "video_core/renderer_opengl/gl_resource_manager.h" |
| 16 | #include "video_core/renderer_opengl/gl_state.h" | ||
| 17 | #include "video_core/renderer_opengl/gl_texture_cache.h" | 16 | #include "video_core/renderer_opengl/gl_texture_cache.h" |
| 18 | 17 | ||
| 19 | namespace OpenGL { | 18 | namespace OpenGL { |
| @@ -63,7 +62,6 @@ public: | |||
| 63 | private: | 62 | private: |
| 64 | OGLFramebuffer CreateFramebuffer(const FramebufferCacheKey& key); | 63 | OGLFramebuffer CreateFramebuffer(const FramebufferCacheKey& key); |
| 65 | 64 | ||
| 66 | OpenGLState local_state; | ||
| 67 | std::unordered_map<FramebufferCacheKey, OGLFramebuffer> cache; | 65 | std::unordered_map<FramebufferCacheKey, OGLFramebuffer> cache; |
| 68 | }; | 66 | }; |
| 69 | 67 | ||
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 84c4d110c..3ce2a7124 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -359,8 +359,8 @@ void RasterizerOpenGL::ConfigureFramebuffers() { | |||
| 359 | glBindFramebuffer(GL_DRAW_FRAMEBUFFER, framebuffer_cache.GetFramebuffer(key)); | 359 | glBindFramebuffer(GL_DRAW_FRAMEBUFFER, framebuffer_cache.GetFramebuffer(key)); |
| 360 | } | 360 | } |
| 361 | 361 | ||
| 362 | void RasterizerOpenGL::ConfigureClearFramebuffer(OpenGLState& current_state, bool using_color_fb, | 362 | void RasterizerOpenGL::ConfigureClearFramebuffer(bool using_color_fb, bool using_depth_fb, |
| 363 | bool using_depth_fb, bool using_stencil_fb) { | 363 | bool using_stencil_fb) { |
| 364 | using VideoCore::Surface::SurfaceType; | 364 | using VideoCore::Surface::SurfaceType; |
| 365 | 365 | ||
| 366 | auto& gpu = system.GPU().Maxwell3D(); | 366 | auto& gpu = system.GPU().Maxwell3D(); |
| @@ -396,10 +396,6 @@ void RasterizerOpenGL::Clear() { | |||
| 396 | bool use_depth{}; | 396 | bool use_depth{}; |
| 397 | bool use_stencil{}; | 397 | bool use_stencil{}; |
| 398 | 398 | ||
| 399 | OpenGLState prev_state{OpenGLState::GetCurState()}; | ||
| 400 | SCOPE_EXIT({ prev_state.Apply(); }); | ||
| 401 | |||
| 402 | OpenGLState clear_state{OpenGLState::GetCurState()}; | ||
| 403 | if (regs.clear_buffers.R || regs.clear_buffers.G || regs.clear_buffers.B || | 399 | if (regs.clear_buffers.R || regs.clear_buffers.G || regs.clear_buffers.B || |
| 404 | regs.clear_buffers.A) { | 400 | regs.clear_buffers.A) { |
| 405 | use_color = true; | 401 | use_color = true; |
| @@ -430,7 +426,7 @@ void RasterizerOpenGL::Clear() { | |||
| 430 | return; | 426 | return; |
| 431 | } | 427 | } |
| 432 | 428 | ||
| 433 | ConfigureClearFramebuffer(clear_state, use_color, use_depth, use_stencil); | 429 | ConfigureClearFramebuffer(use_color, use_depth, use_stencil); |
| 434 | 430 | ||
| 435 | SyncRasterizeEnable(); | 431 | SyncRasterizeEnable(); |
| 436 | if (regs.clear_flags.scissor) { | 432 | if (regs.clear_flags.scissor) { |
| @@ -444,8 +440,6 @@ void RasterizerOpenGL::Clear() { | |||
| 444 | 440 | ||
| 445 | UNIMPLEMENTED_IF(regs.clear_flags.viewport); | 441 | UNIMPLEMENTED_IF(regs.clear_flags.viewport); |
| 446 | 442 | ||
| 447 | clear_state.Apply(); | ||
| 448 | |||
| 449 | if (use_color) { | 443 | if (use_color) { |
| 450 | glClearBufferfv(GL_COLOR, 0, regs.clear_color); | 444 | glClearBufferfv(GL_COLOR, 0, regs.clear_color); |
| 451 | } | 445 | } |
| @@ -548,7 +542,6 @@ void RasterizerOpenGL::Draw(bool is_indexed, bool is_instanced) { | |||
| 548 | bind_ssbo_pushbuffer.Bind(); | 542 | bind_ssbo_pushbuffer.Bind(); |
| 549 | 543 | ||
| 550 | program_manager.Update(); | 544 | program_manager.Update(); |
| 551 | state.Apply(); | ||
| 552 | 545 | ||
| 553 | if (texture_cache.TextureBarrier()) { | 546 | if (texture_cache.TextureBarrier()) { |
| 554 | glTextureBarrier(); | 547 | glTextureBarrier(); |
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.h b/src/video_core/renderer_opengl/gl_rasterizer.h index b8158c152..48443bdff 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.h +++ b/src/video_core/renderer_opengl/gl_rasterizer.h | |||
| @@ -30,7 +30,6 @@ | |||
| 30 | #include "video_core/renderer_opengl/gl_shader_cache.h" | 30 | #include "video_core/renderer_opengl/gl_shader_cache.h" |
| 31 | #include "video_core/renderer_opengl/gl_shader_decompiler.h" | 31 | #include "video_core/renderer_opengl/gl_shader_decompiler.h" |
| 32 | #include "video_core/renderer_opengl/gl_shader_manager.h" | 32 | #include "video_core/renderer_opengl/gl_shader_manager.h" |
| 33 | #include "video_core/renderer_opengl/gl_state.h" | ||
| 34 | #include "video_core/renderer_opengl/gl_texture_cache.h" | 33 | #include "video_core/renderer_opengl/gl_texture_cache.h" |
| 35 | #include "video_core/renderer_opengl/utils.h" | 34 | #include "video_core/renderer_opengl/utils.h" |
| 36 | #include "video_core/textures/texture.h" | 35 | #include "video_core/textures/texture.h" |
| @@ -86,8 +85,7 @@ private: | |||
| 86 | /// Configures the color and depth framebuffer states. | 85 | /// Configures the color and depth framebuffer states. |
| 87 | void ConfigureFramebuffers(); | 86 | void ConfigureFramebuffers(); |
| 88 | 87 | ||
| 89 | void ConfigureClearFramebuffer(OpenGLState& current_state, bool using_color_fb, | 88 | void ConfigureClearFramebuffer(bool using_color_fb, bool using_depth_fb, bool using_stencil_fb); |
| 90 | bool using_depth_fb, bool using_stencil_fb); | ||
| 91 | 89 | ||
| 92 | /// Configures the current constbuffers to use for the draw command. | 90 | /// Configures the current constbuffers to use for the draw command. |
| 93 | void SetupDrawConstBuffers(std::size_t stage_index, const Shader& shader); | 91 | void SetupDrawConstBuffers(std::size_t stage_index, const Shader& shader); |
| @@ -208,7 +206,6 @@ private: | |||
| 208 | void SetupShaders(GLenum primitive_mode); | 206 | void SetupShaders(GLenum primitive_mode); |
| 209 | 207 | ||
| 210 | const Device device; | 208 | const Device device; |
| 211 | OpenGLState state; | ||
| 212 | 209 | ||
| 213 | TextureCacheOpenGL texture_cache; | 210 | TextureCacheOpenGL texture_cache; |
| 214 | ShaderCacheOpenGL shader_cache; | 211 | ShaderCacheOpenGL shader_cache; |
diff --git a/src/video_core/renderer_opengl/gl_resource_manager.cpp b/src/video_core/renderer_opengl/gl_resource_manager.cpp index 404fd6556..97803d480 100644 --- a/src/video_core/renderer_opengl/gl_resource_manager.cpp +++ b/src/video_core/renderer_opengl/gl_resource_manager.cpp | |||
| @@ -8,7 +8,6 @@ | |||
| 8 | #include "common/microprofile.h" | 8 | #include "common/microprofile.h" |
| 9 | #include "video_core/renderer_opengl/gl_resource_manager.h" | 9 | #include "video_core/renderer_opengl/gl_resource_manager.h" |
| 10 | #include "video_core/renderer_opengl/gl_shader_util.h" | 10 | #include "video_core/renderer_opengl/gl_shader_util.h" |
| 11 | #include "video_core/renderer_opengl/gl_state.h" | ||
| 12 | 11 | ||
| 13 | MICROPROFILE_DEFINE(OpenGL_ResourceCreation, "OpenGL", "Resource Creation", MP_RGB(128, 128, 192)); | 12 | MICROPROFILE_DEFINE(OpenGL_ResourceCreation, "OpenGL", "Resource Creation", MP_RGB(128, 128, 192)); |
| 14 | MICROPROFILE_DEFINE(OpenGL_ResourceDeletion, "OpenGL", "Resource Deletion", MP_RGB(128, 128, 192)); | 13 | MICROPROFILE_DEFINE(OpenGL_ResourceDeletion, "OpenGL", "Resource Deletion", MP_RGB(128, 128, 192)); |
diff --git a/src/video_core/renderer_opengl/gl_shader_manager.h b/src/video_core/renderer_opengl/gl_shader_manager.h index db23a27e8..e94cd75aa 100644 --- a/src/video_core/renderer_opengl/gl_shader_manager.h +++ b/src/video_core/renderer_opengl/gl_shader_manager.h | |||
| @@ -9,7 +9,6 @@ | |||
| 9 | #include <glad/glad.h> | 9 | #include <glad/glad.h> |
| 10 | 10 | ||
| 11 | #include "video_core/renderer_opengl/gl_resource_manager.h" | 11 | #include "video_core/renderer_opengl/gl_resource_manager.h" |
| 12 | #include "video_core/renderer_opengl/gl_state.h" | ||
| 13 | #include "video_core/renderer_opengl/maxwell_to_gl.h" | 12 | #include "video_core/renderer_opengl/maxwell_to_gl.h" |
| 14 | 13 | ||
| 15 | namespace OpenGL::GLShader { | 14 | namespace OpenGL::GLShader { |
diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp deleted file mode 100644 index e8a23d41d..000000000 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ /dev/null | |||
| @@ -1,90 +0,0 @@ | |||
| 1 | // Copyright 2015 Citra Emulator Project | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include <algorithm> | ||
| 6 | #include <iterator> | ||
| 7 | #include <glad/glad.h> | ||
| 8 | #include "common/assert.h" | ||
| 9 | #include "common/logging/log.h" | ||
| 10 | #include "common/microprofile.h" | ||
| 11 | #include "video_core/renderer_opengl/gl_state.h" | ||
| 12 | |||
| 13 | MICROPROFILE_DEFINE(OpenGL_State, "OpenGL", "State Change", MP_RGB(192, 128, 128)); | ||
| 14 | |||
| 15 | namespace OpenGL { | ||
| 16 | |||
| 17 | using Maxwell = Tegra::Engines::Maxwell3D::Regs; | ||
| 18 | |||
| 19 | OpenGLState OpenGLState::cur_state; | ||
| 20 | |||
| 21 | namespace { | ||
| 22 | |||
| 23 | template <typename T> | ||
| 24 | bool UpdateValue(T& current_value, const T new_value) { | ||
| 25 | const bool changed = current_value != new_value; | ||
| 26 | current_value = new_value; | ||
| 27 | return changed; | ||
| 28 | } | ||
| 29 | |||
| 30 | template <typename T1, typename T2> | ||
| 31 | bool UpdateTie(T1 current_value, const T2 new_value) { | ||
| 32 | const bool changed = current_value != new_value; | ||
| 33 | current_value = new_value; | ||
| 34 | return changed; | ||
| 35 | } | ||
| 36 | |||
| 37 | template <typename T> | ||
| 38 | std::optional<std::pair<GLuint, GLsizei>> UpdateArray(T& current_values, const T& new_values) { | ||
| 39 | std::optional<std::size_t> first; | ||
| 40 | std::size_t last; | ||
| 41 | for (std::size_t i = 0; i < std::size(current_values); ++i) { | ||
| 42 | if (!UpdateValue(current_values[i], new_values[i])) { | ||
| 43 | continue; | ||
| 44 | } | ||
| 45 | if (!first) { | ||
| 46 | first = i; | ||
| 47 | } | ||
| 48 | last = i; | ||
| 49 | } | ||
| 50 | if (!first) { | ||
| 51 | return std::nullopt; | ||
| 52 | } | ||
| 53 | return std::make_pair(static_cast<GLuint>(*first), static_cast<GLsizei>(last - *first + 1)); | ||
| 54 | } | ||
| 55 | |||
| 56 | void Enable(GLenum cap, bool enable) { | ||
| 57 | if (enable) { | ||
| 58 | glEnable(cap); | ||
| 59 | } else { | ||
| 60 | glDisable(cap); | ||
| 61 | } | ||
| 62 | } | ||
| 63 | |||
| 64 | void Enable(GLenum cap, GLuint index, bool enable) { | ||
| 65 | if (enable) { | ||
| 66 | glEnablei(cap, index); | ||
| 67 | } else { | ||
| 68 | glDisablei(cap, index); | ||
| 69 | } | ||
| 70 | } | ||
| 71 | |||
| 72 | void Enable(GLenum cap, bool& current_value, bool new_value) { | ||
| 73 | if (UpdateValue(current_value, new_value)) { | ||
| 74 | Enable(cap, new_value); | ||
| 75 | } | ||
| 76 | } | ||
| 77 | |||
| 78 | void Enable(GLenum cap, GLuint index, bool& current_value, bool new_value) { | ||
| 79 | if (UpdateValue(current_value, new_value)) { | ||
| 80 | Enable(cap, index, new_value); | ||
| 81 | } | ||
| 82 | } | ||
| 83 | |||
| 84 | } // Anonymous namespace | ||
| 85 | |||
| 86 | OpenGLState::OpenGLState() = default; | ||
| 87 | |||
| 88 | void OpenGLState::Apply() {} | ||
| 89 | |||
| 90 | } // namespace OpenGL | ||
diff --git a/src/video_core/renderer_opengl/gl_state.h b/src/video_core/renderer_opengl/gl_state.h deleted file mode 100644 index f62e2e2e1..000000000 --- a/src/video_core/renderer_opengl/gl_state.h +++ /dev/null | |||
| @@ -1,31 +0,0 @@ | |||
| 1 | // Copyright 2015 Citra Emulator Project | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include <array> | ||
| 8 | #include <type_traits> | ||
| 9 | #include <glad/glad.h> | ||
| 10 | #include "video_core/engines/maxwell_3d.h" | ||
| 11 | |||
| 12 | namespace OpenGL { | ||
| 13 | |||
| 14 | class OpenGLState { | ||
| 15 | public: | ||
| 16 | OpenGLState(); | ||
| 17 | |||
| 18 | /// Get the currently active OpenGL state | ||
| 19 | static OpenGLState GetCurState() { | ||
| 20 | return cur_state; | ||
| 21 | } | ||
| 22 | |||
| 23 | /// Apply this state as the current OpenGL state | ||
| 24 | void Apply(); | ||
| 25 | |||
| 26 | private: | ||
| 27 | static OpenGLState cur_state; | ||
| 28 | }; | ||
| 29 | static_assert(std::is_trivially_copyable_v<OpenGLState>); | ||
| 30 | |||
| 31 | } // namespace OpenGL | ||
diff --git a/src/video_core/renderer_opengl/gl_stream_buffer.cpp b/src/video_core/renderer_opengl/gl_stream_buffer.cpp index 35ba334e4..6ec328c53 100644 --- a/src/video_core/renderer_opengl/gl_stream_buffer.cpp +++ b/src/video_core/renderer_opengl/gl_stream_buffer.cpp | |||
| @@ -7,7 +7,6 @@ | |||
| 7 | #include "common/alignment.h" | 7 | #include "common/alignment.h" |
| 8 | #include "common/assert.h" | 8 | #include "common/assert.h" |
| 9 | #include "common/microprofile.h" | 9 | #include "common/microprofile.h" |
| 10 | #include "video_core/renderer_opengl/gl_state.h" | ||
| 11 | #include "video_core/renderer_opengl/gl_stream_buffer.h" | 10 | #include "video_core/renderer_opengl/gl_stream_buffer.h" |
| 12 | 11 | ||
| 13 | MICROPROFILE_DEFINE(OpenGL_StreamBuffer, "OpenGL", "Stream Buffer Orphaning", | 12 | MICROPROFILE_DEFINE(OpenGL_StreamBuffer, "OpenGL", "Stream Buffer Orphaning", |
diff --git a/src/video_core/renderer_opengl/gl_texture_cache.cpp b/src/video_core/renderer_opengl/gl_texture_cache.cpp index 5fe6aa5d6..e2a58f0ad 100644 --- a/src/video_core/renderer_opengl/gl_texture_cache.cpp +++ b/src/video_core/renderer_opengl/gl_texture_cache.cpp | |||
| @@ -10,7 +10,6 @@ | |||
| 10 | #include "core/core.h" | 10 | #include "core/core.h" |
| 11 | #include "video_core/morton.h" | 11 | #include "video_core/morton.h" |
| 12 | #include "video_core/renderer_opengl/gl_resource_manager.h" | 12 | #include "video_core/renderer_opengl/gl_resource_manager.h" |
| 13 | #include "video_core/renderer_opengl/gl_state.h" | ||
| 14 | #include "video_core/renderer_opengl/gl_texture_cache.h" | 13 | #include "video_core/renderer_opengl/gl_texture_cache.h" |
| 15 | #include "video_core/renderer_opengl/utils.h" | 14 | #include "video_core/renderer_opengl/utils.h" |
| 16 | #include "video_core/texture_cache/surface_base.h" | 15 | #include "video_core/texture_cache/surface_base.h" |
diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp index ace3aec88..5e16bb99b 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.cpp +++ b/src/video_core/renderer_opengl/renderer_opengl.cpp | |||
| @@ -575,8 +575,6 @@ void RendererOpenGL::DrawScreen(const Layout::FramebufferLayout& layout) { | |||
| 575 | }; | 575 | }; |
| 576 | glNamedBufferSubData(vertex_buffer.handle, 0, sizeof(vertices), std::data(vertices)); | 576 | glNamedBufferSubData(vertex_buffer.handle, 0, sizeof(vertices), std::data(vertices)); |
| 577 | 577 | ||
| 578 | state.Apply(); | ||
| 579 | |||
| 580 | // TODO: Signal state tracker about these changes | 578 | // TODO: Signal state tracker about these changes |
| 581 | program_manager.UseVertexShader(vertex_program.handle); | 579 | program_manager.UseVertexShader(vertex_program.handle); |
| 582 | program_manager.UseGeometryShader(0); | 580 | program_manager.UseGeometryShader(0); |
| @@ -616,9 +614,6 @@ void RendererOpenGL::DrawScreen(const Layout::FramebufferLayout& layout) { | |||
| 616 | 614 | ||
| 617 | glClear(GL_COLOR_BUFFER_BIT); | 615 | glClear(GL_COLOR_BUFFER_BIT); |
| 618 | glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); | 616 | glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); |
| 619 | |||
| 620 | // Restore default state | ||
| 621 | state.Apply(); | ||
| 622 | } | 617 | } |
| 623 | 618 | ||
| 624 | void RendererOpenGL::TryPresent(int timeout_ms) { | 619 | void RendererOpenGL::TryPresent(int timeout_ms) { |
diff --git a/src/video_core/renderer_opengl/renderer_opengl.h b/src/video_core/renderer_opengl/renderer_opengl.h index f1225269f..ca670e7c8 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.h +++ b/src/video_core/renderer_opengl/renderer_opengl.h | |||
| @@ -11,7 +11,6 @@ | |||
| 11 | #include "video_core/renderer_base.h" | 11 | #include "video_core/renderer_base.h" |
| 12 | #include "video_core/renderer_opengl/gl_resource_manager.h" | 12 | #include "video_core/renderer_opengl/gl_resource_manager.h" |
| 13 | #include "video_core/renderer_opengl/gl_shader_manager.h" | 13 | #include "video_core/renderer_opengl/gl_shader_manager.h" |
| 14 | #include "video_core/renderer_opengl/gl_state.h" | ||
| 15 | 14 | ||
| 16 | namespace Core { | 15 | namespace Core { |
| 17 | class System; | 16 | class System; |
| @@ -92,8 +91,6 @@ private: | |||
| 92 | Core::Frontend::EmuWindow& emu_window; | 91 | Core::Frontend::EmuWindow& emu_window; |
| 93 | Core::System& system; | 92 | Core::System& system; |
| 94 | 93 | ||
| 95 | OpenGLState state; | ||
| 96 | |||
| 97 | // OpenGL object IDs | 94 | // OpenGL object IDs |
| 98 | OGLBuffer vertex_buffer; | 95 | OGLBuffer vertex_buffer; |
| 99 | OGLProgram vertex_program; | 96 | OGLProgram vertex_program; |