diff options
| author | 2016-11-27 13:57:31 -0800 | |
|---|---|---|
| committer | 2016-11-27 13:57:31 -0800 | |
| commit | 77b7cec8afcaf9c267c8dbae49e123d980a32e73 (patch) | |
| tree | b8952ee6c0ab6b8ef94fe2bbd32285554d60ca59 | |
| parent | Merge pull request #2168 from mailwl/mic (diff) | |
| parent | RasterizerGL: Use GL_TRUE and 0xFF in the stencil and depth masks instead of ... (diff) | |
| download | yuzu-77b7cec8afcaf9c267c8dbae49e123d980a32e73.tar.gz yuzu-77b7cec8afcaf9c267c8dbae49e123d980a32e73.tar.xz yuzu-77b7cec8afcaf9c267c8dbae49e123d980a32e73.zip | |
Merge pull request #2218 from Subv/stencil_lines
Rasterizer/Memfill: Set the correct stencil write mask when clearing the stencil buffer.
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 6 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_state.cpp | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 7cc3b407a..d4d5903ce 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -893,7 +893,7 @@ bool RasterizerOpenGL::AccelerateFill(const GPU::Regs::MemoryFillConfig& config) | |||
| 893 | value_float = config.value_32bit / 16777215.0f; // 2^24 - 1 | 893 | value_float = config.value_32bit / 16777215.0f; // 2^24 - 1 |
| 894 | } | 894 | } |
| 895 | 895 | ||
| 896 | cur_state.depth.write_mask = true; | 896 | cur_state.depth.write_mask = GL_TRUE; |
| 897 | cur_state.Apply(); | 897 | cur_state.Apply(); |
| 898 | glClearBufferfv(GL_DEPTH, 0, &value_float); | 898 | glClearBufferfv(GL_DEPTH, 0, &value_float); |
| 899 | } else if (dst_type == SurfaceType::DepthStencil) { | 899 | } else if (dst_type == SurfaceType::DepthStencil) { |
| @@ -908,8 +908,8 @@ bool RasterizerOpenGL::AccelerateFill(const GPU::Regs::MemoryFillConfig& config) | |||
| 908 | GLfloat value_float = (config.value_32bit & 0xFFFFFF) / 16777215.0f; // 2^24 - 1 | 908 | GLfloat value_float = (config.value_32bit & 0xFFFFFF) / 16777215.0f; // 2^24 - 1 |
| 909 | GLint value_int = (config.value_32bit >> 24); | 909 | GLint value_int = (config.value_32bit >> 24); |
| 910 | 910 | ||
| 911 | cur_state.depth.write_mask = true; | 911 | cur_state.depth.write_mask = GL_TRUE; |
| 912 | cur_state.stencil.write_mask = true; | 912 | cur_state.stencil.write_mask = 0xFF; |
| 913 | cur_state.Apply(); | 913 | cur_state.Apply(); |
| 914 | glClearBufferfi(GL_DEPTH_STENCIL, 0, value_float, value_int); | 914 | glClearBufferfi(GL_DEPTH_STENCIL, 0, value_float, value_int); |
| 915 | } | 915 | } |
diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index ed84cadea..2a731f483 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp | |||
| @@ -27,8 +27,8 @@ OpenGLState::OpenGLState() { | |||
| 27 | stencil.test_enabled = false; | 27 | stencil.test_enabled = false; |
| 28 | stencil.test_func = GL_ALWAYS; | 28 | stencil.test_func = GL_ALWAYS; |
| 29 | stencil.test_ref = 0; | 29 | stencil.test_ref = 0; |
| 30 | stencil.test_mask = -1; | 30 | stencil.test_mask = 0xFF; |
| 31 | stencil.write_mask = -1; | 31 | stencil.write_mask = 0xFF; |
| 32 | stencil.action_depth_fail = GL_KEEP; | 32 | stencil.action_depth_fail = GL_KEEP; |
| 33 | stencil.action_depth_pass = GL_KEEP; | 33 | stencil.action_depth_pass = GL_KEEP; |
| 34 | stencil.action_stencil_fail = GL_KEEP; | 34 | stencil.action_stencil_fail = GL_KEEP; |