ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
15.45k stars 2.3k forks source link

OpenGL renderers have no visual output #23466

Closed Sinamer closed 1 year ago

Sinamer commented 1 year ago

Type

Other

Bug description

OpenGL (Legacy) and Veldrid OpenGL show black screen on launch. The sound is still audible and I'm able to interact with the game via a keyboard and mouse, but nothing is shown on the screen Also when the game starts it makes the entire system become unresponsive for around 10 seconds and even refreshes the desktop Direct3D 11 works just fine, the screen is visible and there is no system freeze happening when using it

Screenshots or videos

https://github.com/ppy/osu/assets/53346335/12636e80-9c10-401c-913d-73ba0734cbbb

Version

2023.511.0

Logs

updater.log network.log runtime.log performance.log

DxDiag.txt

longnguyen2004 commented 1 year ago

2023-05-11 09:53:17 [verbose]: GL Version: 3.2.0 - Build 24.20.100.6287

Seems like your graphics driver is outdated, try updating and see if it solves the problem https://www.intel.com/content/www/us/en/download/762755/intel-6th-10th-gen-processor-graphics-windows.html (I hope that's the right one, Intel removed all downloads for this CPU on their website)

Sinamer commented 1 year ago

See my comment over at https://github.com/ppy/osu/issues/23294#issuecomment-1538378678, I am stuck with this version unfortunately

longnguyen2004 commented 1 year ago

Use DDU to fully remove the manufacturer driver, then install the generic driver. There are plenty of guides on Google for this.

Sinamer commented 1 year ago

I'd rather not. This laptop's firmware is a special case and last time I tried installing non-manufacturer drivers my system would experience BSoD-s constantly. It is stable in its current form. This doesn't explain how the game has been working fine until renderer changes either

bdach commented 1 year ago

Does not reproduce on my box, unfortunately :(

@Sinamer are you able to do some testing on your side to see what might have broken this? It's probably one of the framework changes since last release, but I really am failing to understand which one it might have been and why. The most suspect one is probably https://github.com/ppy/osu-framework/pull/5765, but that was supposed to be a revert to a previously-known-working state...

Sinamer commented 1 year ago

Sorry for the long response time. I ran git bisect on a local framework and here is the result:

b972ed213ee3742fa65419c3661bca4b1271f6a7 is the first bad commit
commit b972ed213ee3742fa65419c3661bca4b1271f6a7
Author: Bartłomiej Dach <dach.bartlomiej@gmail.com>
Date:   Sat Apr 29 15:37:36 2023 +0200

    Disable custom mipmap generation

 .../Graphics/OpenGL/Textures/GLTexture.cs          | 247 +++++++++---------
 .../Graphics/Veldrid/Textures/VeldridTexture.cs    | 276 +++++++++++----------
 2 files changed, 271 insertions(+), 252 deletions(-)
bdach commented 1 year ago

Figures. I'll have another look at that change and try to guess how I might have reverted wrong somehow...

peppy commented 1 year ago

@Sinamer Thanks for the bisect. before i got any further though, can you 101% confirm that legacy GL is also broken, not just veldrid GL? You can confirm you're running legacy GL via runtime.log

I can understand how this might break on veldrid GL, but not legacy. It's basically a revert to a known working state.

Sinamer commented 1 year ago

Yes, I can confirm OpenGL (Legacy) is also affected. I made sure to check on that exact commit and to look at runtime.log in osu-development folder in AppData/Roaming

Sinamer commented 1 year ago

Here are RenderDoc captures using osu.Framework.Tests on 2023.403.0, 2023.417.0 (both working) tags and master branch (no visuals): Captures.zip

bdach commented 1 year ago

Captures attached show that textures on master are completely not there, as in not uploaded. Both white pixel and the font atlas are completely transparent-black.

@Sinamer could you give https://github.com/ppy/osu-framework/compare/master...bdach:osu-framework:crapshoot?expand=1 a go? I've identified one issue on my machine that this branch seems to fix, but apparently you've tested that before and it didn't do anything, so my hopes are low. But I'm hoping maybe it didn't build properly or something. Both legacy GL and veldrid GL, please.

Sinamer commented 1 year ago

The branch fixes the issue for both Legacy and Veldrid GL. I checked the file that "ruled out" the InitialiseLevel changes again and the git diff looks different from your branch, so that explains it not working for me. image image

Sinamer commented 1 year ago

Tested osu! with this branch as well. LegacyGL works, VeldridGL and VeldridD3D 11 crash shortly after launch (before the intro animation manages to show), here's the runtime log of that: runtime.log

bdach commented 1 year ago

Thanks for the testing. I'll go look at what's crashing now...

bdach commented 1 year ago

@Sinamer can you pull the branch I linked above again and re-test? By all means the issue should be fixed, since I pretty much went the nuclear route and reverted everything that could matter, but I would like a confirmation of that if possible.

Sinamer commented 1 year ago

Can confirm that all three renderers (LegacyGL, VeldridGL, VeldridD3D 11) are launching and working properly on osu.Framework.Tests and osu! with the latest changes on that branch, and that the issue is resolved