From 1dd93ffce20efbd83f481e6f286f1fd26a57002a Mon Sep 17 00:00:00 2001 From: sunshineinabox Date: Wed, 22 May 2024 22:05:01 -0700 Subject: [PATCH] Rebased --- src/Ryujinx.Graphics.Vulkan/PipelineBase.cs | 8 ++++++-- src/Ryujinx.Graphics.Vulkan/PipelineState.cs | 6 +----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs b/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs index 810b0c3b7b..34145ac8c0 100644 --- a/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs +++ b/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs @@ -1021,14 +1021,18 @@ namespace Ryujinx.Graphics.Vulkan _newState.LogicOp = op.Convert(); } + // AMD has a bug where it enables logical operations even for float formats, + // so we need to force disable them here. + bool logicOpEnable = enable && (Gd.Vendor != Vendor.Amd || _newState.Internal.LogicOpsAllowed); + if (Gd.ExtendedDynamicState3Features.ExtendedDynamicState3LogicOpEnable) { - DynamicState.SetLogicOpEnable(enable); + DynamicState.SetLogicOpEnable(logicOpEnable); } else { - _newState.LogicOpEnable = enable; + _newState.LogicOpEnable = logicOpEnable; } SignalStateChange(); diff --git a/src/Ryujinx.Graphics.Vulkan/PipelineState.cs b/src/Ryujinx.Graphics.Vulkan/PipelineState.cs index d70ca7df3d..4739bb7578 100644 --- a/src/Ryujinx.Graphics.Vulkan/PipelineState.cs +++ b/src/Ryujinx.Graphics.Vulkan/PipelineState.cs @@ -570,10 +570,6 @@ namespace Ryujinx.Graphics.Vulkan } } - // AMD has a bug where it enables logical operations even for float formats, - // so we need to force disable them here. - bool logicOpEnable = LogicOpEnable && (gd.Vendor != Vendor.Amd || Internal.LogicOpsAllowed); - var colorBlendState = new PipelineColorBlendStateCreateInfo { SType = StructureType.PipelineColorBlendStateCreateInfo, @@ -588,7 +584,7 @@ namespace Ryujinx.Graphics.Vulkan if (!gd.ExtendedDynamicState3Features.ExtendedDynamicState3LogicOpEnable) { - colorBlendState.LogicOpEnable = logicOpEnable; + colorBlendState.LogicOpEnable = LogicOpEnable; } PipelineColorBlendAdvancedStateCreateInfoEXT colorBlendAdvancedState;