summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-11-22 17:44:05 +0100
committerGitHub <noreply@github.com>2018-11-22 17:44:05 +0100
commit50d2abaaa943a43ced3a31bd19de868b6c9b34a7 (patch)
tree58240cd456d8393067b6b702efcb3c11e4481db6
parentMerge pull request #1765 from bunnei/multi-audout (diff)
parentmaxwell_3d: Implement alternate blend equations. (diff)
downloadyuzu-50d2abaaa943a43ced3a31bd19de868b6c9b34a7.tar
yuzu-50d2abaaa943a43ced3a31bd19de868b6c9b34a7.tar.gz
yuzu-50d2abaaa943a43ced3a31bd19de868b6c9b34a7.tar.bz2
yuzu-50d2abaaa943a43ced3a31bd19de868b6c9b34a7.tar.lz
yuzu-50d2abaaa943a43ced3a31bd19de868b6c9b34a7.tar.xz
yuzu-50d2abaaa943a43ced3a31bd19de868b6c9b34a7.tar.zst
yuzu-50d2abaaa943a43ced3a31bd19de868b6c9b34a7.zip
-rw-r--r--src/video_core/engines/maxwell_3d.h7
-rw-r--r--src/video_core/renderer_opengl/maxwell_to_gl.h5
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:
ReverseSubtract = 3,
Min = 4,
Max = 5,
+
+ // These values are used by Nouveau and some games.
+ AddGL = 0x8006,
+ SubtractGL = 0x8007,
+ ReverseSubtractGL = 0x8008,
+ MinGL = 0x800a,
+ MaxGL = 0x800b
};
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) {
inline GLenum BlendEquation(Maxwell::Blend::Equation equation) {
switch (equation) {
case Maxwell::Blend::Equation::Add:
+ case Maxwell::Blend::Equation::AddGL:
return GL_FUNC_ADD;
case Maxwell::Blend::Equation::Subtract:
+ case Maxwell::Blend::Equation::SubtractGL:
return GL_FUNC_SUBTRACT;
case Maxwell::Blend::Equation::ReverseSubtract:
+ case Maxwell::Blend::Equation::ReverseSubtractGL:
return GL_FUNC_REVERSE_SUBTRACT;
case Maxwell::Blend::Equation::Min:
+ case Maxwell::Blend::Equation::MinGL:
return GL_MIN;
case Maxwell::Blend::Equation::Max:
+ case Maxwell::Blend::Equation::MaxGL:
return GL_MAX;
}
LOG_ERROR(Render_OpenGL, "Unimplemented blend equation={}", static_cast<u32>(equation));