diff options
| author | 2018-11-22 08:44:05 -0800 | |
|---|---|---|
| committer | 2018-11-22 08:44:05 -0800 | |
| commit | 50d2abaaa943a43ced3a31bd19de868b6c9b34a7 (patch) | |
| tree | 58240cd456d8393067b6b702efcb3c11e4481db6 | |
| parent | Merge pull request #1765 from bunnei/multi-audout (diff) | |
| parent | maxwell_3d: Implement alternate blend equations. (diff) | |
| download | yuzu-50d2abaaa943a43ced3a31bd19de868b6c9b34a7.tar.gz yuzu-50d2abaaa943a43ced3a31bd19de868b6c9b34a7.tar.xz yuzu-50d2abaaa943a43ced3a31bd19de868b6c9b34a7.zip | |
Merge pull request #1775 from bunnei/blend-eq
maxwell_3d: Implement alternate blend equations.
| -rw-r--r-- | src/video_core/engines/maxwell_3d.h | 7 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/maxwell_to_gl.h | 5 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h index 9e480dc39..eff6abd55 100644 --- a/src/video_core/engines/maxwell_3d.h +++ b/src/video_core/engines/maxwell_3d.h | |||
| @@ -389,6 +389,13 @@ public: | |||
| 389 | ReverseSubtract = 3, | 389 | ReverseSubtract = 3, |
| 390 | Min = 4, | 390 | Min = 4, |
| 391 | Max = 5, | 391 | Max = 5, |
| 392 | |||
| 393 | // These values are used by Nouveau and some games. | ||
| 394 | AddGL = 0x8006, | ||
| 395 | SubtractGL = 0x8007, | ||
| 396 | ReverseSubtractGL = 0x8008, | ||
| 397 | MinGL = 0x800a, | ||
| 398 | MaxGL = 0x800b | ||
| 392 | }; | 399 | }; |
| 393 | 400 | ||
| 394 | enum class Factor : u32 { | 401 | enum class Factor : u32 { |
diff --git a/src/video_core/renderer_opengl/maxwell_to_gl.h b/src/video_core/renderer_opengl/maxwell_to_gl.h index 065b3929c..a8833c06e 100644 --- a/src/video_core/renderer_opengl/maxwell_to_gl.h +++ b/src/video_core/renderer_opengl/maxwell_to_gl.h | |||
| @@ -218,14 +218,19 @@ inline GLenum DepthCompareFunc(Tegra::Texture::DepthCompareFunc func) { | |||
| 218 | inline GLenum BlendEquation(Maxwell::Blend::Equation equation) { | 218 | inline GLenum BlendEquation(Maxwell::Blend::Equation equation) { |
| 219 | switch (equation) { | 219 | switch (equation) { |
| 220 | case Maxwell::Blend::Equation::Add: | 220 | case Maxwell::Blend::Equation::Add: |
| 221 | case Maxwell::Blend::Equation::AddGL: | ||
| 221 | return GL_FUNC_ADD; | 222 | return GL_FUNC_ADD; |
| 222 | case Maxwell::Blend::Equation::Subtract: | 223 | case Maxwell::Blend::Equation::Subtract: |
| 224 | case Maxwell::Blend::Equation::SubtractGL: | ||
| 223 | return GL_FUNC_SUBTRACT; | 225 | return GL_FUNC_SUBTRACT; |
| 224 | case Maxwell::Blend::Equation::ReverseSubtract: | 226 | case Maxwell::Blend::Equation::ReverseSubtract: |
| 227 | case Maxwell::Blend::Equation::ReverseSubtractGL: | ||
| 225 | return GL_FUNC_REVERSE_SUBTRACT; | 228 | return GL_FUNC_REVERSE_SUBTRACT; |
| 226 | case Maxwell::Blend::Equation::Min: | 229 | case Maxwell::Blend::Equation::Min: |
| 230 | case Maxwell::Blend::Equation::MinGL: | ||
| 227 | return GL_MIN; | 231 | return GL_MIN; |
| 228 | case Maxwell::Blend::Equation::Max: | 232 | case Maxwell::Blend::Equation::Max: |
| 233 | case Maxwell::Blend::Equation::MaxGL: | ||
| 229 | return GL_MAX; | 234 | return GL_MAX; |
| 230 | } | 235 | } |
| 231 | LOG_ERROR(Render_OpenGL, "Unimplemented blend equation={}", static_cast<u32>(equation)); | 236 | LOG_ERROR(Render_OpenGL, "Unimplemented blend equation={}", static_cast<u32>(equation)); |