Skip to content

Linux build: game renders nothing (black window), but the F4 settings overlay displays correctly #5

Description

@cerroverb

Hi, and thanks for the work on this. I built the Linux version from the main branch and got it fully set up. The build completed with no errors, and setup verified and accepted my game files and title update, reporting "game_data looks good" and "TU1 installed".

When I launch, the window opens black and the game itself never shows anything. The key finding is that the graphics pipeline is actually working: if I press F4, the settings overlay appears and renders perfectly, menus, text, checkboxes, all correct. So the window, swapchain, and presentation are fine. It's specifically the game's own frames that never display. The process stays running the whole time and does not crash, and I tried pressing Enter, Space, Escape, and the arrow keys with the window focused in case it was waiting on a start or warning screen, but nothing appeared behind the overlay.

I confirmed a few things while narrowing this down. Vulkan validation layers load and report zero errors, so there's no API misuse. GPU usage shows a low steady render load while the black window is open, consistent with a loop running but drawing no game content. Turning HDR off on my display made no difference. Forcing the native Wayland backend made it hang, and forcing X11 through XWayland made it exit immediately, so the working path is the default one where the overlay renders but the game does not.

One thing that made this hard to debug: the build produces no log output at all. With log_level set to info and also forced to debug on the command line, and with a log_file configured, nothing is written to the terminal or to a file. So I have no game-side log to attach.

My setup, for reference:

Distro, Artix Linux, Wayland KDE Plasma
Kernel, 7.1.3-artix1-3
GPU, AMD Radeon RX 7900 XTX, with the CPU's integrated Raphael GPU also present
Graphics stack, Mesa/RADV 26.1.4, Vulkan 1.4.350
Compiler, system Clang 22.1.8, since the preset's clang-20 doesn't exist on Artix (Clang is shipped unversioned); built with -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++, completed cleanly
SDK version, shown in the window title as rexglue-v0.8.0.0-dev.unknown-Release
Runtime libs, librexruntime.so and libTracyClient.so are in place next to the executable

Since the settings overlay renders but the game does not, and there's no log output to work from, is this a known issue with the Linux build, and is there a way to get the game to write a log so I can provide more detail? Happy to test anything. Thanks.

EDIT: After posting, I found the official Linux prerelease build you posted (sdoj-recomp 1.51, linux-amd64) and tested it to rule out my own build. It behaves identically, the window opens and stays black, and the F4 settings overlay renders correctly on top of it, exactly like my self-compiled version. I reused the same verified game_data, and setup confirmed "game_data looks good" and "TU1 is already set up" before launching.

Since the prebuilt binary and my own build (which used Clang 22 instead of the preset's Clang 20) both fail the same way, this rules out my toolchain and build environment as the cause. It points at either the code itself or its interaction with my display setup (Wayland session, AMD RADV). Same machine and session as described above. I also got debug logging working on the prerelease (--log_level=debug --log_file=...), which produced a full log, so disregard the earlier note about no log output. It confirms the game runs normally with no errors: it sets up the graphics fine and reports VulkanPresenter: Created 3840x2160 swapchain with format 44, color space 0, presentation mode 0 followed by GPU system initialized (presentation=true), then spawns its GPU command and VSync threads and runs, audio decodes continuously right up until I close the window. So the swapchain is created and the game renders into it, the frames just never become visible, while the F4 overlay does show.

The likely relevant detail is the swapchain is created on a VK_KHR_xcb_surface, meaning it presents through XWayland rather than native Wayland. On my 4K Wayland session it looks like that XWayland game surface is never composited to the visible window. The only log warnings are benign and unrelated (a thread set_priority: permission denied, a missing optional gamecontrollerdb.txt, and NtCreateFile failures for PKG000.bin/CA022000.bin/CA022005.bin which appear to be the game probing for optional DLC/region files that aren't present). No graphics errors at all. Is there a way to force native Wayland presentation or a specific presentation mode, or is the XWayland swapchain not displaying a known issue on Wayland compositors? I also attached the full log. sdoj.log

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions