mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-28 19:58:53 +00:00
VideoCommon: Always use fbfetch in ubershaders if available
Reduce the number of different pipelines needed. Also works around drivers that break when you combine fbfetch with dual source blending
This commit is contained in:
parent
6ab24e6c17
commit
991024173e
2 changed files with 30 additions and 29 deletions
|
@ -743,9 +743,17 @@ static GXUberPipelineUid ApplyDriverBugs(const GXUberPipelineUid& in)
|
|||
{
|
||||
GXUberPipelineUid out;
|
||||
memcpy(&out, &in, sizeof(out)); // Copy padding
|
||||
if (!g_ActiveConfig.backend_info.bSupportsDualSourceBlend ||
|
||||
(DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING) &&
|
||||
!out.blending_state.RequiresDualSrc()))
|
||||
if (g_ActiveConfig.backend_info.bSupportsFramebufferFetch)
|
||||
{
|
||||
// Always blend in shader
|
||||
out.blending_state.hex = 0;
|
||||
out.blending_state.colorupdate = in.blending_state.colorupdate.Value();
|
||||
out.blending_state.alphaupdate = in.blending_state.alphaupdate.Value();
|
||||
out.ps_uid.GetUidData()->no_dual_src = true;
|
||||
}
|
||||
else if (!g_ActiveConfig.backend_info.bSupportsDualSourceBlend ||
|
||||
(DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING) &&
|
||||
!out.blending_state.RequiresDualSrc()))
|
||||
{
|
||||
out.blending_state.usedualsrc = false;
|
||||
out.ps_uid.GetUidData()->no_dual_src = true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue