Emulator Issues #7244
closedIssues with Iris Pro 5200 GPU
0%
Description
Game Name?
These issues are most apparent in Mario Kart: Double Dash!! and Zelda: Skyward Sword
Game ID?
Double Dash - GM4E01
Skyward Sword - SOUE01
What's the problem? Describe what went wrong in few words.
I'm currently using a dual-gpu Macbook Pro. When using the integrated Iris Pro are opposed to the also included dedicated Nvidia GeForce GT 750M, frame-rates are higher in almost every game, but some games have visual issues with objects that should be located behind others showing through even when using identical graphics settings. The issue becomes unapparent with you disable destination alpha, but this generally causes other issues. I will link to screenshots.
What did you expect to happen instead?
I expected the visuals to be the same as the slower but functioning 750M.
What steps will reproduce the problem?
- Use gfxCardStatus or a similar program to force an Iris Pro 5200 GPU in Mac.
- Open a game such as Double Dash or Skyward Sword
- Play the game. Issues become almost immediately apparent.
Which versions of Dolphin did you test on?
4.0-1487 is the newest but these issues have been present in versions before this. The issues have been present since at least the 4.0 release.
Does using an older version of Dolphin solve your issue? If yes, which
versions of Dolphin used to work?
This issue is not present in Dolphin 3.5.
What are your PC specifications? (including, but not limited to: Operating
System, CPU and GPU)
OS - Mac OS X 10.9.3 Developer Preview but this bug has been present in 10.9.1 and 10.9.2 as well.
CPU - Intel Core i7-4960HQ 2.6GHz
RAM - 16GB 1600MHz DDR3
iGPU - Intel Iris Pro 5200 1536MB
dGPU - Nvidia GeForce GT 2048MB
Are you using the 32 or the 64 bit version of Dolphin?
64bit
Is there any other relevant information? (e.g. logs, screenshots,
configuration files)
https://imgur.com/a/d1JMf
The titles tell what setup was used. The ones with oddities are the Iris shots and the ones without are the 750M.
Updated by JMC4789 over 10 years ago
- Status changed from New to Accepted
- Category set to gfx
- Operating system OS X added
This is a really well written report, with good documentations, explanations and proper testing. Dolphin lacks OSX devs, and the OSX drivers are particularly derpy to begin with when it comes to graphics stuff. Hopefully someone takes a look at this to see what's going on.
Thanks for your report.
Updated by degasus over 10 years ago
This sounds like DualSourceBlend is broken on your driver. Are you able to compile dolphin on yourself or do you want me to compile an osx build?
If so, try to change this line:
https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/VideoBackends/OGL/Render.cpp#L478
g_Config.backend_info.bSupportsDualSourceBlend = GLExtensions::Supports("GL_ARB_blend_func_extended");
into:
g_Config.backend_info.bSupportsDualSourceBlend = false;
Updated by deaton.dg over 10 years ago
Changing that line and recompiling Dolphin does fix the issue. DualSourceBlend must be the problem. Is this something Apple must fix or is the issue with it located in Dolphin’s implementation of DualSourceBlend? Also, thanks so much for helping.
On April 28, 2014 at 11:20:02 AM, dolphin-emu@googlecode.com (dolphin-emu@googlecode.com) wrote:
Updated by degasus over 10 years ago
I think this is an osx driver issue as it works fine on other gpus. This is also an uncommon gl feature ( ARB_blend_func_extended ), so it's likely not tested well :/
Updated by deaton.dg over 10 years ago
In that case, I might try to contact Apple about it. Apple has been focusing on graphics drivers in recent 10.9 betas. Hopefully they'll do something about it, but I somehow doubt it.
Updated by delroth over 10 years ago
Any way to make a simple test case for it and submit a radar so it hopefully gets fixed?
Updated by deaton.dg over 10 years ago
Sadly, I don’t have enough understanding of this feature to make a test case; however, I’m going to submit a radar and try to get one of my buddies who has an Iris Pro 5200 in a Mac and understands OpenGL far better than I do to build something and have him submit it too. Or if someone else wants to build something and attach it, it’s all the same to me.
On April 28, 2014 at 12:05:23 PM, dolphin-emu@googlecode.com (dolphin-emu@googlecode.com) wrote:
Updated by degasus over 10 years ago
It's hard to write a test case without knowing what exactly is broken. We only know which extension doesn't work correct.
Do you want to check the output with my last proposed hotfix and this line:
https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/VideoCommon/PixelShaderGen.cpp#L519
out.Write("\tocol0 = float4(prev) / 255.0;\n");
replaced with:
out.Write("\tocol0 = float4(prev) * 0.0;\n");
As you've said lots of polygons aren't shown at all, I guess the second chanel ist just striped out. So if you'll get the same broken rendering with both patches, we know what's wrong :)
Updated by deaton.dg over 10 years ago
This change resulted in a completely black render window with all games both with and without the previous hotfix using the Iris GPU. I just now realized after deleting the broken builds that I should have tested with the Nvidia card, so I will compile them again and test with that.
On April 29, 2014 at 2:25:40 PM, dolphin-emu@googlecode.com (dolphin-emu@googlecode.com) wrote:
Updated by deaton.dg over 10 years ago
Using the Nvidia card gave the same black render window as the Iris Pro unless I’m doing something wrong. I wouldn’t put it past me, but I think I applied the change right.
On April 29, 2014 at 2:25:40 PM, dolphin-emu@googlecode.com (dolphin-emu@googlecode.com) wrote:
Updated by degasus over 10 years ago
My bad, wrong replace:
out.Write("\tocol0 = float4(prev.rgb, 0.0) / 255.0;\n");
Updated by deaton.dg over 10 years ago
Before I compile, I’m not finding
out.Write("\tocol0 = float4(prev.rgb, 0.0) / 255.0;\n”);
in Source/Core/VideoCommon/PixelShaderGen.cpp. Is that the line I replace
out.Write("\tocol0 = float4(prev) / 255.0;\n”);
with? So do I replace
out.Write("\tocol0 = float4(prev.rgb, 0.0) / 255.0;\n”);
with
out.Write("\tocol0 = float4(prev) * 0.0;\n”);
Or do I replace
out.Write("\tocol0 = float4(prev) / 255.0;\n”);
with
out.Write("\tocol0 = float4(prev.rgb, 0.0) / 255.0;\n”);
?
On April 29, 2014 at 3:23:41 PM, dolphin-emu@googlecode.com (dolphin-emu@googlecode.com) wrote:
Updated by degasus over 10 years ago
https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/VideoCommon/PixelShaderGen.cpp#L519
out.Write("\tocol0 = float4(prev) / 255.0;\n");
with
out.Write("\tocol0 = float4(prev.rgb, 0.0) / 255.0;\n");
Updated by deaton.dg over 10 years ago
Applying this patch causes similar but different graphics bugs on both graphics cards. The issues are far worse with most menus barely even rendering and making most games basically unplayable. These issues are far from the same, but are extremely similar in nature. The major difference is that after this patch, polygons don’t render at all, but without either patch, polygons just have things rendered in front of them, making them hidden when they shouldn’t be.
On April 29, 2014 at 3:35:25 PM, dolphin-emu@googlecode.com (dolphin-emu@googlecode.com) wrote:
Updated by degasus over 10 years ago
ok, let's try a weaker hack, so instead of any other changes, just replace this line:
https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/VideoCommon/PixelShaderGen.cpp#L529
out.Write("\tocol1 = float4(prev) / 255.0;\n");
with
out.Write("\tocol1 = float4(0.0, 0.0, 0.0, 0.0);\n");
Does the output of the nvidia gpu matches the intel now?
Updated by deaton.dg over 10 years ago
I just left the house for a small road trip, but I have my laptop. I forgot my external hard drive with Dolphin in it at home though, so I’m trying to download another copy of the source over 4G, but I don’t have the best speeds. I’ll try the new patch as soon as I can. Thanks so much for your help so far!
On April 29, 2014 at 4:00:49 PM, dolphin-emu@googlecode.com (dolphin-emu@googlecode.com) wrote:
Updated by magumagu9 over 10 years ago
Apple won't care how reduced the testcase is; you can just attach a copy of Dolphin and a fifolog to the bug report. Just make sure the reproduction steps work on a fresh install. Remember, the people looking at your report are going to be graphics driver developers; they won't want to deal with your source code anyway.
Updated by deaton.dg over 10 years ago
Applying that change appeared to have no change on the results from the original test. The Iris still has the issues and the Nvidia is still fine. As for the radar for Apple, I already submitted one that basically says what this thread does with the addition of some logs, a compiled copy of dolphin, a source copy, and better instructions for compiling. I hope it actually gets looked at.
On April 29, 2014 at 4:10:08 PM, dolphin-emu@googlecode.com (dolphin-emu@googlecode.com) wrote:
Updated by deaton.dg over 10 years ago
Yup. That was the only change I used. I'll try again and see what happens. Perhaps I made a mistake.
Updated by deaton.dg over 10 years ago
Actually, there are a couple minor differences. Certain effects such as explosions don’t render after applying that patch. I didn’t notice that the first time I played. The issues present in the Intel card, however, are still present, and they are still only present in said card.
On April 30, 2014 at 12:18:49 AM, dolphin-emu@googlecode.com (dolphin-emu@googlecode.com) wrote:
Updated by deaton.dg over 10 years ago
Don't worry about it! You've already helped more than enough! We'll just hope Apple looks at my radar. That's probably all we can do.
Updated by JMC4789 about 10 years ago
Did any of the driver updates fix your issues?
Updated by deaton.dg about 10 years ago
Unfortunately, no. The bugs are still present even in the latest version of Yosemite.
Updated by JMC4789 over 9 years ago
- Status changed from Accepted to Duplicate
I'm merging this into another issue. Thanks for your cooperation and help.