Releases: CatPieLeaf/Stud
Release list
1.1.10 - Refactor and Appimage fixes
The AppImage opens on stock distributions, Settings no longer needs Vulkan, and Stud's insides got a cleanup!
SUMMARY:
- Settings opens even on a machine with no Vulkan loader
- The AppImage runs on stock distributions under X11
- Software centers show Stud's icon and what changed in each release
- A large internal cleanup, with no change in how Stud behaves
The app:
- Settings opens on a machine with no Vulkan loader at all. It used to refuse to start there; now it opens and simply lists no GPUs
- The AppImage runs on stock distributions under X11: it now bundles the xcb libraries Qt's X11 support needs, so it no longer depends on them being installed (tested on a clean Ubuntu 22.04, on X11 and Wayland)
Stud:
- A large internal cleanup: the biggest functions in the render host, the input bridge and the Android process were split into smaller ones, and code nothing used was removed. Nothing about how Stud behaves changed
- The release pipeline was simplified, and a manual run now builds every package as a download without publishing anything
- Stud's AppStream metadata now carries its icon, which software centers and Terra need
- Each release now fills in its own version, checksums and changelog everywhere Stud is packaged, from this SUMMARY section
- The docs now say the right value for STUD_GRAPHICS_MODE: opengl, not gl
Known bugs:
- On NVIDIA, a freeze of a few seconds may happen, rarely, mid-game. Stud recovers from it on its own, and it is still being investigated.
- MangoHud 0.8.3-rc1 crashes Stud if you stop its logging while its HUD is visible (a MangoHud bug, flightlessmango/MangoHud#2053). Hide the HUD before stopping logging or update to MangoHud 0.8.4 (Available in nobara-44's copr, for fedora folks)
Warning
Stud is still a work in progress: it boots, logs in, renders the real app and joins real games, and it also breaks in ways nobody has measured yet. A log from a machine that isn't ours is the most useful thing you can send (the tray's Export logs puts a session in one file)
1.1.9 - Smoother joins, input methods, Appimage fix
Joining games no longer freezes, input methods work, and fixed Appimages!
Graphics:
- Fixed the freeze of up to 12 seconds on the home screen after pressing Play (up to 22 seconds on X11). The Vulkan driver now presents to a surface of its own, the way it does on Android, so the old frame is let go the moment a game starts
- The home screen stays on screen while a game loads, instead of a black screen in between. Stud's own startup no longer flashes black either
- A GPU crash no longer takes Stud down with it: the game recovers and carries on, instead of the render host crashing while the driver reports the lost device
- Fixed a render host crash when the graphics driver refuses a descriptor set the game asked for
- Stud loads the Vulkan driver once, through volk, instead of opening it a second time just to create the window's surface
Keyboard and chat:
- Input methods work in text boxes: fcitx5, IBus and others can compose Chinese, Japanese, Korean and more into chat and search, on Wayland (text-input-v3) and on X11 (XIM). The text being composed is shown in the box, and the candidate window opens at the caret
- The input method is only active while a text box is focused, so it never eats the keys you play with, even if you left it in a composing mode. Password boxes keep it out entirely
The app:
- Fixed the home screen freezing after leaving a game. Stud now resumes the home screen the way the real app does when you come back from one
- Fixed the home screen running at 1 FPS for about 10 seconds after launch. Reading your saved login no longer holds up the engine's graphics while it starts
- With Discord presence on, joining a game no longer waits on the lookup of its name and thumbnail
- The engine is told what connection you are actually on (WiFi or not), in the app's own terms, instead of always "WIFI"
Stud:
- The AppImage bundles its own glibc, so it runs on older distributions again (tested down to Debian 12).
Known bugs:
- On NVIDIA, a freeze of a few seconds may happen, rarely, mid-game. Stud recovers from it on its own, and it is still being investigated.
- MangoHud 0.8.3-rc1 crashes Stud if you stop its logging while its HUD is visible (a MangoHud bug, flightlessmango/MangoHud#2053). Hide the HUD before stopping logging or update to MangoHud 0.8.4 (Available in nobara-44's copr, for fedora folks)
Warning
Stud is still a work in progress: it boots, logs in, renders the real app and joins real games, and it also breaks in ways nobody has measured yet. A log from a machine that isn't ours is the most useful thing you can send (the tray's Export logs puts a session in one file)
1.1.8 - Performance, OpenGL, and many more!
Massive performance improvements, OpenGL mode fixes, and a lot more of the app working!
Graphics:
- Massive performance improvement: Stud's texture recompression workaround is now gone for good.
- The DesktopGL render path now draws on your system's own OpenGL ES instead of going through ANGLE.
- Fixed textures stuck at blurry, blocky mipmaps in DesktopGL mode, including buttons on the home screen and the HUD
- DesktopGL picks the same GPU as the rest of Stud, on NVIDIA, AMD and Intel alike
- Upscaling now works on the ANGLE and DesktopGL render paths too, with SGSR. RAVU is Vulkan only, so the upscaler choice is greyed out and fixed at SGSR on those paths
- The engine gets the whole GL extension list instead of one cut short at 511 characters
- GL sync objects are real, and GL uploads and downloads respect the engine's pack and unpack settings
- Video playback inside games works, decoded by your system's FFmpeg
- Presentation is FIFO with frame pacing, so every rendered frame is shown. Drivers that cannot pace fall back to MAILBOX
- Fixed the background frame cap not applying at all
- Fixed textures on integrated GPUs: texture sizes follow what the driver reports as available memory instead of a fixed number
Keyboard and chat:
- Fixed keys typing in the US layout on X11 desktops that aren't KDE, such as Cinnamon on Linux Mint. Stud now reads the layout from the X server itself
- Fixed chat commands like /team leaving "/team" in Stud's text box after the chat has turned it into [Team]
The app:
- Private-server and follow links join from a browser click
- Fixed many stubbed things on stud.+
- Unsupported In-app purchase prompts close properly instead of hanging
- Achievements, keep-screen-on and the app's theme work
- Text handling goes beyond ASCII (ICU is bundled now)
- The window size is measured from the real window instead of a fixed 1920x1080
Stud:
- An APK Stud cannot run is refused when you pick it, and a failed launch opens Settings instead of an error
- Restarting a session from Settings logs to its own file instead of appending to the old one
- The texture re-encode from 1.1.7 is gone, along with the bc7enc_rdo it was built on
Known bugs:
- A 12 seconds freeze may happen, randomly, a single time. It is still being investigated.
- Sometimes, clicking to join a game on Roblox launcher, stud may or may not hang on home screen for a few seconds.
- X11 may show a black screen for a few milisseconds when the minimized window is brought to foreground
Warning
Stud is still a work in progress: it boots, logs in, renders the real app and joins real games, and it also breaks in ways nobody has measured yet. A log from a machine that isn't ours is the most useful thing you can send (the tray's Export logs puts a session in one file)
1.1.7 - Texture fixes, keyboard, etc
Texture corruption gone, textures stop reloading themselves, a new audio backend, and a titlebar where the compositor draws none!
Textures:
The block encoders are now bc7enc_rdo's rather than hand-written ones, and the
corrupted patterns are gone.
- Fixed the faint stripes and squares that showed up in transparent textures and
normal maps - Fixed transparent areas revealing the canvas behind them. A fully transparent
texel's hidden colour was dragging the block's endpoints around, so it bled
back through as a faint square - BC7 now reaches for a two-subset mode on the blocks that need one. A block
holding two distinct colours cannot be described by a single line through it,
which is what a square on a normal map was - BC1, BC3, BC4 and BC5 come from bc7enc_rdo now instead of Stud's own encoders
- The block pool scales with the machine instead of stopping at three
Textures reloading over and over:
Seeing the same texture a second time made Stud decode and re-encode it from
scratch, all the way back down to the mips, every time. Three separate faults,
all fixed:
- The cache only kept levels of 1024x1024 and larger, so everything below that
was re-encoded on every sighting - Dead cache generations were never deleted, so an old encoder's output sat on
disk forever while the current one had no room - The cache was too small to hold what a single session actually uses
- Cache keys come from xxHash now
Audio:
- Stud no longer needs PortAudio, or any audio library, installed. miniaudio is
compiled in and speaks ALSA, PulseAudio, JACK and OSS itself, so audio is
simply always there - Fixed audio sounding compressed and harsh on loud, bassy passages. Samples
were being flattened at full scale before the sound server ever saw them,
instead of keeping their headroom until your volume is applied - Stud appears once in the volume mixer, instead of as "Stud . Stud"
Desktop Environment:
- A titlebar on compositors that draw none of their own, GNOME above all, via
libdecor. Where the compositor does draw them (KDE, sway, Hyprland, river)
nothing changes and you keep the real one. libdecor is optional: without it
installed, such a compositor leaves the window undecorated exactly as before
Underneath:
- The render host's Vulkan entry points are resolved by volk
- Every vendored library's licence now installs with the package
Known bugs:
- On NVIDIA, a 12 seconds freeze may or may not happen, randomly, a single time. This bug is already investigated (unfixable from stud's side), documented and will be soon reported to NVIDIA.
- X11 may show a black screen for a few milisseconds when the minimized window is brought to foreground
- Sometimes, clicking to join a game on Roblox launcher, stud may or may not hang on home screen for a few seconds.
Warning
Stud is still a work in progress: it boots, logs in, renders the real app and joins real games, and it also breaks in ways nobody has measured yet. A log from a machine that isn't ours is the most useful thing you can send (the tray's Export logs puts a session in one file)
1.1.6 - A Lot of fixes and stuff
RAVU-Zoom, SGSR, X11 fixes, COSMIC/Niri fixes, Crash handler and more!
Upscaling:
The FSR filter is gone, replaced by two that look better and let you choose the
trade.
- RAVU-Zoom (anti-ringing) is the new default. It looks each neighbourhood up
in a table trained offline instead of guessing from a formula, and clamps the
result to the range that neighbourhood already spans, so it cannot trace a
bright border around a hard edge - SGSR1 (edge direction) weights its samples along the edge it finds, and is
much the cheaper of the two. Worth picking on an integrated GPU - Both run at full sharpness, so the sharpness slider is gone. It existed to
recover detail these two do not lose
When something goes wrong:
- Stud now tells you when it has crashed, and offers the log for that session.
Anything that ends a session without being asked to counts, including being
killed outright - Logging no longer makes the engine wait on a disk. Each process hands its lines
to Stud's launcher, which writes them in batches, and writes immediately the
moment something goes wrong
Windows, input and accounts:
- Fixed a window that came up with a black border around the picture, took no
input, and only came right when you resized it by hand (COSMIC) - Fixed the issue on niri where the window would constantly blink until it's resized.
- A dragged window moves as you drag it rather than lagging behind
- The frame caps work again, so Stud no longer draws at full rate for a window
nobody is looking at - Holding a key on X11 keeps it held, instead of the server repeating it as a
press and a release - The GPU picked in Settings is the one Stud uses. It was being offered to the
engine first rather than alone, so a machine with two cards could still end up
on the other one - Signing out forgets that account's saved session, and only that account's. A
logout from inside the engine forgets the stored credential too - Closing the window leaves the experience before it leaves the server, so you
are not left standing in the game you just closed
Underneath:
- A lost GPU device no longer takes the session with it: what the engine left
behind is freed, and a device is kept until the replacement has proved itself - The engine's own leaked buffers and allocations are released with the device
that owned them - Fixed the emulated PVRTC extension not being counted, so the engine can find it
Known bugs:
- On NVIDIA, a 12 seconds freeze may or may not happen, randomly, a single time. This bug is already investigated (unfixable from stud's side), documented and will be soon reported to NVIDIA.
- X11 may show a black screen for a few milisseconds when the minimized window is brought to foreground
- Sometimes, clicking to join a game on Roblox launcher, stud may or may not hang on home screen for a few seconds.
Warning
Stud is still a work in progress: it boots, logs in, renders the real app and joins real games, and it also breaks in ways nobody has measured yet. A log from a machine that isn't ours is the most useful thing you can send (the tray's Export logs puts a session in one file)
1.1.5 - X11 fixes and more fixes
Fixed a ton of things :)
This is a follow-up of 1.1.4 since this release was broken.
- Fixed resizing and maximising killing the game on X11
- Fixed the strip of desktop showing through the window while resizing
- Fixed HiDPI on X11 rendering black
- Fixed a freeze when a swapchain was destroyed while FSR was still drawing into it
- Mapped memory is now shared with the renderer instead of copied through a socket
- One thread now owns the render connection, so the engine stops waiting on a queue drain
- Buffer and image memory requirements are answered from memory instead of a round trip
- Fixed textures on AMD
- Fixed swapchain while window is in background
Warning
Stud is still a work in progress: it boots, logs in, renders the real app and joins real games, and it also breaks in ways nobody has measured yet. A log from a machine that isn't ours is the most useful thing you can send (the tray's Export logs puts a session in one file)
1.1.3 - Migration to uffd-scan
- Moved from barrier to uffd-scan on graphics backend
- Fixed ' not opening in-game inventory
- Fixed SIGSEGV on closing Stud
- Fixed not being able to type W while walking
- Fixed linux mint qt_6.10 not found error
- Leaving first person keeps the cursor in the middle instead of jumping back
Stud is now listed in the cpak store (https://cpak.it/store/apps/stud)
Warning
Stud is still a work in progress: it boots, logs in, renders the real app and joins real games, and it also breaks in ways nobody has measured yet. A log from a machine that isn't ours is the most useful thing you can send (the tray's Export logs puts a session in one file)
1.1.2 - Hotfix
1.1.2 - Hotfix
- The Arch package was missing three library dependencies.
Warning
Stud is still a work in progress: it boots, logs in, renders the real app and joins real games, and it also breaks in ways nobody has measured yet. A log from a machine that isn't ours is the most useful thing you can send (the tray's Export logs puts a session in one file)
1.1.1 - Mouse, keyboard, FSR and more!
Mouse finally behaves the way it does on Windows, keyboards work in every layout, and Stud now has FSR Upscaling.
The cursor:
Camera orbit, 2D drags, in-game UI panels and first person each want the cursor to
behave differently.
With that one fact, the rest followed:
- The cursor stays put through a camera rotation and follows your hand everywhere
else, because the engine is asked which is happening rather than guessed at - The pointer is confined to the window during a camera drag, so a long spin is no
longer stopped by the edge of your screen - Releasing a drag no longer throws the camera: a warp's own echo used to reach the
engine as a −390 pixel flick of the hand - Fixed a Wayland protocol error that could kill the window when the engine entered
first person mid-drag - The modern cursor art, instead of the old low-res one
Input also arrives sooner. it's read the moment the compositor delivers it rather
than on a timer, which lifted the idle frame rate from a hard 60 to 144.
The keyboard:
Stud now uses your real keyboard layout, instead of assuming a US one.
- Accented characters work:
´+eisé,~+aisã /opens chat and search- Holding a key and alt-tabbing no longer leaves your character walking forever
Your language:
The app comes up in your system language, instead of always English.
FSR upscaling:
Settings → Graphics → FSR Upscaler. The game renders at your window's logical
size and Stud rebuilds the frame at full resolution, instead of letting the
compositor stretch it. EASU and RCAS, ported from AMD's own FidelityFX reference.
Sharpening is a slider, 0–125%.
Needs HiDPI off. that's the configuration where the game renders below your
screen.
Everything else:
- A game link opens in the Stud you already have running, and brings it to the front
- Closing Stud no longer leaves a crash report behind
- Older CPUs are supported
- The app shell's Exit button closes Stud, instead of doing nothing
- Chat text is the right size and the right typeface — it was being drawn 26% small
in the legacy font - Voice chat can ask for a microphone: Stud now answers the permissions protocol,
which previously denied every request. Untested end to end - Restart button in Settings, beside Save, for comparing two settings quickly
- Right-click any setting to put it back to its default
- Stud tells you when a newer version exists
Packages:
rpm, deb, Arch pkg.tar.zst, a single-file .flatpak and the universal
AppImage are attached below. all built from one tree, so they can't disagree about
what's inside. stud-bin is the AUR package, and a Flatpak manifest is in the
repository.
Warning
Stud is still very much a work in progress: it boots, logs in, renders the real app
and joins real games, and it also breaks in ways nobody has measured yet. A log
from a machine that isn't ours is the most useful thing you can send (the tray's
Export logs puts a session in one file)