mirror of
https://github.com/GreemDev/Ryujinx.git
synced 2025-01-23 21:44:56 +03:00
Fix blend state optimisation breaking attachments
Fixes SM3DW
This commit is contained in:
parent
29b6e8ac53
commit
d2f965885a
@ -390,11 +390,11 @@ namespace Ryujinx.Graphics.Metal
|
||||
{
|
||||
_currentState.StoredBlend[i] = mtlBlend;
|
||||
|
||||
mtlBlend = new ColorBlendStateUid();
|
||||
mtlBlend.Swap(new ColorBlendStateUid());
|
||||
}
|
||||
else if (mtlBlend.WriteMask == 0)
|
||||
{
|
||||
mtlBlend = _currentState.StoredBlend[i];
|
||||
mtlBlend.Swap(_currentState.StoredBlend[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -535,7 +535,7 @@ namespace Ryujinx.Graphics.Metal
|
||||
{
|
||||
_currentState.StoredBlend[index] = blendState;
|
||||
|
||||
blendState = new ColorBlendStateUid();
|
||||
blendState.Swap(new ColorBlendStateUid());
|
||||
}
|
||||
|
||||
_currentState.BlendColor = blend.BlendConstant;
|
||||
|
@ -111,6 +111,14 @@ namespace Ryujinx.Graphics.Metal
|
||||
readonly get => ((Id0 >> 63) & 0x1) != 0UL;
|
||||
set => Id0 = (Id0 & 0x7FFFFFFFFFFFFFFF) | ((value ? 1UL : 0UL) << 63);
|
||||
}
|
||||
|
||||
public void Swap(ColorBlendStateUid uid)
|
||||
{
|
||||
var format = PixelFormat;
|
||||
|
||||
this = uid;
|
||||
PixelFormat = format;
|
||||
}
|
||||
}
|
||||
|
||||
[SupportedOSPlatform("macos")]
|
||||
|
Loading…
Reference in New Issue
Block a user