From 453543fb882c2465b771b32baa204a1c085e0ea1 Mon Sep 17 00:00:00 2001
From: gdkchan <gab.dark.100@gmail.com>
Date: Wed, 14 Nov 2018 19:50:31 -0200
Subject: [PATCH] Initialize blend registers with default values (#497)

---
 Ryujinx.Graphics/Gal/GalPipelineState.cs |  4 ++--
 Ryujinx.Graphics/NvGpuEngine3d.cs        | 10 ++++++++++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/Ryujinx.Graphics/Gal/GalPipelineState.cs b/Ryujinx.Graphics/Gal/GalPipelineState.cs
index 793fb395b..8630da9cc 100644
--- a/Ryujinx.Graphics/Gal/GalPipelineState.cs
+++ b/Ryujinx.Graphics/Gal/GalPipelineState.cs
@@ -24,10 +24,10 @@
         {
             Enabled       = false,
             SeparateAlpha = false,
-            EquationRgb   = 0,
+            EquationRgb   = GalBlendEquation.FuncAdd,
             FuncSrcRgb    = GalBlendFactor.One,
             FuncDstRgb    = GalBlendFactor.Zero,
-            EquationAlpha = 0,
+            EquationAlpha = GalBlendEquation.FuncAdd,
             FuncSrcAlpha  = GalBlendFactor.One,
             FuncDstAlpha  = GalBlendFactor.Zero
         };
diff --git a/Ryujinx.Graphics/NvGpuEngine3d.cs b/Ryujinx.Graphics/NvGpuEngine3d.cs
index f4a453472..0d748ce74 100644
--- a/Ryujinx.Graphics/NvGpuEngine3d.cs
+++ b/Ryujinx.Graphics/NvGpuEngine3d.cs
@@ -69,6 +69,16 @@ namespace Ryujinx.Graphics
             //Ensure that all components are enabled by default.
             //FIXME: Is this correct?
             WriteRegister(NvGpuEngine3dReg.ColorMaskN, 0x1111);
+
+            for (int Index = 0; Index < GalPipelineState.RenderTargetsCount; Index++)
+            {
+                WriteRegister(NvGpuEngine3dReg.IBlendNEquationRgb   + Index * 8, (int)GalBlendEquation.FuncAdd);
+                WriteRegister(NvGpuEngine3dReg.IBlendNFuncSrcRgb    + Index * 8, (int)GalBlendFactor.One);
+                WriteRegister(NvGpuEngine3dReg.IBlendNFuncDstRgb    + Index * 8, (int)GalBlendFactor.Zero);
+                WriteRegister(NvGpuEngine3dReg.IBlendNEquationAlpha + Index * 8, (int)GalBlendEquation.FuncAdd);
+                WriteRegister(NvGpuEngine3dReg.IBlendNFuncSrcAlpha  + Index * 8, (int)GalBlendFactor.One);
+                WriteRegister(NvGpuEngine3dReg.IBlendNFuncDstAlpha  + Index * 8, (int)GalBlendFactor.Zero);
+            }
         }
 
         public void CallMethod(NvGpuVmm Vmm, NvGpuPBEntry PBEntry)