From 96ac3d518a9882a2a040f319c47a567467c9266d Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Wed, 25 Dec 2019 17:02:17 -0300 Subject: gl_rasterizer: Remove dirty flags --- src/video_core/renderer_opengl/gl_state.cpp | 20 -------------------- 1 file changed, 20 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 7d3bc1a1f..732cb3a3c 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -189,11 +189,6 @@ void OpenGLState::ApplyRasterizerDiscard() { } void OpenGLState::ApplyColorMask() { - if (!dirty.color_mask) { - return; - } - dirty.color_mask = false; - for (std::size_t i = 0; i < Maxwell::NumRenderTargets; ++i) { const auto& updated = color_mask[i]; auto& current = cur_state.color_mask[i]; @@ -232,11 +227,6 @@ void OpenGLState::ApplyPrimitiveRestart() { } void OpenGLState::ApplyStencilTest() { - if (!dirty.stencil_state) { - return; - } - dirty.stencil_state = false; - Enable(GL_STENCIL_TEST, cur_state.stencil.test_enabled, stencil.test_enabled); const auto ConfigStencil = [](GLenum face, const auto& config, auto& current) { @@ -351,11 +341,6 @@ void OpenGLState::ApplyTargetBlending(std::size_t target, bool force) { } void OpenGLState::ApplyBlending() { - if (!dirty.blend_state) { - return; - } - dirty.blend_state = false; - if (independant_blend.enabled) { const bool force = independant_blend.enabled != cur_state.independant_blend.enabled; for (std::size_t target = 0; target < Maxwell::NumRenderTargets; ++target) { @@ -383,11 +368,6 @@ void OpenGLState::ApplyLogicOp() { } void OpenGLState::ApplyPolygonOffset() { - if (!dirty.polygon_offset) { - return; - } - dirty.polygon_offset = false; - Enable(GL_POLYGON_OFFSET_FILL, cur_state.polygon_offset.fill_enable, polygon_offset.fill_enable); Enable(GL_POLYGON_OFFSET_LINE, cur_state.polygon_offset.line_enable, -- cgit v1.2.3 From d2d55542965e969a73ddd400e8290b5f4f4101a2 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Wed, 25 Dec 2019 19:30:05 -0300 Subject: gl_state: Remove point size tracking --- src/video_core/renderer_opengl/gl_state.cpp | 9 --------- 1 file changed, 9 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 732cb3a3c..02b3455cc 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -126,14 +126,6 @@ void OpenGLState::ApplyClipDistances() { } } -void OpenGLState::ApplyPointSize() { - Enable(GL_PROGRAM_POINT_SIZE, cur_state.point.program_control, point.program_control); - Enable(GL_POINT_SPRITE, cur_state.point.sprite, point.sprite); - if (UpdateValue(cur_state.point.size, point.size)) { - glPointSize(point.size); - } -} - void OpenGLState::ApplyFragmentColorClamp() { if (UpdateValue(cur_state.fragment_color_clamp.enabled, fragment_color_clamp.enabled)) { glClampColor(GL_CLAMP_FRAGMENT_COLOR_ARB, @@ -445,7 +437,6 @@ void OpenGLState::Apply() { ApplyShaderProgram(); ApplyProgramPipeline(); ApplyClipDistances(); - ApplyPointSize(); ApplyFragmentColorClamp(); ApplyMultisample(); ApplyRasterizerDiscard(); -- cgit v1.2.3 From 925521da5fbc1096f56933eba1683b60c6c19b20 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Wed, 25 Dec 2019 19:46:04 -0300 Subject: gl_state: Remove front face tracking --- src/video_core/renderer_opengl/gl_state.cpp | 4 ---- 1 file changed, 4 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 02b3455cc..817676505 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -170,10 +170,6 @@ void OpenGLState::ApplyCulling() { if (UpdateValue(cur_state.cull.mode, cull.mode)) { glCullFace(cull.mode); } - - if (UpdateValue(cur_state.cull.front_face, cull.front_face)) { - glFrontFace(cull.front_face); - } } void OpenGLState::ApplyRasterizerDiscard() { -- cgit v1.2.3 From c8f5f54a44e9873134fab74eef97e875b9e6c565 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Wed, 25 Dec 2019 19:56:17 -0300 Subject: gl_state: Remove cull mode tracking --- src/video_core/renderer_opengl/gl_state.cpp | 9 --------- 1 file changed, 9 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 817676505..08e86b599 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -164,14 +164,6 @@ void OpenGLState::ApplySRgb() { } } -void OpenGLState::ApplyCulling() { - Enable(GL_CULL_FACE, cur_state.cull.enabled, cull.enabled); - - if (UpdateValue(cur_state.cull.mode, cull.mode)) { - glCullFace(cull.mode); - } -} - void OpenGLState::ApplyRasterizerDiscard() { Enable(GL_RASTERIZER_DISCARD, cur_state.rasterizer_discard, rasterizer_discard); } @@ -441,7 +433,6 @@ void OpenGLState::Apply() { ApplyViewport(); ApplyStencilTest(); ApplySRgb(); - ApplyCulling(); ApplyDepth(); ApplyPrimitiveRestart(); ApplyBlending(); -- cgit v1.2.3 From f646321dd060572f94c2d4f2f3aa2c5307e21b14 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Wed, 25 Dec 2019 20:03:40 -0300 Subject: gl_state: Remove alpha test tracking --- src/video_core/renderer_opengl/gl_state.cpp | 9 --------- 1 file changed, 9 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 08e86b599..59fd8e421 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -368,14 +368,6 @@ void OpenGLState::ApplyPolygonOffset() { } } -void OpenGLState::ApplyAlphaTest() { - Enable(GL_ALPHA_TEST, cur_state.alpha_test.enabled, alpha_test.enabled); - if (UpdateTie(std::tie(cur_state.alpha_test.func, cur_state.alpha_test.ref), - std::tie(alpha_test.func, alpha_test.ref))) { - glAlphaFunc(alpha_test.func, alpha_test.ref); - } -} - void OpenGLState::ApplyClipControl() { if (UpdateTie(std::tie(cur_state.clip_control.origin, cur_state.clip_control.depth_mode), std::tie(clip_control.origin, clip_control.depth_mode))) { @@ -441,7 +433,6 @@ void OpenGLState::Apply() { ApplySamplers(); ApplyImages(); ApplyPolygonOffset(); - ApplyAlphaTest(); ApplyClipControl(); ApplyRenderBuffer(); } -- cgit v1.2.3 From a0321b984fc03610ad7b20d2ee345fd978103b19 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 00:25:53 -0300 Subject: gl_state: Remove polygon offset tracking --- src/video_core/renderer_opengl/gl_state.cpp | 22 ---------------------- 1 file changed, 22 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 59fd8e421..05c271ad2 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -347,27 +347,6 @@ void OpenGLState::ApplyLogicOp() { } } -void OpenGLState::ApplyPolygonOffset() { - Enable(GL_POLYGON_OFFSET_FILL, cur_state.polygon_offset.fill_enable, - polygon_offset.fill_enable); - Enable(GL_POLYGON_OFFSET_LINE, cur_state.polygon_offset.line_enable, - polygon_offset.line_enable); - Enable(GL_POLYGON_OFFSET_POINT, cur_state.polygon_offset.point_enable, - polygon_offset.point_enable); - - if (UpdateTie(std::tie(cur_state.polygon_offset.factor, cur_state.polygon_offset.units, - cur_state.polygon_offset.clamp), - std::tie(polygon_offset.factor, polygon_offset.units, polygon_offset.clamp))) { - if (GLAD_GL_EXT_polygon_offset_clamp && polygon_offset.clamp != 0) { - glPolygonOffsetClamp(polygon_offset.factor, polygon_offset.units, polygon_offset.clamp); - } else { - UNIMPLEMENTED_IF_MSG(polygon_offset.clamp != 0, - "Unimplemented Depth polygon offset clamp."); - glPolygonOffset(polygon_offset.factor, polygon_offset.units); - } - } -} - void OpenGLState::ApplyClipControl() { if (UpdateTie(std::tie(cur_state.clip_control.origin, cur_state.clip_control.depth_mode), std::tie(clip_control.origin, clip_control.depth_mode))) { @@ -432,7 +411,6 @@ void OpenGLState::Apply() { ApplyTextures(); ApplySamplers(); ApplyImages(); - ApplyPolygonOffset(); ApplyClipControl(); ApplyRenderBuffer(); } -- cgit v1.2.3 From 915d73f3b8871fc31b9b6571d645ced6f766bc43 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Wed, 25 Dec 2019 20:13:43 -0300 Subject: gl_state: Remove blend color tracking --- src/video_core/renderer_opengl/gl_state.cpp | 7 ------- 1 file changed, 7 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 05c271ad2..e8463da7e 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -330,13 +330,6 @@ void OpenGLState::ApplyBlending() { ApplyGlobalBlending(); } cur_state.independant_blend.enabled = independant_blend.enabled; - - if (UpdateTie( - std::tie(cur_state.blend_color.red, cur_state.blend_color.green, - cur_state.blend_color.blue, cur_state.blend_color.alpha), - std::tie(blend_color.red, blend_color.green, blend_color.blue, blend_color.alpha))) { - glBlendColor(blend_color.red, blend_color.green, blend_color.blue, blend_color.alpha); - } } void OpenGLState::ApplyLogicOp() { -- cgit v1.2.3 From 42708c762edee4f5bf2fa1d15a4ab764525fb044 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Wed, 25 Dec 2019 20:21:53 -0300 Subject: gl_state: Remove logic op tracker --- src/video_core/renderer_opengl/gl_state.cpp | 9 --------- 1 file changed, 9 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index e8463da7e..ddc534eb4 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -332,14 +332,6 @@ void OpenGLState::ApplyBlending() { cur_state.independant_blend.enabled = independant_blend.enabled; } -void OpenGLState::ApplyLogicOp() { - Enable(GL_COLOR_LOGIC_OP, cur_state.logic_op.enabled, logic_op.enabled); - - if (UpdateValue(cur_state.logic_op.operation, logic_op.operation)) { - glLogicOp(logic_op.operation); - } -} - void OpenGLState::ApplyClipControl() { if (UpdateTie(std::tie(cur_state.clip_control.origin, cur_state.clip_control.depth_mode), std::tie(clip_control.origin, clip_control.depth_mode))) { @@ -400,7 +392,6 @@ void OpenGLState::Apply() { ApplyDepth(); ApplyPrimitiveRestart(); ApplyBlending(); - ApplyLogicOp(); ApplyTextures(); ApplySamplers(); ApplyImages(); -- cgit v1.2.3 From 0f343d32c41efc411fddb1a66a9f11fb68eebf06 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Wed, 25 Dec 2019 21:00:38 -0300 Subject: gl_state: Remove primitive restart tracking --- src/video_core/renderer_opengl/gl_state.cpp | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index ddc534eb4..49a15f82f 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -197,15 +197,6 @@ void OpenGLState::ApplyDepth() { } } -void OpenGLState::ApplyPrimitiveRestart() { - Enable(GL_PRIMITIVE_RESTART, cur_state.primitive_restart.enabled, primitive_restart.enabled); - - if (cur_state.primitive_restart.index != primitive_restart.index) { - cur_state.primitive_restart.index = primitive_restart.index; - glPrimitiveRestartIndex(primitive_restart.index); - } -} - void OpenGLState::ApplyStencilTest() { Enable(GL_STENCIL_TEST, cur_state.stencil.test_enabled, stencil.test_enabled); @@ -390,7 +381,6 @@ void OpenGLState::Apply() { ApplyStencilTest(); ApplySRgb(); ApplyDepth(); - ApplyPrimitiveRestart(); ApplyBlending(); ApplyTextures(); ApplySamplers(); -- cgit v1.2.3 From e1a16a52fa14835efe6ba9b7418be419cdc4e5d5 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Wed, 25 Dec 2019 21:52:39 -0300 Subject: gl_state: Remove depth tracking --- src/video_core/renderer_opengl/gl_state.cpp | 15 --------------- 1 file changed, 15 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 49a15f82f..45fa3042d 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -183,20 +183,6 @@ void OpenGLState::ApplyColorMask() { } } -void OpenGLState::ApplyDepth() { - Enable(GL_DEPTH_TEST, cur_state.depth.test_enabled, depth.test_enabled); - - if (cur_state.depth.test_func != depth.test_func) { - cur_state.depth.test_func = depth.test_func; - glDepthFunc(depth.test_func); - } - - if (cur_state.depth.write_mask != depth.write_mask) { - cur_state.depth.write_mask = depth.write_mask; - glDepthMask(depth.write_mask); - } -} - void OpenGLState::ApplyStencilTest() { Enable(GL_STENCIL_TEST, cur_state.stencil.test_enabled, stencil.test_enabled); @@ -380,7 +366,6 @@ void OpenGLState::Apply() { ApplyViewport(); ApplyStencilTest(); ApplySRgb(); - ApplyDepth(); ApplyBlending(); ApplyTextures(); ApplySamplers(); -- cgit v1.2.3 From 2a662fea363027817a73a62a5e4a9d0066fb43ee Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Wed, 25 Dec 2019 21:57:10 -0300 Subject: gl_state: Remove depth clamp tracking --- src/video_core/renderer_opengl/gl_state.cpp | 17 ----------------- 1 file changed, 17 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 45fa3042d..6b5eea342 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -87,9 +87,6 @@ OpenGLState::OpenGLState() = default; void OpenGLState::SetDefaultViewports() { viewports.fill(Viewport{}); - - depth_clamp.far_plane = false; - depth_clamp.near_plane = false; } void OpenGLState::ApplyFramebufferState() { @@ -140,19 +137,6 @@ void OpenGLState::ApplyMultisample() { multisample_control.alpha_to_one); } -void OpenGLState::ApplyDepthClamp() { - if (depth_clamp.far_plane == cur_state.depth_clamp.far_plane && - depth_clamp.near_plane == cur_state.depth_clamp.near_plane) { - return; - } - cur_state.depth_clamp = depth_clamp; - - UNIMPLEMENTED_IF_MSG(depth_clamp.far_plane != depth_clamp.near_plane, - "Unimplemented Depth Clamp Separation!"); - - Enable(GL_DEPTH_CLAMP, depth_clamp.far_plane || depth_clamp.near_plane); -} - void OpenGLState::ApplySRgb() { if (cur_state.framebuffer_srgb.enabled == framebuffer_srgb.enabled) return; @@ -362,7 +346,6 @@ void OpenGLState::Apply() { ApplyMultisample(); ApplyRasterizerDiscard(); ApplyColorMask(); - ApplyDepthClamp(); ApplyViewport(); ApplyStencilTest(); ApplySRgb(); -- cgit v1.2.3 From d5ab0358b64266be928a15265c4071744eed061e Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 00:16:52 -0300 Subject: gl_state: Remove VAO cache and tracking --- src/video_core/renderer_opengl/gl_state.cpp | 14 -------------- 1 file changed, 14 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 6b5eea342..1c39e7fba 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -98,12 +98,6 @@ void OpenGLState::ApplyFramebufferState() { } } -void OpenGLState::ApplyVertexArrayState() { - if (UpdateValue(cur_state.draw.vertex_array, draw.vertex_array)) { - glBindVertexArray(draw.vertex_array); - } -} - void OpenGLState::ApplyShaderProgram() { if (UpdateValue(cur_state.draw.shader_program, draw.shader_program)) { glUseProgram(draw.shader_program); @@ -338,7 +332,6 @@ void OpenGLState::ApplyImages() { void OpenGLState::Apply() { MICROPROFILE_SCOPE(OpenGL_State); ApplyFramebufferState(); - ApplyVertexArrayState(); ApplyShaderProgram(); ApplyProgramPipeline(); ApplyClipDistances(); @@ -411,13 +404,6 @@ OpenGLState& OpenGLState::ResetPipeline(GLuint handle) { return *this; } -OpenGLState& OpenGLState::ResetVertexArray(GLuint handle) { - if (draw.vertex_array == handle) { - draw.vertex_array = 0; - } - return *this; -} - OpenGLState& OpenGLState::ResetFramebuffer(GLuint handle) { if (draw.read_framebuffer == handle) { draw.read_framebuffer = 0; -- cgit v1.2.3 From 04d11341911a0c9ed3558fc6084d305ae262399a Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 01:01:41 -0300 Subject: gl_state: Remove framebuffer sRGB tracking --- src/video_core/renderer_opengl/gl_state.cpp | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 1c39e7fba..e67db758d 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -131,17 +131,6 @@ void OpenGLState::ApplyMultisample() { multisample_control.alpha_to_one); } -void OpenGLState::ApplySRgb() { - if (cur_state.framebuffer_srgb.enabled == framebuffer_srgb.enabled) - return; - cur_state.framebuffer_srgb.enabled = framebuffer_srgb.enabled; - if (framebuffer_srgb.enabled) { - glEnable(GL_FRAMEBUFFER_SRGB); - } else { - glDisable(GL_FRAMEBUFFER_SRGB); - } -} - void OpenGLState::ApplyRasterizerDiscard() { Enable(GL_RASTERIZER_DISCARD, cur_state.rasterizer_discard, rasterizer_discard); } @@ -341,7 +330,6 @@ void OpenGLState::Apply() { ApplyColorMask(); ApplyViewport(); ApplyStencilTest(); - ApplySRgb(); ApplyBlending(); ApplyTextures(); ApplySamplers(); -- cgit v1.2.3 From f92236976b870cfb8be5a9efa03e4fb171d0ce00 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 01:04:36 -0300 Subject: gl_state: Remove multisample tracking --- src/video_core/renderer_opengl/gl_state.cpp | 8 -------- 1 file changed, 8 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index e67db758d..b726adfc7 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -124,13 +124,6 @@ void OpenGLState::ApplyFragmentColorClamp() { } } -void OpenGLState::ApplyMultisample() { - Enable(GL_SAMPLE_ALPHA_TO_COVERAGE, cur_state.multisample_control.alpha_to_coverage, - multisample_control.alpha_to_coverage); - Enable(GL_SAMPLE_ALPHA_TO_ONE, cur_state.multisample_control.alpha_to_one, - multisample_control.alpha_to_one); -} - void OpenGLState::ApplyRasterizerDiscard() { Enable(GL_RASTERIZER_DISCARD, cur_state.rasterizer_discard, rasterizer_discard); } @@ -325,7 +318,6 @@ void OpenGLState::Apply() { ApplyProgramPipeline(); ApplyClipDistances(); ApplyFragmentColorClamp(); - ApplyMultisample(); ApplyRasterizerDiscard(); ApplyColorMask(); ApplyViewport(); -- cgit v1.2.3 From 2392b548bee87553b39f50c1159640b0dabc4b13 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 01:07:34 -0300 Subject: gl_state: Remove clamp framebuffer color tracking This commit doesn't reset it for screen draws because clamping doesn't change anything there. --- src/video_core/renderer_opengl/gl_state.cpp | 8 -------- 1 file changed, 8 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index b726adfc7..f8325d6e7 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -117,13 +117,6 @@ void OpenGLState::ApplyClipDistances() { } } -void OpenGLState::ApplyFragmentColorClamp() { - if (UpdateValue(cur_state.fragment_color_clamp.enabled, fragment_color_clamp.enabled)) { - glClampColor(GL_CLAMP_FRAGMENT_COLOR_ARB, - fragment_color_clamp.enabled ? GL_TRUE : GL_FALSE); - } -} - void OpenGLState::ApplyRasterizerDiscard() { Enable(GL_RASTERIZER_DISCARD, cur_state.rasterizer_discard, rasterizer_discard); } @@ -317,7 +310,6 @@ void OpenGLState::Apply() { ApplyShaderProgram(); ApplyProgramPipeline(); ApplyClipDistances(); - ApplyFragmentColorClamp(); ApplyRasterizerDiscard(); ApplyColorMask(); ApplyViewport(); -- cgit v1.2.3 From 0914c70b7f9d68e71779fa32c474ed896b225704 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 01:19:15 -0300 Subject: gl_state: Remove color mask tracking --- src/video_core/renderer_opengl/gl_state.cpp | 16 ---------------- 1 file changed, 16 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index f8325d6e7..bcacc5590 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -121,21 +121,6 @@ void OpenGLState::ApplyRasterizerDiscard() { Enable(GL_RASTERIZER_DISCARD, cur_state.rasterizer_discard, rasterizer_discard); } -void OpenGLState::ApplyColorMask() { - for (std::size_t i = 0; i < Maxwell::NumRenderTargets; ++i) { - const auto& updated = color_mask[i]; - auto& current = cur_state.color_mask[i]; - if (updated.red_enabled != current.red_enabled || - updated.green_enabled != current.green_enabled || - updated.blue_enabled != current.blue_enabled || - updated.alpha_enabled != current.alpha_enabled) { - current = updated; - glColorMaski(static_cast(i), updated.red_enabled, updated.green_enabled, - updated.blue_enabled, updated.alpha_enabled); - } - } -} - void OpenGLState::ApplyStencilTest() { Enable(GL_STENCIL_TEST, cur_state.stencil.test_enabled, stencil.test_enabled); @@ -311,7 +296,6 @@ void OpenGLState::Apply() { ApplyProgramPipeline(); ApplyClipDistances(); ApplyRasterizerDiscard(); - ApplyColorMask(); ApplyViewport(); ApplyStencilTest(); ApplyBlending(); -- cgit v1.2.3 From 7c16b3551b5294d86a7dc8e0721c081bd88547ed Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 01:28:17 -0300 Subject: gl_state: Remove scissor test tracking --- src/video_core/renderer_opengl/gl_state.cpp | 35 ----------------------------- 1 file changed, 35 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index bcacc5590..dcea16fd3 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -171,19 +171,6 @@ void OpenGLState::ApplyViewport() { current.depth_range_far = updated.depth_range_far; glDepthRangeIndexed(i, updated.depth_range_near, updated.depth_range_far); } - - Enable(GL_SCISSOR_TEST, i, current.scissor.enabled, updated.scissor.enabled); - - if (current.scissor.x != updated.scissor.x || current.scissor.y != updated.scissor.y || - current.scissor.width != updated.scissor.width || - current.scissor.height != updated.scissor.height) { - current.scissor.x = updated.scissor.x; - current.scissor.y = updated.scissor.y; - current.scissor.width = updated.scissor.width; - current.scissor.height = updated.scissor.height; - glScissorIndexed(i, updated.scissor.x, updated.scissor.y, updated.scissor.width, - updated.scissor.height); - } } } @@ -306,28 +293,6 @@ void OpenGLState::Apply() { ApplyRenderBuffer(); } -void OpenGLState::EmulateViewportWithScissor() { - auto& current = viewports[0]; - if (current.scissor.enabled) { - const GLint left = std::max(current.x, current.scissor.x); - const GLint right = - std::max(current.x + current.width, current.scissor.x + current.scissor.width); - const GLint bottom = std::max(current.y, current.scissor.y); - const GLint top = - std::max(current.y + current.height, current.scissor.y + current.scissor.height); - current.scissor.x = std::max(left, 0); - current.scissor.y = std::max(bottom, 0); - current.scissor.width = std::max(right - left, 0); - current.scissor.height = std::max(top - bottom, 0); - } else { - current.scissor.enabled = true; - current.scissor.x = current.x; - current.scissor.y = current.y; - current.scissor.width = current.width; - current.scissor.height = current.height; - } -} - OpenGLState& OpenGLState::UnbindTexture(GLuint handle) { for (auto& texture : textures) { if (texture == handle) { -- cgit v1.2.3 From d3e433a38048c5d32c0929446008586e975ccd0e Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 01:50:38 -0300 Subject: gl_state: Remove viewport and depth range tracking --- src/video_core/renderer_opengl/gl_state.cpp | 29 ----------------------------- 1 file changed, 29 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index dcea16fd3..7c08cc3c2 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -85,10 +85,6 @@ void Enable(GLenum cap, GLuint index, bool& current_value, bool new_value) { OpenGLState::OpenGLState() = default; -void OpenGLState::SetDefaultViewports() { - viewports.fill(Viewport{}); -} - void OpenGLState::ApplyFramebufferState() { if (UpdateValue(cur_state.draw.read_framebuffer, draw.read_framebuffer)) { glBindFramebuffer(GL_READ_FRAMEBUFFER, draw.read_framebuffer); @@ -150,30 +146,6 @@ void OpenGLState::ApplyStencilTest() { ConfigStencil(GL_BACK, stencil.back, cur_state.stencil.back); } -void OpenGLState::ApplyViewport() { - for (GLuint i = 0; i < static_cast(Maxwell::NumViewports); ++i) { - const auto& updated = viewports[i]; - auto& current = cur_state.viewports[i]; - - if (current.x != updated.x || current.y != updated.y || current.width != updated.width || - current.height != updated.height) { - current.x = updated.x; - current.y = updated.y; - current.width = updated.width; - current.height = updated.height; - glViewportIndexedf(i, static_cast(updated.x), static_cast(updated.y), - static_cast(updated.width), - static_cast(updated.height)); - } - if (current.depth_range_near != updated.depth_range_near || - current.depth_range_far != updated.depth_range_far) { - current.depth_range_near = updated.depth_range_near; - current.depth_range_far = updated.depth_range_far; - glDepthRangeIndexed(i, updated.depth_range_near, updated.depth_range_far); - } - } -} - void OpenGLState::ApplyGlobalBlending() { const Blend& updated = blend[0]; Blend& current = cur_state.blend[0]; @@ -283,7 +255,6 @@ void OpenGLState::Apply() { ApplyProgramPipeline(); ApplyClipDistances(); ApplyRasterizerDiscard(); - ApplyViewport(); ApplyStencilTest(); ApplyBlending(); ApplyTextures(); -- cgit v1.2.3 From e8125af8dd8efac3f7171e234b5aee6edfadc626 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 02:11:01 -0300 Subject: gl_state: Remove rasterizer disable tracking --- src/video_core/renderer_opengl/gl_state.cpp | 5 ----- 1 file changed, 5 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 7c08cc3c2..96c3f40f4 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -113,10 +113,6 @@ void OpenGLState::ApplyClipDistances() { } } -void OpenGLState::ApplyRasterizerDiscard() { - Enable(GL_RASTERIZER_DISCARD, cur_state.rasterizer_discard, rasterizer_discard); -} - void OpenGLState::ApplyStencilTest() { Enable(GL_STENCIL_TEST, cur_state.stencil.test_enabled, stencil.test_enabled); @@ -254,7 +250,6 @@ void OpenGLState::Apply() { ApplyShaderProgram(); ApplyProgramPipeline(); ApplyClipDistances(); - ApplyRasterizerDiscard(); ApplyStencilTest(); ApplyBlending(); ApplyTextures(); -- cgit v1.2.3 From 1eee891f6e73423a9aa6147f980be5aea799e7ce Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 02:20:08 -0300 Subject: gl_state: Remove clip distances tracking --- src/video_core/renderer_opengl/gl_state.cpp | 8 -------- 1 file changed, 8 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 96c3f40f4..5505fee73 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -106,13 +106,6 @@ void OpenGLState::ApplyProgramPipeline() { } } -void OpenGLState::ApplyClipDistances() { - for (std::size_t i = 0; i < clip_distance.size(); ++i) { - Enable(GL_CLIP_DISTANCE0 + static_cast(i), cur_state.clip_distance[i], - clip_distance[i]); - } -} - void OpenGLState::ApplyStencilTest() { Enable(GL_STENCIL_TEST, cur_state.stencil.test_enabled, stencil.test_enabled); @@ -249,7 +242,6 @@ void OpenGLState::Apply() { ApplyFramebufferState(); ApplyShaderProgram(); ApplyProgramPipeline(); - ApplyClipDistances(); ApplyStencilTest(); ApplyBlending(); ApplyTextures(); -- cgit v1.2.3 From 07a954e67f786fad4b6324837489af705788a6b9 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 02:27:26 -0300 Subject: gl_state: Remove clip control tracking --- src/video_core/renderer_opengl/gl_state.cpp | 8 -------- 1 file changed, 8 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 5505fee73..69a8a4eb1 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -195,13 +195,6 @@ void OpenGLState::ApplyBlending() { cur_state.independant_blend.enabled = independant_blend.enabled; } -void OpenGLState::ApplyClipControl() { - if (UpdateTie(std::tie(cur_state.clip_control.origin, cur_state.clip_control.depth_mode), - std::tie(clip_control.origin, clip_control.depth_mode))) { - glClipControl(clip_control.origin, clip_control.depth_mode); - } -} - void OpenGLState::ApplyRenderBuffer() { if (cur_state.renderbuffer != renderbuffer) { cur_state.renderbuffer = renderbuffer; @@ -247,7 +240,6 @@ void OpenGLState::Apply() { ApplyTextures(); ApplySamplers(); ApplyImages(); - ApplyClipControl(); ApplyRenderBuffer(); } -- cgit v1.2.3 From 7d9a5e9e30b9e197e5fe3bfd10116e7ea078494a Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 03:34:29 -0300 Subject: gl_state: Remove stencil test tracking --- src/video_core/renderer_opengl/gl_state.cpp | 30 ----------------------------- 1 file changed, 30 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 69a8a4eb1..d62a55b2f 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -106,35 +106,6 @@ void OpenGLState::ApplyProgramPipeline() { } } -void OpenGLState::ApplyStencilTest() { - Enable(GL_STENCIL_TEST, cur_state.stencil.test_enabled, stencil.test_enabled); - - const auto ConfigStencil = [](GLenum face, const auto& config, auto& current) { - if (current.test_func != config.test_func || current.test_ref != config.test_ref || - current.test_mask != config.test_mask) { - current.test_func = config.test_func; - current.test_ref = config.test_ref; - current.test_mask = config.test_mask; - glStencilFuncSeparate(face, config.test_func, config.test_ref, config.test_mask); - } - if (current.action_depth_fail != config.action_depth_fail || - current.action_depth_pass != config.action_depth_pass || - current.action_stencil_fail != config.action_stencil_fail) { - current.action_depth_fail = config.action_depth_fail; - current.action_depth_pass = config.action_depth_pass; - current.action_stencil_fail = config.action_stencil_fail; - glStencilOpSeparate(face, config.action_stencil_fail, config.action_depth_fail, - config.action_depth_pass); - } - if (current.write_mask != config.write_mask) { - current.write_mask = config.write_mask; - glStencilMaskSeparate(face, config.write_mask); - } - }; - ConfigStencil(GL_FRONT, stencil.front, cur_state.stencil.front); - ConfigStencil(GL_BACK, stencil.back, cur_state.stencil.back); -} - void OpenGLState::ApplyGlobalBlending() { const Blend& updated = blend[0]; Blend& current = cur_state.blend[0]; @@ -235,7 +206,6 @@ void OpenGLState::Apply() { ApplyFramebufferState(); ApplyShaderProgram(); ApplyProgramPipeline(); - ApplyStencilTest(); ApplyBlending(); ApplyTextures(); ApplySamplers(); -- cgit v1.2.3 From 1bc0da3dea5a8502e63f5c123151328ccb2ba8d6 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 03:51:50 -0300 Subject: gl_state: Remove blend state tracking --- src/video_core/renderer_opengl/gl_state.cpp | 61 ----------------------------- 1 file changed, 61 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index d62a55b2f..3cdb9b4a0 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -106,66 +106,6 @@ void OpenGLState::ApplyProgramPipeline() { } } -void OpenGLState::ApplyGlobalBlending() { - const Blend& updated = blend[0]; - Blend& current = cur_state.blend[0]; - - Enable(GL_BLEND, current.enabled, updated.enabled); - - if (current.src_rgb_func != updated.src_rgb_func || - current.dst_rgb_func != updated.dst_rgb_func || current.src_a_func != updated.src_a_func || - current.dst_a_func != updated.dst_a_func) { - current.src_rgb_func = updated.src_rgb_func; - current.dst_rgb_func = updated.dst_rgb_func; - current.src_a_func = updated.src_a_func; - current.dst_a_func = updated.dst_a_func; - glBlendFuncSeparate(updated.src_rgb_func, updated.dst_rgb_func, updated.src_a_func, - updated.dst_a_func); - } - - if (current.rgb_equation != updated.rgb_equation || current.a_equation != updated.a_equation) { - current.rgb_equation = updated.rgb_equation; - current.a_equation = updated.a_equation; - glBlendEquationSeparate(updated.rgb_equation, updated.a_equation); - } -} - -void OpenGLState::ApplyTargetBlending(std::size_t target, bool force) { - const Blend& updated = blend[target]; - Blend& current = cur_state.blend[target]; - - if (current.enabled != updated.enabled || force) { - current.enabled = updated.enabled; - Enable(GL_BLEND, static_cast(target), updated.enabled); - } - - if (UpdateTie(std::tie(current.src_rgb_func, current.dst_rgb_func, current.src_a_func, - current.dst_a_func), - std::tie(updated.src_rgb_func, updated.dst_rgb_func, updated.src_a_func, - updated.dst_a_func))) { - glBlendFuncSeparatei(static_cast(target), updated.src_rgb_func, - updated.dst_rgb_func, updated.src_a_func, updated.dst_a_func); - } - - if (UpdateTie(std::tie(current.rgb_equation, current.a_equation), - std::tie(updated.rgb_equation, updated.a_equation))) { - glBlendEquationSeparatei(static_cast(target), updated.rgb_equation, - updated.a_equation); - } -} - -void OpenGLState::ApplyBlending() { - if (independant_blend.enabled) { - const bool force = independant_blend.enabled != cur_state.independant_blend.enabled; - for (std::size_t target = 0; target < Maxwell::NumRenderTargets; ++target) { - ApplyTargetBlending(target, force); - } - } else { - ApplyGlobalBlending(); - } - cur_state.independant_blend.enabled = independant_blend.enabled; -} - void OpenGLState::ApplyRenderBuffer() { if (cur_state.renderbuffer != renderbuffer) { cur_state.renderbuffer = renderbuffer; @@ -206,7 +146,6 @@ void OpenGLState::Apply() { ApplyFramebufferState(); ApplyShaderProgram(); ApplyProgramPipeline(); - ApplyBlending(); ApplyTextures(); ApplySamplers(); ApplyImages(); -- cgit v1.2.3 From 9677db03da37a61248c2ced49a9a5e53c872cc63 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 04:01:11 -0300 Subject: gl_state: Remove texture and sampler tracking --- src/video_core/renderer_opengl/gl_state.cpp | 42 ----------------------------- 1 file changed, 42 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 3cdb9b4a0..98de72b5f 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -113,28 +113,6 @@ void OpenGLState::ApplyRenderBuffer() { } } -void OpenGLState::ApplyTextures() { - const std::size_t size = std::size(textures); - for (std::size_t i = 0; i < size; ++i) { - if (UpdateValue(cur_state.textures[i], textures[i])) { - // BindTextureUnit doesn't support binding null textures, skip those binds. - // TODO(Rodrigo): Stop using null textures - if (textures[i] != 0) { - glBindTextureUnit(static_cast(i), textures[i]); - } - } - } -} - -void OpenGLState::ApplySamplers() { - const std::size_t size = std::size(samplers); - for (std::size_t i = 0; i < size; ++i) { - if (UpdateValue(cur_state.samplers[i], samplers[i])) { - glBindSampler(static_cast(i), samplers[i]); - } - } -} - void OpenGLState::ApplyImages() { if (const auto update = UpdateArray(cur_state.images, images)) { glBindImageTextures(update->first, update->second, images.data() + update->first); @@ -146,30 +124,10 @@ void OpenGLState::Apply() { ApplyFramebufferState(); ApplyShaderProgram(); ApplyProgramPipeline(); - ApplyTextures(); - ApplySamplers(); ApplyImages(); ApplyRenderBuffer(); } -OpenGLState& OpenGLState::UnbindTexture(GLuint handle) { - for (auto& texture : textures) { - if (texture == handle) { - texture = 0; - } - } - return *this; -} - -OpenGLState& OpenGLState::ResetSampler(GLuint handle) { - for (auto& sampler : samplers) { - if (sampler == handle) { - sampler = 0; - } - } - return *this; -} - OpenGLState& OpenGLState::ResetProgram(GLuint handle) { if (draw.shader_program == handle) { draw.shader_program = 0; -- cgit v1.2.3 From 17a7fa751b34ae67c600bd741969dc1bde40fbf3 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 04:17:02 -0300 Subject: gl_state: Remove image tracking --- src/video_core/renderer_opengl/gl_state.cpp | 7 ------- 1 file changed, 7 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 98de72b5f..7bb87f7ba 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -113,18 +113,11 @@ void OpenGLState::ApplyRenderBuffer() { } } -void OpenGLState::ApplyImages() { - if (const auto update = UpdateArray(cur_state.images, images)) { - glBindImageTextures(update->first, update->second, images.data() + update->first); - } -} - void OpenGLState::Apply() { MICROPROFILE_SCOPE(OpenGL_State); ApplyFramebufferState(); ApplyShaderProgram(); ApplyProgramPipeline(); - ApplyImages(); ApplyRenderBuffer(); } -- cgit v1.2.3 From 5ccb07933ac0f33d0ecb909d29bf65ee4ab70d8e Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 05:01:43 -0300 Subject: gl_state: Remove framebuffer tracking --- src/video_core/renderer_opengl/gl_state.cpp | 35 ----------------------------- 1 file changed, 35 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 7bb87f7ba..be4ca6bf0 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -85,15 +85,6 @@ void Enable(GLenum cap, GLuint index, bool& current_value, bool new_value) { OpenGLState::OpenGLState() = default; -void OpenGLState::ApplyFramebufferState() { - if (UpdateValue(cur_state.draw.read_framebuffer, draw.read_framebuffer)) { - glBindFramebuffer(GL_READ_FRAMEBUFFER, draw.read_framebuffer); - } - if (UpdateValue(cur_state.draw.draw_framebuffer, draw.draw_framebuffer)) { - glBindFramebuffer(GL_DRAW_FRAMEBUFFER, draw.draw_framebuffer); - } -} - void OpenGLState::ApplyShaderProgram() { if (UpdateValue(cur_state.draw.shader_program, draw.shader_program)) { glUseProgram(draw.shader_program); @@ -106,19 +97,10 @@ void OpenGLState::ApplyProgramPipeline() { } } -void OpenGLState::ApplyRenderBuffer() { - if (cur_state.renderbuffer != renderbuffer) { - cur_state.renderbuffer = renderbuffer; - glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer); - } -} - void OpenGLState::Apply() { MICROPROFILE_SCOPE(OpenGL_State); - ApplyFramebufferState(); ApplyShaderProgram(); ApplyProgramPipeline(); - ApplyRenderBuffer(); } OpenGLState& OpenGLState::ResetProgram(GLuint handle) { @@ -135,21 +117,4 @@ OpenGLState& OpenGLState::ResetPipeline(GLuint handle) { return *this; } -OpenGLState& OpenGLState::ResetFramebuffer(GLuint handle) { - if (draw.read_framebuffer == handle) { - draw.read_framebuffer = 0; - } - if (draw.draw_framebuffer == handle) { - draw.draw_framebuffer = 0; - } - return *this; -} - -OpenGLState& OpenGLState::ResetRenderbuffer(GLuint handle) { - if (renderbuffer == handle) { - renderbuffer = 0; - } - return *this; -} - } // namespace OpenGL -- cgit v1.2.3 From 1c4bf9cbfa4e4303890f73be11eb1dee88d070fe Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 16:04:41 -0300 Subject: gl_state: Remove program tracking --- src/video_core/renderer_opengl/gl_state.cpp | 32 +---------------------------- 1 file changed, 1 insertion(+), 31 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index be4ca6bf0..e8a23d41d 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -85,36 +85,6 @@ void Enable(GLenum cap, GLuint index, bool& current_value, bool new_value) { OpenGLState::OpenGLState() = default; -void OpenGLState::ApplyShaderProgram() { - if (UpdateValue(cur_state.draw.shader_program, draw.shader_program)) { - glUseProgram(draw.shader_program); - } -} - -void OpenGLState::ApplyProgramPipeline() { - if (UpdateValue(cur_state.draw.program_pipeline, draw.program_pipeline)) { - glBindProgramPipeline(draw.program_pipeline); - } -} - -void OpenGLState::Apply() { - MICROPROFILE_SCOPE(OpenGL_State); - ApplyShaderProgram(); - ApplyProgramPipeline(); -} - -OpenGLState& OpenGLState::ResetProgram(GLuint handle) { - if (draw.shader_program == handle) { - draw.shader_program = 0; - } - return *this; -} - -OpenGLState& OpenGLState::ResetPipeline(GLuint handle) { - if (draw.program_pipeline == handle) { - draw.program_pipeline = 0; - } - return *this; -} +void OpenGLState::Apply() {} } // namespace OpenGL -- cgit v1.2.3 From b92dfcd7f2a03b04a1d6090d7dd2684986f7adee Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 16:15:24 -0300 Subject: gl_state: Remove completely --- src/video_core/renderer_opengl/gl_state.cpp | 90 ----------------------------- 1 file changed, 90 deletions(-) delete mode 100644 src/video_core/renderer_opengl/gl_state.cpp (limited to 'src/video_core/renderer_opengl/gl_state.cpp') 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 @@ -// Copyright 2015 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include -#include -#include -#include "common/assert.h" -#include "common/logging/log.h" -#include "common/microprofile.h" -#include "video_core/renderer_opengl/gl_state.h" - -MICROPROFILE_DEFINE(OpenGL_State, "OpenGL", "State Change", MP_RGB(192, 128, 128)); - -namespace OpenGL { - -using Maxwell = Tegra::Engines::Maxwell3D::Regs; - -OpenGLState OpenGLState::cur_state; - -namespace { - -template -bool UpdateValue(T& current_value, const T new_value) { - const bool changed = current_value != new_value; - current_value = new_value; - return changed; -} - -template -bool UpdateTie(T1 current_value, const T2 new_value) { - const bool changed = current_value != new_value; - current_value = new_value; - return changed; -} - -template -std::optional> UpdateArray(T& current_values, const T& new_values) { - std::optional first; - std::size_t last; - for (std::size_t i = 0; i < std::size(current_values); ++i) { - if (!UpdateValue(current_values[i], new_values[i])) { - continue; - } - if (!first) { - first = i; - } - last = i; - } - if (!first) { - return std::nullopt; - } - return std::make_pair(static_cast(*first), static_cast(last - *first + 1)); -} - -void Enable(GLenum cap, bool enable) { - if (enable) { - glEnable(cap); - } else { - glDisable(cap); - } -} - -void Enable(GLenum cap, GLuint index, bool enable) { - if (enable) { - glEnablei(cap, index); - } else { - glDisablei(cap, index); - } -} - -void Enable(GLenum cap, bool& current_value, bool new_value) { - if (UpdateValue(current_value, new_value)) { - Enable(cap, new_value); - } -} - -void Enable(GLenum cap, GLuint index, bool& current_value, bool new_value) { - if (UpdateValue(current_value, new_value)) { - Enable(cap, index, new_value); - } -} - -} // Anonymous namespace - -OpenGLState::OpenGLState() = default; - -void OpenGLState::Apply() {} - -} // namespace OpenGL -- cgit v1.2.3