This commit is contained in:
sunshineinabox 2024-05-22 22:05:01 -07:00
commit 1dd93ffce2
2 changed files with 7 additions and 7 deletions

View file

@ -1021,14 +1021,18 @@ namespace Ryujinx.Graphics.Vulkan
_newState.LogicOp = op.Convert(); _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) if (Gd.ExtendedDynamicState3Features.ExtendedDynamicState3LogicOpEnable)
{ {
DynamicState.SetLogicOpEnable(enable); DynamicState.SetLogicOpEnable(logicOpEnable);
} }
else else
{ {
_newState.LogicOpEnable = enable; _newState.LogicOpEnable = logicOpEnable;
} }
SignalStateChange(); SignalStateChange();

View file

@ -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 var colorBlendState = new PipelineColorBlendStateCreateInfo
{ {
SType = StructureType.PipelineColorBlendStateCreateInfo, SType = StructureType.PipelineColorBlendStateCreateInfo,
@ -588,7 +584,7 @@ namespace Ryujinx.Graphics.Vulkan
if (!gd.ExtendedDynamicState3Features.ExtendedDynamicState3LogicOpEnable) if (!gd.ExtendedDynamicState3Features.ExtendedDynamicState3LogicOpEnable)
{ {
colorBlendState.LogicOpEnable = logicOpEnable; colorBlendState.LogicOpEnable = LogicOpEnable;
} }
PipelineColorBlendAdvancedStateCreateInfoEXT colorBlendAdvancedState; PipelineColorBlendAdvancedStateCreateInfoEXT colorBlendAdvancedState;