aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Vulkan/PipelineConverter.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Graphics.Vulkan/PipelineConverter.cs')
-rw-r--r--Ryujinx.Graphics.Vulkan/PipelineConverter.cs26
1 files changed, 17 insertions, 9 deletions
diff --git a/Ryujinx.Graphics.Vulkan/PipelineConverter.cs b/Ryujinx.Graphics.Vulkan/PipelineConverter.cs
index 3ff111e8..477d0cec 100644
--- a/Ryujinx.Graphics.Vulkan/PipelineConverter.cs
+++ b/Ryujinx.Graphics.Vulkan/PipelineConverter.cs
@@ -257,15 +257,23 @@ namespace Ryujinx.Graphics.Vulkan
{
var blend = state.BlendDescriptors[i];
- pipeline.Internal.ColorBlendAttachmentState[i] = new PipelineColorBlendAttachmentState(
- blend.Enable,
- blend.ColorSrcFactor.Convert(),
- blend.ColorDstFactor.Convert(),
- blend.ColorOp.Convert(),
- blend.AlphaSrcFactor.Convert(),
- blend.AlphaDstFactor.Convert(),
- blend.AlphaOp.Convert(),
- (ColorComponentFlags)state.ColorWriteMask[i]);
+ if (blend.Enable && state.ColorWriteMask[i] != 0)
+ {
+ pipeline.Internal.ColorBlendAttachmentState[i] = new PipelineColorBlendAttachmentState(
+ blend.Enable,
+ blend.ColorSrcFactor.Convert(),
+ blend.ColorDstFactor.Convert(),
+ blend.ColorOp.Convert(),
+ blend.AlphaSrcFactor.Convert(),
+ blend.AlphaDstFactor.Convert(),
+ blend.AlphaOp.Convert(),
+ (ColorComponentFlags)state.ColorWriteMask[i]);
+ }
+ else
+ {
+ pipeline.Internal.ColorBlendAttachmentState[i] = new PipelineColorBlendAttachmentState(
+ colorWriteMask: (ColorComponentFlags)state.ColorWriteMask[i]);
+ }
}
int maxAttachmentIndex = 0;