aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics/NvGpuEngine3d.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2018-10-25 18:30:09 -0300
committerGitHub <noreply@github.com>2018-10-25 18:30:09 -0300
commitf0a49a1c94c74886f4cfb35c35d7deec82f6bd8f (patch)
tree6bdd103005b7a551b99ea4bd2b7bbf75536e39ce /Ryujinx.Graphics/NvGpuEngine3d.cs
parent2fd23577cea09a1c270678109ec728026df1cfda (diff)
Fix Color Mask values (#473)
* Fix color mask common, set default value on first color mask register * Missing check * Better exception messages * Address PR feedback * Add fixme as per review feedback
Diffstat (limited to 'Ryujinx.Graphics/NvGpuEngine3d.cs')
-rw-r--r--Ryujinx.Graphics/NvGpuEngine3d.cs13
1 files changed, 7 insertions, 6 deletions
diff --git a/Ryujinx.Graphics/NvGpuEngine3d.cs b/Ryujinx.Graphics/NvGpuEngine3d.cs
index e8ded889..7d2b2b43 100644
--- a/Ryujinx.Graphics/NvGpuEngine3d.cs
+++ b/Ryujinx.Graphics/NvGpuEngine3d.cs
@@ -64,6 +64,10 @@ namespace Ryujinx.Graphics
{
UploadedKeys[i] = new List<long>();
}
+
+ //Ensure that all components are enabled by default.
+ //FIXME: Is this correct?
+ WriteRegister(NvGpuEngine3dReg.ColorMaskN, 0x1111);
}
public void CallMethod(NvGpuVmm Vmm, NvGpuPBEntry PBEntry)
@@ -420,16 +424,13 @@ namespace Ryujinx.Graphics
private void SetColorMask(GalPipelineState State)
{
- int ColorMask = ReadRegister(NvGpuEngine3dReg.ColorMask);
+ bool ColorMaskCommon = ReadRegisterBool(NvGpuEngine3dReg.ColorMaskCommon);
- State.ColorMask.Red = ((ColorMask >> 0) & 0xf) != 0;
- State.ColorMask.Green = ((ColorMask >> 4) & 0xf) != 0;
- State.ColorMask.Blue = ((ColorMask >> 8) & 0xf) != 0;
- State.ColorMask.Alpha = ((ColorMask >> 12) & 0xf) != 0;
+ State.ColorMaskCommon = ColorMaskCommon;
for (int Index = 0; Index < GalPipelineState.RenderTargetsCount; Index++)
{
- ColorMask = ReadRegister(NvGpuEngine3dReg.ColorMaskN + Index);
+ int ColorMask = ReadRegister(NvGpuEngine3dReg.ColorMaskN + (ColorMaskCommon ? 0 : Index));
State.ColorMasks[Index].Red = ((ColorMask >> 0) & 0xf) != 0;
State.ColorMasks[Index].Green = ((ColorMask >> 4) & 0xf) != 0;