Merge pull request #11406 from Pokechu22/intel-less-dual-source

VideoCommon: Clear blend configuration if color/alpha update disabled
This commit is contained in:
Scott Mansell 2023-02-14 18:27:40 +13:00 committed by GitHub
commit ba3c38a63f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 16 additions and 0 deletions

View File

@ -180,6 +180,22 @@ void BlendingState::Generate(const BPMemory& bp)
}
}
}
// If we aren't writing color or alpha, don't blend it.
// Intel GPUs on D3D12 seem to have issues with dual-source blend if the second source is used in
// the blend state but not actually written (i.e. the alpha src or dst factor is src alpha, but
// alpha update is disabled). So, change the blending configuration to not use a dual-source
// factor. Note that in theory, disabling writing should render these irrelevant.
if (!colorupdate)
{
srcfactor = SrcBlendFactor::Zero;
dstfactor = DstBlendFactor::One;
}
if (!alphaupdate)
{
srcfactoralpha = SrcBlendFactor::Zero;
dstfactoralpha = DstBlendFactor::One;
}
}
void BlendingState::ApproximateLogicOpWithBlending()