Skip to main content

Launching twice in a row works

If Cordial worked once and then died on every launch after it until you cleared the cache, this is the release that fixes it. The crash looked like this:
It was never about the cache being corrupt, which is what it looked like and what several of us assumed. Cordial’s own startup was racing the engine’s: it carried on making calls into the engine while the engine had not yet been handed its flags, and the engine gave up. Clearing the cache appeared to help for exactly one run because a cold start downloads its settings, and the download is slow enough that the engine wins the race. A warm start reads the same file off disk in microseconds, and the race flips. Cordial now waits for that handover before going further. Verified over seven consecutive launches of the case that used to fail every time. This closes #44 and #28.

The camera no longer throws you 180 degrees on X11

On X11 the camera could spin a full half-turn the moment it locked, most often if your pointer was near the edge of the window. Cordial discarded the cursor warp it makes when locking, but only the very next mouse event — and any motion still queued from before the lock arrived first and was read as a real, enormous flick of the mouse. Every queued motion is now discarded until the pointer is confirmed at the centre. #41.

Join, in a game’s Servers list

Clicking Join on a server — public or private — did nothing at all. Not an error, not a log line, nothing. The Servers page opens in its own window, and Cordial never answered the signal that asks it to create that kind of window, so the page’s request vanished with no trace. Popups are now built, and get the same bridge and the same URL checks as the main window. #40, #34. Not confirmed working end to end. The cause matches the symptom exactly and the fix is in, but nobody here has clicked Join on a signed-in account to watch it join. If it still does nothing for you, the log will now say something, and that something is worth posting.

Going fullscreen no longer stalls the picture

Entering fullscreen could rebuild the display chain once per animation step — five times in a fifth of a second on one reporter’s machine — after which the picture stopped updating for five seconds. Those steps are now collapsed into a single rebuild once the size settles. How bad this was depended on your desktop: one reporter saw nine steps, another two, and the machine this was developed on produces exactly one, which is why it took an outside log to find. #39.

What is still broken

Leaving fullscreen can still crash the client. That is a separate fault from the stall above and it is not fixed. Same for the crash on launch some Steam Deck users hit. For both, Settings → Graphics → GLES3 is worth trying — the evidence points at Roblox’s own Vulkan renderer rather than at Cordial, and the same class of crash is documented against other launchers on ordinary desktop drivers. That workaround is a candidate, not a proven fix; neither crash reproduces on the machine this was built on. #39, #35. A touchscreen still crashes the client on the first touch. The fault is in the toolkit’s own drawing, not in Cordial’s touch handling — CORDIAL_NO_TOUCH=1 crashes too. #36. No window appears on COSMIC, KWin or wlroots compositors. GNOME/Mutter and X11 are unaffected. #38. On X11, input can stick for about five seconds and carry you on in the direction you were already going. This is a second, separate fault from the camera spin above and it is characterised but not fixed: a key released while the window does not have focus never has its release delivered, so the engine goes on believing it is held. #41. A client can occasionally refuse to close, hanging on exit rather than crashing. Seen once in seven launches while testing something else. VR is not available, and this is not something Cordial can add. The Android engine Cordial loads carries the VR service but nothing that drives a headset: no VR runtime is linked, no VR code is reachable, and switching every VR flag on changes nothing observable. The evidence is in docs/analysis/vr-reachability.md. Everything listed as broken in 0.15.1 that is not named above still is.