Allegro 5.2.5.1
I've been recommending to players to disable the Steam Overlay as it seems to be the source of an intermittent exception (specifically with al_load_bitmap()) with some OpenGL drivers (usually laptops, shared memory?)
but recently the Steam Client seems to interfere with my game even if the overlay is disabled for the game in specific, AND in the Steam Client global settings!
Bashing my head off the desk...
Game loads and runs fine if the Steam Client just isn't running, but since we're trying to use Steam for multiplayer, we need the client to run.
Has anyone experienced anything similar?
Hello bignic, love your music.
Do you have the type of exception? Have you been able to replicate it on any of your home machines or a VM, or only from users? Or do you have reported/saved the exception data / call-stack from users? Does the exception only fire off in certain, specific al_load_bitmaps calls, or any of them?
I've definitely seen crashes when the Steam overlay activates. In one scenario, one screenshot, it'll crash--especially if it's a large screen (4K) into a slow hard drive. But not specifically with Allegro.
Q. Why is the Steam overlay crashing my app?
A. The Steam overlay is used in thousands of games and as such it has been very thoroughly tested and is rarely the cause of a crash. However, because of the way it injects itself into the game, it does often expose memory leaks or memory corruption in the usage of your rendering API that may not have impacted game play.
That's interesting.
I can replicate it fairly often with an HP EliteBook with Intel HD 3000 onboard gpu.
It usually crashes in 1-3 exact same spots so I'm not ruling out a memory leak in my own code.
Null reference - when I got PDB loaded, al_really_load_png() throws "lock was nullptr"
(I probably shouldn't have started two threads here, but the other thread was specifically about loading the PDBs which seems to be fine now, just not that helpful after all.)
- I wonder if steam overlay does some kind of weird file locking / freezes threads as it loads the overlay.
Also, bignic, I've not used it but the Valgrind people recommend "Deleaker" for Windows equivalent of finding memory leaks. It might be helpful. The fact you can semi-consistently trigger it will definitely help.
I wonder if this can be triggered on any of the included Allegro 5 example programs by forcing Steam to attach the overlay to it. (IIRC, you can start anything with steam overlay attached if you add the shortcut to Steam manually under Steam->Games->"Add Non-Steam Game to my Library".)
Also, there are ALLEGRO_ERROR lines in here. So if compiled in debug mode (also release?) Allegro should dump to an error file if it catches it.
I'd do more searching but apparently Github decided I'm a Russian bot. Great job github. Apparently scrolling through pages of hits for "ALLEGRO_ERROR" means you're a bot. (And no, I'm not on a VPN either.)
{"name":"B1NDVaI.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/7\/072821ef61fdf27881457f8e42193f91.png","w":454,"h":334,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/7\/072821ef61fdf27881457f8e42193f91"}
Thank you kindly for the suggestions - Some new paths to investigate, for sure.
I'll have to work up some courage to press on!