Просмотр исходного кода

Initialize blend registers with default values (#497)

gdkchan 7 лет назад
Родитель
Сommit
453543fb88
2 измененных файлов с 12 добавлено и 2 удалено
  1. 2 2
      Ryujinx.Graphics/Gal/GalPipelineState.cs
  2. 10 0
      Ryujinx.Graphics/NvGpuEngine3d.cs

+ 2 - 2
Ryujinx.Graphics/Gal/GalPipelineState.cs

@@ -24,10 +24,10 @@
         {
         {
             Enabled       = false,
             Enabled       = false,
             SeparateAlpha = false,
             SeparateAlpha = false,
-            EquationRgb   = 0,
+            EquationRgb   = GalBlendEquation.FuncAdd,
             FuncSrcRgb    = GalBlendFactor.One,
             FuncSrcRgb    = GalBlendFactor.One,
             FuncDstRgb    = GalBlendFactor.Zero,
             FuncDstRgb    = GalBlendFactor.Zero,
-            EquationAlpha = 0,
+            EquationAlpha = GalBlendEquation.FuncAdd,
             FuncSrcAlpha  = GalBlendFactor.One,
             FuncSrcAlpha  = GalBlendFactor.One,
             FuncDstAlpha  = GalBlendFactor.Zero
             FuncDstAlpha  = GalBlendFactor.Zero
         };
         };

+ 10 - 0
Ryujinx.Graphics/NvGpuEngine3d.cs

@@ -69,6 +69,16 @@ namespace Ryujinx.Graphics
             //Ensure that all components are enabled by default.
             //Ensure that all components are enabled by default.
             //FIXME: Is this correct?
             //FIXME: Is this correct?
             WriteRegister(NvGpuEngine3dReg.ColorMaskN, 0x1111);
             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)
         public void CallMethod(NvGpuVmm Vmm, NvGpuPBEntry PBEntry)