dolphin
dolphin copied to clipboard
PixelShaderGen: only use dual-source if bpmem requires dual-src blending
This fixes Issue 9373: Depth issues on Mario Kart Double Dash.
There seems to be some interaction between having ocol1
in the fragment shader and calling glBindFragDataLocationIndexed
: removing either one fixes the issue. Adding stronger dual source requirements to the fragment shader seemed like the cleaner option.
Before:
After:
Seems fine to me but @stenzek or @degasus should give it a second look.
This seems redundant, why not just add MacOS to the BUG_BROKEN_DUAL_SOURCE_BLENDING
in the driver details and update the description to make it more general?
always doing dual source blend was on purpose, as we want to use the color as blend factors with 24 bit accuracy and write the color with rgb565 accuracy.
Just tested this PR on macOS 10.12: I can confirm this fixes issue Issue 9373 (Depth issues on Mario Kart Double Dash), and similar depth issues on Mario Kart Wii.
@ligfx thank you so much for your work on this!
This can help my issue (dark blue filter overlay)?
Android 11 Vulkan Mali-G52
@Gamemulatorer No.