Project

General

Profile

Actions

Emulator Issues #9373

closed

Depth issues on Mario Kart Double Dash

Added by kemenaran over 8 years ago. Updated about 2 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Game Name?

Mario Kart Double Dash!

Game ID? (right click the game in the game list, properties, info tab)

GM4E01

MD5 Hash? (right click the game in the game list, properties, info tab, MD5 Hash: Compute)

97f9ebc39ab4244e419848793988561a

What's the problem? Describe what went wrong.

The game displays depth issues in several places (see attached screenshots and fifolog):

  • The two characters on the cart are showing one through each others,
  • Some parts of the circuit background are showing through foreground elements,
  • Some parts of the circuit are not visible at all.

What steps will reproduce the problem?

  • Run Mario Kart Double Dash
  • Start a Time Trial on Baby Park

Other circuits are also affected, but this one is the most visible.

Which versions of Dolphin did you test on? Does using an older version of Dolphin solve your issue? If yes, which versions of Dolphin used to work?

  • Tested on 4.0-8987 (which includes the FastDepth removal, but the issue existed before).
  • Used to work properly on Dolphin 3.5-something (it has been broken since the GLSL rewrite).

Note that the PR "VertexShaderGen: Add a depth bias for large far values." (https://github.com/dolphin-emu/dolphin/pull/3587) fixes some of these issues – but not all of them (see attached screenshot).

What are your PC specifications? (CPU, GPU, Operating System, more)

  • Macbook Pro on OS X
  • Intel Core i7 2.8 GHz
  • Intel Iris 1536 Mo
  • 8 Go 1600 MHz DDR3

This occurs only on OS X with the OpenGL renderer. The same machine on Windows with the OpenGL rendered displays fine.

Is there any other relevant information? (e.g. logs, screenshots,
configuration files)

The screenshot are made with the default ForcedSlowDepth value – but anyway forcing slow depth doesn't have any effect.


Files

MKDD-intelhd-opengl.dff (3.74 MB) MKDD-intelhd-opengl.dff Fifolog kemenaran, 02/24/2016 05:40 PM
MKDD-intelhd-opengl-windows.png (1.76 MB) MKDD-intelhd-opengl-windows.png Reference rendering on Windows/OpenGL kemenaran, 02/24/2016 05:41 PM
MKDD-intelhd-opengl-mac-8987.png (1.54 MB) MKDD-intelhd-opengl-mac-8987.png Incorrect rendering on OSX/OpenGL (on the same machine) kemenaran, 02/24/2016 05:42 PM
MKDD-intelhd-opengl-mac-Armada651-depth-bias.png (1.88 MB) MKDD-intelhd-opengl-mac-Armada651-depth-bias.png Less-incorrect rendering on OSX/OpenGL (using the Armada651:depth-bias branch ; PR 3587) kemenaran, 02/24/2016 05:42 PM
MKDD - Baby Park - depth issues.dff.zip (2.05 MB) MKDD - Baby Park - depth issues.dff.zip Baby Park FIFO log kemenaran, 05/22/2017 06:47 AM
MKDD - Baby Park - depth issues.jpg (299 KB) MKDD - Baby Park - depth issues.jpg Baby Park screenshot kemenaran, 05/22/2017 06:47 AM
MKDD - Dino jungle - depth issues.jpg (300 KB) MKDD - Dino jungle - depth issues.jpg Dino Jungle screenshot kemenaran, 05/22/2017 06:48 AM
MKDD - Dino jungle - depth issues.dff.zip (2.05 MB) MKDD - Dino jungle - depth issues.dff.zip Dino Jungle FIFO log kemenaran, 05/22/2017 06:48 AM
GM4E01-1.png (1.2 MB) GM4E01-1.png Using dual-source blending fallback for destination alpha, pre-4677 ligfx, 09/08/2017 01:10 AM
GM4E01-2.png (527 KB) GM4E01-2.png No dual-source blending for destination alpha, master ligfx, 09/08/2017 01:12 AM
Actions #1

Updated by JMC4789 over 8 years ago

  • Assignee set to Armada

Ah OSX and its terrible horrible drivers that suck.

Actions #2

Updated by kemenaran over 8 years ago

I know :/ I've been sitting on this issue for months, because it cleary looks like one of these horrible drivers issues that have to be worken around. Eventually I thought it might be worth being reported anyway :)

Actions #3

Updated by JMC4789 over 8 years ago

Weeeeeeeell, I could just tell you to use the software renderer, get a real graphics card, or use a better OS that has good GPU drivers.

Dolphin has no obligation to fix it and may never fix it if it compromises some other part of the emulator. Despite what I said viewpoint, I'm absolutely glad that you reported the issue; we need to know this kind of stuff in case there is an easy work-around or something.

Luckily for everyone, I don't make that decision myself and pinged Armada who did that other PR. There's also the potential that endrift could come up with a fix.

Actions #4

Updated by JMC4789 over 8 years ago

So, instead of being an asshole and complaining about video drivers, I'm going to put the fifolog up on fifoci so we can figure out what's going on, and maybe send a test case in to try and get this fixed. There's obviously something weird going on.

Actions #5

Updated by kemenaran about 8 years ago

For what is worth, this is still present with Armada's latests depth-related PR (https://github.com/dolphin-emu/dolphin/pull/4085, https://github.com/dolphin-emu/dolphin/pull/4139).

I recorded a video that demonstrates the issue (Dolphin 5.0 438, Fast-Depth enabled) : https://youtu.be/OFgExeypegg

Still looks like a driver bug anyway ¯_(ツ)_/¯

Actions #6

Updated by ligfx over 7 years ago

Other levels with very visible problems are Wario Colosseum (the swamp water at the bottom of the level appears in front of everything), Bowser's Castle (moat appears in front of everything, props are missing), Dino Dino Jungle (the entire jungle to the right of the race course is missing), and Rainbow Road (super broken).

This is still present on master (1c9d11c0e9a6559d4bb449e7a484f5de91271dbb). Does anyone with knowledge of the graphics pipeline have any clues on where to start looking, if someone wanted to fix this?

Actions #7

Updated by Armada over 7 years ago

If you capture a FIFO log I can take a look at it and fix it.

Updated by kemenaran over 7 years ago

@Armada here are two FIFO logs, of two different MK:DD tracks where the problem is visible.

In Baby Park elements of the background (like the ferris wheel) are on top of the foreground (especially the "Mario Kart" starting line banner).

In Dino Jungle an entire portion of the jungle is missing: it starts to be visible only on the left of the screen, but is missing on the right.

Logs and screenshots made with Dolphin 5.0-3831, with fast-depth enabled.

Actions #9

Updated by Armada over 7 years ago

I thought ligfx was implying that this issue wasn't just on MacOS. There's not a lot of room to implement workarounds for bugged drivers, so you'll have to turn off fast depth on MacOS.

Actions #10

Updated by Armada over 7 years ago

Also note that this only happens on the Intel driver. I have a macbook with an Nvidia GPU that works fine.

Actions #11

Updated by ligfx over 7 years ago

Ah, nope, it's just a macOS Intel problem.

It's not a fast-depth bug though—the same problems appear regardless of whether Fast Depth is enabled or disabled. Any idea where the problem might be?

Actions #12

Updated by Armada over 7 years ago

Even if fast depth doesn't fix it, the problem is still the Intel drivers, this isn't going to get fixed any time soon.

Actions #13

Updated by ligfx about 7 years ago

This should be merged into #10072 "Dual source blending fallback removed - graphical problems on mobile devices in Mario Kart: Double Dash, Resident Evil 4 and more," and that should be updated to cover mobile devices + the shitty macOS Intel driver.

Actions #14

Updated by JosJuice about 7 years ago

Are you sure? This problem looks different visually, and it started happening before we removed the dual source alpha blending fallback.

Actions #15

Updated by ligfx about 7 years ago

Hmm, that's what my old notes said, I'll check again.

Actions #16

Updated by ligfx about 7 years ago

Okay, I figured out what I meant.

Before #4677 (the removal of the dual-source blending fallback), this issue could be easily fixed by telling Dolphin that macOS doesn't support dual-source blending at all, causing it to use the fallback for destination alpha. I've attached a screenshot of that.

Actions #17

Updated by ligfx about 7 years ago

(Sorry for double-posting, I accidentally submitted the previous comment before I was ready.)

On modern Dolphin, disabling all dual-source blending makes it look like this:

Actions #18

Updated by kemenaran over 4 years ago

For what is worth, these depth issues can now be worked around by using the Vulkan backend on macOS.

(Tested on Dolphin 5.0-11830)

Actions #19

Updated by ZephyrSurfer over 3 years ago

There seems to be a PR for this

https://github.com/dolphin-emu/dolphin/pull/6219

Actions #20

Updated by JMC4789 about 2 years ago

  • Status changed from New to Fixed
  • Assignee deleted (Armada)

I believe this can be closed now with modern builds and backends.

Actions

Also available in: Atom PDF