Project

General

Profile

Actions

Emulator Issues #7548

closed

Water renders black in Super Mario Galaxy 1 with Intel HD and OGL

Added by hosode over 9 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?
Super Mario Galaxy 1

Game ID?
RMGP01

What's the problem? Describe what went wrong in few words.
Water in Loopdeeloop -galaxy renders black and non transparent, when Open GL -backend is chosen. There seems to be faulty reflections in the beginning of the course (the training section). This could not be confirmed by JMC, so I'd guess this is a problem with Intel HD drivers and their OpenGL-compatibility.

What did you expect to happen instead?
The water to render clear blue as it should, with all the fishes visible beneath the surface.

What steps will reproduce the problem?

  1. Choose OpenGL as graphics backend, and a computer with Intel HD GPU.
  2. Start Super Mario Galxy 1, and enter World 1, Loopdeeloop galaxy.
  3. Look at the water.

Dolphin 3.5 and 3.5-367 are old versions of Dolphin that have
known issues and bugs, so don't report issues about them and test the
latest Dolphin version first.
Which versions of Dolphin did you test on?
The latest (4.0-2448) and also something between 4.0-700 - latest, can't remember.

Does using an older version of Dolphin solve your issue? If yes, which
versions of Dolphin used to work?
Didn't bother to fork down (if it ever worked), but I can do it if this is considered important enough.

What are your PC specifications? (including, but not limited to: Operating
System, CPU and GPU)
Windows 8.1 64-bit, Intel i5-4670S, Intel HD 4600.

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

Screenshot: http://imgur.com/Y64hMKZ

1-frame Fifolog (shows just the timer and violet background on my Fifo-player..?): https://dl.dropboxusercontent.com/u/23618751/DolphinSMG1_OGLwIntelHDGlitch/SMG1_4.0-2362_OGL_IntelHD_1.zip

I've known the issue since March 2014, just confirmed that it's still there. This isn't a huge deal for me, since I use D3D, which seems to work almost perfect. So this report is for documentation, mainly, and I won't be surprised if this gets a Questionable and/or WontFix tag soon :)

But I am interested, if this bugs Linux-Intel-HD users, cause they don't have the D3D-option. Are there any Apple products that don't have separare GPU? They are maybe affected, too.

Actions #1

Updated by JMC4789 over 9 years ago

you should see if this worked in a build before 4.0-1288.

Actions #2

Updated by JMC4789 over 9 years ago

Also make sure you don't have disable destination alpha disabled.

Actions #3

Updated by pauldacheez over 9 years ago

s/disabled/checked. Just, y'know, keep that checkbox empty.

Actions #4

Updated by hosode over 9 years ago

I tested with older builds, first with 4.0-1146, which is the last one before TEV Fixes New was merged. No change. Then I felt the temptation and tried r6505 (the oldest build I had archived), but at least OGL was so glitched (and crashed on save game loading) on my machine that I had to pass. Then I randomly chose a build from 3.5 era, namely 3.5-1066, and the glitch seems exactly the same. So I make now the assumption that this has never worked on Intel HD.

What came to my mind when I looked at the introduction scene and then the scene where I get the star, is that the problem seems to be in the reflections. Water gets the color and the reflection clearly wrong, as proved by these images. But I'm not saying this is Dolphins fault, since it only happens with Intel HD. Besides, Intel has made the OpenGL support better with each driver update, this might get fixed too, in the future.

http://imgur.com/j7FAIkR

http://imgur.com/9X1mKy7

And yes, I did these tests in portable mode, default OpenGL settings.

Actions #5

Updated by pauldacheez over 9 years ago

  • Status changed from New to Fix pending

3.5-1066 was just after a massive pile of GL backend modernization was merged. Try 3.5-663, it still uses GL 2.1. :D

Also, yeah, we already have a fix for this, it's just that the fix in general pisses neobrain off enough that it's stuck in review. https://github.com/dolphin-emu/dolphin/pull/509
If you want to make sure this is actually the right fix, try it out: https://dl.dolphin-emu.org/prs/pr-509-dolphin-latest-x64.7z

Intel GPUs on OS X and Linux are unlikely to be affected by this bug since their drivers are developed by different teams. (Related: wtf, why do you need three separate teams? I mean, the separate team at Apple is semi-reasonable, but there's no real reason to duplicate work within Intel by having two separate driver teams.)

Actions #6

Updated by delroth over 9 years ago

  • Status changed from Fix pending to New

Uh... how is #509 a fix for this issue? Have you even tested that?

Actions #7

Updated by hosode over 9 years ago

Delroth's right, this is not related to PR #509. I have tested this with a build that has the fix for that issue, and it does not fix it. Actually, the #509 fix only affects D3D (that is glitched). I tried to build a version that has the problematic bit shift changed with BOTH backends, and OpenGL fails to start a game. What I understood from the error description it has something to do with OpenGL not being able to do the comparison >= 128 ? 1 : 0 with a interger that has form int(x,y,z). But I really don't know if this is the problem.
Anyway, 4.0-1146 that I tested does not have the commit that caused the whole PR #509 issue, so...

Actions #8

Updated by hosode over 9 years ago

But I will try 3.5-663, thank you for the tip!

Actions #9

Updated by hosode over 9 years ago

Woah! I tested 3.5-663, and even if it was the glitchiest experience I've seen in a while, the water actually rendered like it should! There were a lot of colored polygons flickering around the screen, this is something that apparently was fixed between 3.5-663 and 3.5-1066 when OpenGL got some big updates. But some of these updates also broke the water effect for Intel HD, and I guess I just have to fork the commit :) Thanks again for the tip!

Here are some pictures:

http://imgur.com/jTKRXzs (perfect)
http://imgur.com/i8hZ882 (messed up graphics, but still playable)
http://imgur.com/RjSWDDe (pretty distracting occasionally)
http://imgur.com/7kZ8mX7 (cursor movement makes it worse here)

Actions #10

Updated by JMC4789 over 9 years ago

The better option would be trying to get Intel to fix their forkin' drivers.

Actions #11

Updated by hosode over 9 years ago

...just as I was afraid of, next I tried 3.5-1025, which is the next release developement build after 3.5-663. Guess what, the water effect gets broken and also the major ugly polygon-glitches get fixed. No less than 1025-663=362 commits in between. And no builds.

But there you have it, this 3.5-1025 (Merge branch 'GLSL-master', March 15 2013, On Github found on page 107 of commits (today), commit code e1a081ad2dee7127e6c1fe2827eb1eb59ca24c6e) is The Merge that brought this little annoyance for us Intel HD users. Maybe I'll do some building next, to find The Commit :)

Actions #12

Updated by hosode over 9 years ago

Except... It's merged as one single commit, and I can't find the GLSL-master -branch, is it still somewhere?

Actions #13

Updated by hosode over 9 years ago

JMC: You're so right. I'll stop forking here.

Actions #14

Updated by JMC4789 over 9 years ago

if you are curious, because it would help in narrowing down what intel is doing wrong, you can probably find the GLSL branch on here: https://dl.dolphin-emu.org/builds/

Actions #15

Updated by hosode over 9 years ago

Ok I couldn't resist the challenge. Unfortunately, and because of the nature of GLSL branch, the culprit commit for this glitch seems to be somewhat untraceable.

I went through the GLSL-master x64-builds found at the url JMC4789 posted above. It seems that OpenGL backend is "broken" for my Intel HD 4600 up to build dolphin-GLSL-master-3.5-617-x64 . Most of the builds I tested (starting from dolphin-GLSL-master-3.0-947-x64) show only black screen, other show unicolored back-/foreground, no real visual output. Then the first build I got to show something is dolphin-GLSL-master-3.5-619-x64. Mario's shadow is "blocky" and lighting seems to dark, but SMG1 runs and is playable. Unfortunately the water and its reflections are messed already in this build. There's like 700 commits in between branch creation and this.

So the next step is to revert each commit one by one from this first working build, right? ;)

I'd say this is as narrowed as we can get. Won't help Intel much, personally I'm okay just checking the situation after each new Intel HD driver release.

Actions #16

Updated by hosode over 9 years ago

Intel released new drivers a couple of days ago (version 15.36.3.64.3907), and this is just an update. Unfortunately the new drivers break OpenGL on Intel HD altogether, so this issue can't be tested (today) with recent builds, but builds up until 4.0-575 work, and they show the same issue with water rendering / reflecting wrong.

So the current drivers do not fix this.

Actions #17

Updated by JMC4789 over 9 years ago

  • Status changed from New to Questionable

This needs to be looked at. Whether we consider it invalid (due to broken drivers) or valid, i don't know. Someone please look at it.

Actions #18

Updated by degasus over 9 years ago

hosode: We have worked around this new intel black screen issue, so you should be able to test this on current master again.

Actions #19

Updated by hosode over 9 years ago

Tested with the latest build (4.0-3367), portable mode, default settings. I only copied the savegame (not savestate) from my main installation. OGL works now, which is great of course :)
But the issue is still there. The more I look at it the more convinced I am that the main problem is in the way water reflects things.
I agree this being marked as questionable. If Intel HD really seems to be the only platform struggling with this (non-game-breaking) issue and therefore the problem being most likely in the drivers, then wontfix is also very acceptable.

Actions #20

Updated by JMC4789 over 9 years ago

Waiting on a verdict from a graphics guy.

Actions #21

Updated by JMC4789 over 9 years ago

Has there been any new driver releases?

Actions #22

Updated by degasus over 9 years ago

Yes, there was a driver update which at least has fixed the buffer_storage issue.

Actions #23

Updated by hosode over 9 years ago

Yes I tested SMG1 with the latest drivers that were released less than two weeks ago. As said, it specifically fixed the OGL buffer storage problem (from ~4.0-500), but did not affect this water reflection issue, which tracks down further to OGL rewrite at 3.5-1025.
I have not reported this issue to Intel as this seems so minor that I just did not feel the need. Although they have been very positively responsive with the two (more severe) issues I reported.

Actions #24

Updated by JMC4789 over 9 years ago

It's definitely an Intel HD issue. You may want to report it to them if they care; it'd be nice to have it fixed.

Actions #25

Updated by hosode over 9 years ago

Ok will do!

Actions #26

Updated by hosode about 9 years ago

Hey! As of today, I could not bring myself reporting this issue to Intel, sorry about that.
But I just noticed that there were new Intel HD drivers available on their site (driver version 15.36.14.64.4080).
So first I downloaded the very latest Dolphin development build (4.0-5238) and tested (portable version, default settings) if the problem had resolved with the awesome recent updates. Turns out that some of them broke OpenGL backend in SMG1 for Intel HD altogether, as I got black screen hang when entering Loop-de-loop galaxy. I did not bisect the culprit, since I still hadn't installed the latest drivers.
Well, next I updated the drivers and
1) SMG1 Loop-de-loop galaxy launches on OpenGL and
2) THE ORIGINAL ISSUE IS RESOLVED, water now renders bright blue with fishes and all, just like it should.
I consider this fixed.

Actions #27

Updated by Sonicadvance1 about 9 years ago

  • Status changed from Questionable to Fixed
Actions

Also available in: Atom PDF