Emulator Issues #9125
Xenoblade - Incorrect Upscaled Lighting Effects
Xenoblade Chronicles - Any Region
What's the problem? Describe what went wrong.
I've known about this for years, but never reported it because I wasn't sure if it was a legit bug or not. I always just assumed OpenGL was more accurate than D3D and that was why there was a difference between the two. But now there is no way to get the correct effect, hence this issue report.
Some lighting effects are improperly upscaled, which used to look fine in OpenGL using EFB to RAM, but no longer looks correct since v4.0-7620. Xenoblade requires "Scaled EFB Copy" for higher IRs to have any effect. The lighting effects in question apply to:
- Ether deposits
- Lighting in High Entia Tomb
- Monado III lighting
- Cave exit lighting
These effects always looked incorrect in D3D, but could look correct with OpenGL and EFB to RAM. The PR that unified the EFB copy implementations also broke this in OpenGL.
What steps will reproduce the problem?
Just find any area/object with these lighting effects.
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?
v4.0-7614 - The effect looks correct using OpenGL and EFB to RAM. D3D has always looked bad.
v4.0-7620 - The effect always looks bad no matter what backend/settings are used.
**Is there any other relevant information? (e.g. logs, screenshots,
Correct - [[[http://i.imgur.com/ZhE6FLy.jpg]]]
Broken - [[[http://i.imgur.com/Rbkkpnn.jpg]]]
#1 Updated by Bighead.0 about 4 years ago
A save file that loads where the screenshots were taken.
#2 Updated by JMC4789 about 4 years ago
- Assignee set to phire
It looks like prior to that change, OpenGL + EFB2RAM wasn't falling back to EFB2Texture for lighting effects; which was causing it to "look better" in that instance because our EFB2Texture backend may have a bug in it. This issue is really confusingly worded compared to what is actually going on, so I'll try to explain it real quick here to my understanding (which, to be fair, could be totally wrong.)
There's could be a bug in the EFB Copies to Texture codepath causing lighting like this to upscale badly. See Metroid Prime 3 for more examples of this. Now, whether this is a bug in the EFB Copise to Texture codepath or not depends on this: does 1x IR look noticeably worse on EFB Copies to Texture? If not; it could be a consequence of EFB Copies to Texture simply supporting more stuff now. And if that is the case, unfortunately, there isn't much we can do. Prior to the change, it was falling back to EFB Copies to RAM erroneously (lighting should need EFB Copies to RAM,) and thusly not getting upscaled. I'll still ping the relevant parties to look at this and see if anything can be done.
#4 Updated by Bighead.0 about 4 years ago
I never tried IRs above 4x, good thinking. It really does pronounce the issue much better (but slaughters my framerate :P). Here's a few more screenshots from other affected lights. Using 4.0-7614, first images are without EFB to RAM, second images are with it.
#5 Updated by theincrediblemastere about 4 years ago
I knew about this for months but didn't say anything because I know that making reports about enhancements breaking things is discouraged and sometimes even invalidates the whole issue depending on if it involves Anti-Aliasing or Texture Filtering at all.
But to see this issue get taken seriously sure is a pleasant surprise. Glad it isn't relegated to the Invalid/Won't Fix pile!
#7 Updated by phire about 4 years ago
Don't get your hopes too high, the problem may be inherently "unsolvable" at higher IRs. I've been looking into the math/methods of various games' bloom effects.
We reserve the right to mark this as Won't Fix later, but for now it looks like some kind of fix might be possible.