diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2018-10-25 18:30:09 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-10-25 18:30:09 -0300 |
| commit | f0a49a1c94c74886f4cfb35c35d7deec82f6bd8f (patch) | |
| tree | 6bdd103005b7a551b99ea4bd2b7bbf75536e39ce /Ryujinx.Graphics/NvGpuEngine3d.cs | |
| parent | 2fd23577cea09a1c270678109ec728026df1cfda (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.cs | 13 |
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; |
