diff options
| author | 2018-11-13 21:23:23 -0300 | |
|---|---|---|
| committer | 2018-11-17 19:59:33 -0300 | |
| commit | 1d60bb65447686f8e6acd947bab8a23f05be033d (patch) | |
| tree | d2fc1c4ca3fe17f0f27cac607e24e73ccd55935a /src | |
| parent | set default value for point size register (diff) | |
| download | yuzu-1d60bb65447686f8e6acd947bab8a23f05be033d.tar.gz yuzu-1d60bb65447686f8e6acd947bab8a23f05be033d.tar.xz yuzu-1d60bb65447686f8e6acd947bab8a23f05be033d.zip | |
set border color not depending on the wrap mode
only enable color mask for the first framebuffer id independent blending is disabled
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 0e55bee11..10d407bd2 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -777,15 +777,13 @@ void RasterizerOpenGL::SamplerInfo::SyncWithConfig(const Tegra::Texture::FullTex | |||
| 777 | MaxwellToGL::DepthCompareFunc(depth_compare_func)); | 777 | MaxwellToGL::DepthCompareFunc(depth_compare_func)); |
| 778 | } | 778 | } |
| 779 | 779 | ||
| 780 | if (wrap_u == Tegra::Texture::WrapMode::Border || wrap_v == Tegra::Texture::WrapMode::Border || | 780 | const GLvec4 new_border_color = {{config.border_color_r, config.border_color_g, |
| 781 | wrap_p == Tegra::Texture::WrapMode::Border) { | 781 | config.border_color_b, config.border_color_a}}; |
| 782 | const GLvec4 new_border_color = {{config.border_color_r, config.border_color_g, | 782 | if (border_color != new_border_color) { |
| 783 | config.border_color_b, config.border_color_a}}; | 783 | border_color = new_border_color; |
| 784 | if (border_color != new_border_color) { | 784 | glSamplerParameterfv(s, GL_TEXTURE_BORDER_COLOR, border_color.data()); |
| 785 | border_color = new_border_color; | ||
| 786 | glSamplerParameterfv(s, GL_TEXTURE_BORDER_COLOR, border_color.data()); | ||
| 787 | } | ||
| 788 | } | 785 | } |
| 786 | |||
| 789 | if (info.tic.use_header_opt_control == 0) { | 787 | if (info.tic.use_header_opt_control == 0) { |
| 790 | if (GLAD_GL_ARB_texture_filter_anisotropic) { | 788 | if (GLAD_GL_ARB_texture_filter_anisotropic) { |
| 791 | glSamplerParameterf(s, GL_TEXTURE_MAX_ANISOTROPY, | 789 | glSamplerParameterf(s, GL_TEXTURE_MAX_ANISOTROPY, |
| @@ -1022,7 +1020,9 @@ void RasterizerOpenGL::SyncStencilTestState() { | |||
| 1022 | 1020 | ||
| 1023 | void RasterizerOpenGL::SyncColorMask() { | 1021 | void RasterizerOpenGL::SyncColorMask() { |
| 1024 | const auto& regs = Core::System::GetInstance().GPU().Maxwell3D().regs; | 1022 | const auto& regs = Core::System::GetInstance().GPU().Maxwell3D().regs; |
| 1025 | for (size_t i = 0; i < Tegra::Engines::Maxwell3D::Regs::NumRenderTargets; i++) { | 1023 | size_t count = |
| 1024 | regs.independent_blend_enable ? Tegra::Engines::Maxwell3D::Regs::NumRenderTargets : 1; | ||
| 1025 | for (size_t i = 0; i < count; i++) { | ||
| 1026 | const auto& source = regs.color_mask[regs.color_mask_common ? 0 : i]; | 1026 | const auto& source = regs.color_mask[regs.color_mask_common ? 0 : i]; |
| 1027 | auto& dest = state.color_mask[i]; | 1027 | auto& dest = state.color_mask[i]; |
| 1028 | dest.red_enabled = (source.R == 0) ? GL_FALSE : GL_TRUE; | 1028 | dest.red_enabled = (source.R == 0) ? GL_FALSE : GL_TRUE; |