Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple graphical issues with the Ubershader #64040

Closed
LRFLEW opened this issue Aug 7, 2022 · 3 comments
Closed

Multiple graphical issues with the Ubershader #64040

LRFLEW opened this issue Aug 7, 2022 · 3 comments

Comments

@LRFLEW
Copy link
Contributor

LRFLEW commented Aug 7, 2022

Godot version

3.5-stable

System information

Windows 10 21H1 (OS Build 19043.1826), GLES3, Nvidia GTX 1080 Ti (Driver 516.59)

Issue description

In the comments of godotengine/tps-demo#130, we discovered a few graphical issues when using asynchronous shader compilation when the ubershader is in use. A few of these issues are regressions from 3.5 release candidates / betas. Since these are all related to the Ubershader, I'm making this as one issue report to avoid spamming. If this would work better broken up into multiple issues, let me know and I'll make the other issues.

Inconsistent Lighting

Lighting doesn't seem to be work correctly with the ubershader. Bisecting showed that this is a regression caused by #62628. Notably, the lighting seems to flicker as more shaders get compiled. Below is a video comparison showing the issue. The first video used 1fa9c75, while the second video used its parent commit 64caa62.

1fa9c75.mp4
64caa62.mp4

Black Bullets

The bullets are rendered as completely black with the ubershader, when they should be white. Bisecting showed that this is a regression caused by #57674. Below is an image comparison showing the issue. The first used 3eee2f4, while the second used its parent commit 7c49b8e.

Image of commit 3eee2f4, showing the bullets rendered as black

Image of commit 7c49b8e, showing the bullets rendered as white

Glowing Objects Don't Glow

Multiple objects in the game, including the robot's eyes and the bullets, don't have their glowing appearance with the ubershader. The objects do appear to still cast light (easiest seen with the bullets), so it's an issue with the objects' own appearance. This does not appear to be a regression, since it occurs all the way back with #53411. Both videos posted before show the issue with the robot's eyes clearly. Below is an image of what the bullets look like with the specialized shaders compiled for comparison with the previous image.

Image showing the bullets rendered with a glowing effect

Steps to reproduce

Open the project from godotengine/tps-demo, and change the setting rendering/gles3/shaders/shader_compilation_mode to Asynchronous. You can also change it to Asynchronous + Cache, but it's easier to repeat the testing with the cache disabled. You also might also want to clear the driver's shader cache at %LOCALAPPDATA%\NVIDIA\GLCache by deleting any folders that exist there, otherwise the driver will compile the shaders too quickly to see what the Ubershader is doing.

Minimal reproduction project

Tested using godotengine/tps-demo@c1c4cc2

@Zireael07
Copy link
Contributor

Someone else just complained of auto-exposure being "flickery", is that likely a related/dupe to your first point?

@LRFLEW
Copy link
Contributor Author

LRFLEW commented Aug 7, 2022

@Zireael07 Possibly. You can ask that person to test if the flickering occurs in 3.5 RC 5 (the last release candidate without that PR merged). If it isn't "flickery" on that version, then it's likely the same issue. If not, then it's probably something else (maybe related to the last point here).

@akien-mga
Copy link
Member

Fixed by #64096.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants