diff options
author | gdkchan <gab.dark.100@gmail.com> | 2022-02-16 19:15:39 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-16 23:15:39 +0100 |
commit | 3bd357045f7581ee10d6c86ed8049bcebe35eda0 (patch) | |
tree | aa2d243843f2d31d3afa690f26352713ddac4349 /Ryujinx.Graphics.Shader/Translation/EmitterContext.cs | |
parent | ab5d77c0c4925955180dc51e9f289187ce6f2901 (diff) |
Do not allow render targets not explicitly written by the fragment shader to be modified (#3063)1.1.31
* Do not allow render targets not explicitly written by the fragment shader to be modified
* Shader cache version bump
* Remove blank lines
* Avoid redundant color mask updates
* HostShaderCacheEntry can be null
* Avoid more redundant glColorMask calls
* nit: Mask -> Masks
* Fix currentComponentMask
* More efficient way to update _currentComponentMasks
Diffstat (limited to 'Ryujinx.Graphics.Shader/Translation/EmitterContext.cs')
-rw-r--r-- | Ryujinx.Graphics.Shader/Translation/EmitterContext.cs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Ryujinx.Graphics.Shader/Translation/EmitterContext.cs b/Ryujinx.Graphics.Shader/Translation/EmitterContext.cs index 3dcb04ad..775f1217 100644 --- a/Ryujinx.Graphics.Shader/Translation/EmitterContext.cs +++ b/Ryujinx.Graphics.Shader/Translation/EmitterContext.cs @@ -172,11 +172,10 @@ namespace Ryujinx.Graphics.Shader.Translation for (int rtIndex = 0; rtIndex < 8; rtIndex++) { - OmapTarget target = Config.OmapTargets[rtIndex]; - for (int component = 0; component < 4; component++) { - if (!target.ComponentEnabled(component)) + bool componentEnabled = (Config.OmapTargets & (1 << (rtIndex * 4 + component))) != 0; + if (!componentEnabled) { continue; } @@ -210,7 +209,8 @@ namespace Ryujinx.Graphics.Shader.Translation } } - if (target.Enabled) + bool targetEnabled = (Config.OmapTargets & (0xf << (rtIndex * 4))) != 0; + if (targetEnabled) { Config.SetOutputUserAttribute(rtIndex, perPatch: false); regIndexBase += 4; |