juzzlin / DustRacing2D

Dust Racing 2D is a traditional top-down car racing game including a level editor.
http://juzzlin.github.io/DustRacing2D/index.html
GNU General Public License v3.0
297 stars 67 forks source link

Black screen after start #30

Closed anyc closed 6 years ago

anyc commented 6 years ago

I just compiled the latest commit on my Gentoo box and I only see a black screen after I start the game. I see the mouse cursor and I can hear the click sounds but the display stays black. To build I used this ebuild: dustrac-2.0.0.ebuild

My machine is a Thinkpad T530 laptop with a Nvidia NVS 5400M (using nouveau drivers) and an attached FullHD monitor.

[Fri Dec 29 20:07:29 2017] I: Dust Racing 2D version 2.0.0
[Fri Dec 29 20:07:29 2017] I: Compiled against Qt version 5.9.3
[Fri Dec 29 20:07:29 2017] I: Creating game object..
[Fri Dec 29 20:07:29 2017] W: Failed to load translations for en_US
[Fri Dec 29 20:07:29 2017] I: Resolution: 1920 1200 1
[Fri Dec 29 20:07:29 2017] I: Creating the renderer..
[Fri Dec 29 20:07:29 2017] I: OpenGL Version: 3.0 Mesa 17.2.7
[Fri Dec 29 20:07:29 2017] I: Loading font /usr/share/dustrac/fonts/DejaVuSans-Bold.ttf..
[Fri Dec 29 20:07:29 2017] I: Loaded font DejaVu Sans
[Fri Dec 29 20:07:29 2017] I: Font slot size: 71x80
[Fri Dec 29 20:07:29 2017] I: Font texture size (initial): 568x1200
[Fri Dec 29 20:07:30 2017] I: Loading surface config from '/usr/share/dustrac/surfaces.conf'..
[Fri Dec 29 20:07:30 2017] I: Sound device: OpenAL Soft
[Fri Dec 29 20:07:30 2017] I: Loading mesh config from '/usr/share/dustrac/meshes.conf'..
[Fri Dec 29 20:07:30 2017] I: Loading race tracks from '/usr/share/dustrac/levels'..
[Fri Dec 29 20:07:30 2017] I:   Found '/usr/share/dustrac/levels/curvastone.trk', index=8
[Fri Dec 29 20:07:30 2017] I:   Found '/usr/share/dustrac/levels/Desert Storm.trk', index=13
[Fri Dec 29 20:07:30 2017] I:   Found '/usr/share/dustrac/levels/Diamond.trk', index=14
[Fri Dec 29 20:07:30 2017] I:   Found '/usr/share/dustrac/levels/Far Lands.trk', index=15
[Fri Dec 29 20:07:30 2017] I:   Found '/usr/share/dustrac/levels/Figure 8.trk', index=12
[Fri Dec 29 20:07:30 2017] I:   Found '/usr/share/dustrac/levels/infinity.trk', index=0
[Fri Dec 29 20:07:30 2017] I:   Found '/usr/share/dustrac/levels/monza.trk', index=3
[Fri Dec 29 20:07:30 2017] I:   Found '/usr/share/dustrac/levels/Radiator.trk', index=17
[Fri Dec 29 20:07:30 2017] I:   Found '/usr/share/dustrac/levels/ring.trk', index=9
[Fri Dec 29 20:07:30 2017] I:   Found '/usr/share/dustrac/levels/straight.trk', index=7
[Fri Dec 29 20:07:30 2017] I:   Found '/usr/share/dustrac/levels/suzuka.trk', index=11
[Fri Dec 29 20:07:30 2017] I:   Found '/usr/share/dustrac/levels/triangle.trk', index=5
[Fri Dec 29 20:07:30 2017] I:   Found '/usr/share/dustrac/levels/Twineburg.trk', index=18
[Fri Dec 29 20:07:30 2017] I:   Found '/usr/share/dustrac/levels/twister.trk', index=10
[Fri Dec 29 20:07:30 2017] I:   Found '/usr/share/dustrac/levels/Western Valley.trk', index=16
[Fri Dec 29 20:07:30 2017] I: Loading race tracks from '/home/steam/DustRacingTracks'..
[Fri Dec 29 20:07:30 2017] I:   No race tracks found.
[Fri Dec 29 20:07:30 2017] I: A total of 15 race track(s) loaded.
juzzlin commented 6 years ago

Thanks for reporting!

Could you test if you can build and run any of the previous versions with the same setup, 1.13.0 for example?

juzzlin commented 6 years ago

Also in your ebuild file the UbuntuMono stuff shouldn't be needed anymore as the game uses now a DejaVu font. The homepage URL should be http://juzzlin.github.io/DustRacing2D :)

juzzlin commented 6 years ago

One more thing: could you test with Nvidia's official drivers?

juzzlin commented 6 years ago

I just verified that the game works with Qt 5.9.3 on NVIDIA's drivers so the problem might be Nouveau:

[Fri Dec 29 22:45:32 2017] I: Dust Racing 2D version 2.0.0
[Fri Dec 29 22:45:32 2017] I: Compiled against Qt version 5.9.3
[Fri Dec 29 22:45:32 2017] I: Creating game object..
[Fri Dec 29 22:45:32 2017] W: Failed to load translations for en_US
[Fri Dec 29 22:45:32 2017] I: Resolution: 1280 720 1
[Fri Dec 29 22:45:32 2017] I: Creating the renderer..
[Fri Dec 29 22:45:32 2017] I: OpenGL Version: 4.5.0 NVIDIA 384.90
[Fri Dec 29 22:45:33 2017] I: Loading font ./data/fonts/DejaVuSans-Bold.ttf..
[Fri Dec 29 22:45:33 2017] I: Loaded font DejaVu Sans
[Fri Dec 29 22:45:33 2017] I: Font slot size: 71x78
[Fri Dec 29 22:45:33 2017] I: Font texture size (initial): 568x1170
[Fri Dec 29 22:45:33 2017] I: Loading surface config from './data/surfaces.conf'..
[Fri Dec 29 22:45:33 2017] I: Sound device: OpenAL Soft

I built it in Qt Creator using the default CMake configuration.

anyc commented 6 years ago

I just tried with 1.11.0 that is included in the main Gentoo repository and there I see the main screen and the following output on the terminal:

[Sat Dec 30 12:43:41 2017] I: Dust Racing 2D version 1.11.0
[Sat Dec 30 12:43:41 2017] I: Compiled against Qt version 5.9.3
[Sat Dec 30 12:43:41 2017] I: Failed to load translations for en_US
[Sat Dec 30 12:43:41 2017] I: Creating game object..
[Sat Dec 30 12:43:41 2017] I: Resolution: 1920 1200 1
[Sat Dec 30 12:43:41 2017] I: Creating the renderer..
[Sat Dec 30 12:43:42 2017] I: OpenGL Version: 3.0 Mesa 17.2.7
[Sat Dec 30 12:43:42 2017] I: Loading font /usr/share/dustrac/fonts/UbuntuMono-R.ttf..
[Sat Dec 30 12:43:42 2017] I: Loading font /usr/share/dustrac/fonts/UbuntuMono-B.ttf..
[Sat Dec 30 12:43:42 2017] I: Font texture size: 240x960
[Sat Dec 30 12:43:42 2017] I: Loading surface config from '/usr/share/dustrac/surfaces.conf'..
[Sat Dec 30 12:43:42 2017] I: Sound device: OpenAL Soft
[Sat Dec 30 12:43:42 2017] I: Loading mesh config from '/usr/share/dustrac/meshes.conf'..
[Sat Dec 30 12:43:42 2017] I: Loading race tracks from '/usr/share/dustrac/levels'..
[Sat Dec 30 12:43:42 2017] I:   Found '/usr/share/dustrac/levels/curvastone.trk', index=8
[Sat Dec 30 12:43:42 2017] I:   Found '/usr/share/dustrac/levels/infinity.trk', index=0
[Sat Dec 30 12:43:42 2017] I:   Found '/usr/share/dustrac/levels/monza.trk', index=3
[Sat Dec 30 12:43:42 2017] I:   Found '/usr/share/dustrac/levels/ring.trk', index=9
[Sat Dec 30 12:43:42 2017] I:   Found '/usr/share/dustrac/levels/straight.trk', index=7
[Sat Dec 30 12:43:42 2017] I:   Found '/usr/share/dustrac/levels/suzuka.trk', index=11
[Sat Dec 30 12:43:42 2017] I:   Found '/usr/share/dustrac/levels/triangle.trk', index=5
[Sat Dec 30 12:43:42 2017] I:   Found '/usr/share/dustrac/levels/twister.trk', index=10
[Sat Dec 30 12:43:42 2017] I: Loading race tracks from '/home/steam/DustRacingTracks'..
[Sat Dec 30 12:43:42 2017] I:   No race tracks found.
[Sat Dec 30 12:43:42 2017] I: A total of 8 race track(s) loaded.
[Sat Dec 30 12:43:48 2017] I: Quit selected from the main menu.

I can try it with the official drivers but it will take a while as I currently try to avoid to reboot the machine. (I'm testing this game while I wait on some other calculations)

juzzlin commented 6 years ago

Ok. If it doesn't work with official drivers either it would be easy to find the bad commit with git bisect. But of course this can be done already with Nouveau to get a hint about what's going on.

juzzlin commented 6 years ago

I now tested with Nouveau myself:

[Sat Dec 30 14:29:42 2017] I: Dust Racing 2D version 2.0.0
[Sat Dec 30 14:29:42 2017] I: Compiled against Qt version 5.9.3
[Sat Dec 30 14:29:42 2017] I: Creating game object..
[Sat Dec 30 14:29:42 2017] W: Failed to load translations for en_US
[Sat Dec 30 14:29:42 2017] I: Resolution: 1280 720 1
[Sat Dec 30 14:29:42 2017] I: Creating the renderer..
[Sat Dec 30 14:29:42 2017] I: OpenGL Version: 3.0 Mesa 17.0.7
[Sat Dec 30 14:29:42 2017] I: Loading font ./data/fonts/DejaVuSans-Bold.ttf..
[Sat Dec 30 14:29:42 2017] I: Loaded font DejaVu Sans
[Sat Dec 30 14:29:42 2017] I: Font slot size: 71x78
[Sat Dec 30 14:29:42 2017] I: Font texture size (initial): 568x1170
[Sat Dec 30 14:29:42 2017] I: Loading surface config from './data/surfaces.conf'..
[Sat Dec 30 14:29:42 2017] I: Sound device: OpenAL Soft

The results are that the game actually worked, but was very slow. I also cannot set a bigger resolution than 1280x720 on my machine so Nouveau is pretty much useless on my hardware.

anyc commented 6 years ago

Result of the bisect:

b13016cc97f8b9f18149dc0e6c71ed37937a4d98 is the first bad commit
commit b13016cc97f8b9f18149dc0e6c71ed37937a4d98
Author: Jussi Lind <jussi.lind@iki.fi>
Date:   Thu Sep 7 22:23:14 2017 +0300

    Decrease view angle to 22.5 degrees

:040000 040000 1fc50503eae7c3ddbd7abb14b2ab4c789ec31188 15b2c9ce58db49872c449c6398f58952ab145529 M      src
juzzlin commented 6 years ago

Hmm...interesting. Did this happen with the official drivers?

anyc commented 6 years ago

No, still with nouveau. I just manually set those variables to the old values and 2.0.1 works.

juzzlin commented 6 years ago

Ok. Could you try to keep the values as is but increase m_zFar so that it works. I suspect that for some reason 1500.0 is not enough and everything gets clipped off. I'd like to know how much is enough in this case if that's the problem. I could then change the code a bit.

anyc commented 6 years ago

1600 does not work, 1700 works. Do you need a more precise value?

juzzlin commented 6 years ago

No, this is enough. Thanks! I will make fix in a moment.

juzzlin commented 6 years ago

Please test with 7e240803c564c5fe5682d3ca3a4d668ded4b0782 to see if it solves the issue. I still suspect this is a bug in Nouveau, but it doesn't harm anything to fix the issue like this. I calculated that the original value should have been enough so it's a bit weird issue :)

anyc commented 6 years ago

Works, thank you!