qrrk/Catapult

Catastrophic failure when launching on Linux Mint 21.1 Cinnamon with NVIDIA X drivers

TonyPrindel opened this issue · 2 comments

Issue

When starting the game on my Linux Mint 21.1 machine, the launcher spits out numerous errors in the terminal nearly identical to the following:

ERROR: Condition "mh > 4096" is true. Returned Character::not_found()

Shortly after the console is flooded, X hangs and then either freezes entirely, or crashes and leads to Linux Mint's fallback session.

Steps to reproduce

On a Linux Mint 21.1 Cinnamon system running NVIDIA's latest proprietary drivers:
  1. Download the latest 23.03a release of the launcher.
  2. Move the launcher into a dedicated folder under the user's home directory.
  3. Make the launcher executable, either using chmod +x or Cinnamon's file properties menu.
  4. Launch the application.
  5. The terminal will flood with errors, and X will hang soon thereafter.

System Info

https://pastebin.com/NZNwUBw5

I'm at a loss as to what the issue might be. A lot of the scripts referenced in errors seem to be font-related, so maybe a font issue? I'll keep troubleshooting to see if I can find anything.

Edit 1: I've been completely unsuccessful in getting the output to tee into a text file, so here's a sloppy phone recording instead: https://www.youtube.com/watch?v=jYBtCb9wTh8

Edit 2: Rolling back to nouveau allowed the launcher to work just fine, meaning this is probably an issue with NVIDIA's drivers. Maybe somehow related to #57? As suggested by that title, I tried switching my refresh rate from 170 to 60 and Catapult started fine.

Edit 3: So here's my testing summary:

NVIDIA with high refresh rates crashes.
NVIDIA with low refresh rates runs.
nouveau with low and high-ish refresh rates (I'm capped at 120hz sadly) runs.
AMD with high refresh rates on Fedora runs.

So this seems to be an isolated issue with NVIDIA on high refresh rates.

Going by the details provided this should be a duplicate of #57

I was able to screenshot the logs
image

This seems to be where the error is thrown: https://github.com/godotengine/godot/blob/cf8ad12b56df4ae7bba4c73070dd035693a880e4/drivers/gles3/storage/texture_storage.cpp#LL1053C1-L1054C1

The issue might be that refresh rate value is used somewhere to set a texture size? Or it might be that too fast of refresh rate makes godot want to render some texture that is not ready yet hence value is zero or inf?

bmorgz commented

I encountered the same issue. I found a workaround by running the windows version and enabling custom UI scaling, or setting "ui_scale_override_enabled": true in catapult_settings.json