PartyDeck: Fix Bloons TD 6 Launch Failure (Xwayland)
Encountering issues with PartyDeck and Bloons TD 6 not launching? You're not alone! This article dives into a common problem related to Xwayland, providing a detailed breakdown of the bug, how to reproduce it, expected behavior, and potential solutions. Let's get your game running smoothly.
Understanding the Issue
The core issue lies in the interaction between PartyDeck, Bloons TD 6, and Xwayland. When attempting to launch Bloons TD 6 through PartyDeck, the game fails to start, indicating a problem with Xwayland. Xwayland is a compatibility layer that allows X11 applications to run on Wayland compositors. This issue can be frustrating, but understanding the components involved helps in troubleshooting.
What is PartyDeck?
PartyDeck is a tool that facilitates running multiple instances of a game, each within its own isolated environment. This can be incredibly useful for various scenarios, such as streaming, testing, or simply playing the same game with different configurations simultaneously. It leverages technologies like gamescope and bwrap to create these isolated environments.
What is Bloons TD 6?
Bloons TD 6 is a popular tower defense game known for its strategic gameplay and engaging progression system. It's available on multiple platforms, including Linux, and is a favorite among strategy game enthusiasts.
What is Xwayland?
Xwayland is a crucial component in modern Linux desktop environments. It acts as a bridge between the older X11 display server protocol and the newer Wayland protocol. Many applications still rely on X11, so Xwayland allows them to function correctly within a Wayland environment. The error logs suggest that the problem arises during the initialization or communication phase of Xwayland, preventing the game from launching.
Reproducing the Bug
To better understand the issue, here’s how to reproduce the bug:
- Ensure you have PartyDeck installed on your Linux system.
- Attempt to start Bloons TD 6 using PartyDeck.
- Observe that the game fails to launch.
This simple process consistently triggers the bug, making it easier to identify and test potential fixes.
Expected Behavior
Ideally, when launching Bloons TD 6 through PartyDeck, the game should start without any issues. The expected behavior includes:
- The game window opening successfully.
- The game loading and displaying the main menu.
- The ability to interact with the game using the mouse and keyboard.
Instead, the game fails to launch, indicating a discrepancy between the expected and actual behavior.
Analyzing the Terminal Output
The terminal output provides valuable clues about the nature of the problem. Let's break down the key sections of the output:
PartyDeck Initialization
The initial lines show PartyDeck creating a profile and game save for Bloons TD 6. This indicates that PartyDeck is correctly setting up the isolated environment for the game:
[partydeck] Instances:
[partydeck] Creating profile .Conk
[partydeck] Profile created successfully
[partydeck] Creating game save Bloons TD 6 for .Conk
[partydeck] Profile save data created successfully
[partydeck] - Profile: .Conk, Monitor: 0, Resolution: 1920x1080
[partydeck] INSTANCE 1:
Command Execution
PartyDeck then executes a series of commands, including gamescope-kbm and bwrap. These commands are responsible for setting up the isolated environment and launching the game:
[partydeck] CWD=/home/josephk/.local/share/partydeck/tmp/game-0
[partydeck] ENABLE_GAMESCOPE_WSI=0
[partydeck] PROTONPATH=GE-Proton
[partydeck] PROTON_DISABLE_HIDRAW=1
[partydeck] PROTON_VERB=run
[partydeck] SDL_JOYSTICK_HIDAPI=0
[partydeck] WINEPREFIX=/home/josephk/.local/share/partydeck/prefixes/1
[partydeck] "/home/josephk/Downloads/PartyDeck-0.8.5/bin/gamescope-kbm"
[partydeck] "-W" "1920" "-H" "1080" "--backend=sdl" "--display-index=0" "--backend-disable-keyboard" "--libinput-hold-dev=/dev/input/event20," "--"
[partydeck] "bwrap" "--die-with-parent" "--dev-bind" "/" "/" "--tmpfs"
[partydeck] "/tmp"
[partydeck] "--bind"
[partydeck] "/home/josephk/.local/share/partydeck/profiles/.Conk/windata"
[partydeck] "/home/josephk/.local/share/partydeck/prefixes/1/drive_c/users/steamuser"
[partydeck] "/home/josephk/Downloads/PartyDeck-0.8.5/bin/umu-run"
[partydeck] "/home/josephk/.local/share/partydeck/tmp/game-0/BloonsTD6.exe"
[partydeck] ---------------------
Gamescope and Xwayland Warnings
The output from gamescope-kbm shows several warnings, including issues with input device access and missing scripts:
[gamescope-kbm] [Warn] InputStealer: Failed to grab exclusive lock on device: /dev/input/event20
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
Additionally, there are warnings related to Xwayland, such as missing keysyms:
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Could not resolve keysym XF86OK
> Warning: Could not resolve keysym XF86GoTo
> ...
Errors from xkbcomp are not fatal to the X server
These warnings suggest potential configuration issues or missing dependencies related to input handling and Xwayland.
Proton and UMU-Run
PartyDeck uses Proton, a compatibility layer for running Windows games on Linux, and UMU-Run, a launcher for managing game environments. The output shows Proton being initialized and the game executable being launched:
INFO: umu-launcher version 1.2.9 (3.13.7 (main, Aug 15 2025, 12:34:02) [GCC 15.2.1 20250813])
INFO: No GAMEID set, using umu-default
INFO: steamrt3 is up to date
INFO: GE-Proton is up to date
pressure-vessel-wrap[52351]: W: X11 socket /tmp/.X11-unix/X2 does not exist in filesystem, trying to use abstract socket instead.
ProtonFixes[52440] WARN: Skipping fix execution. We are probably running an unit test.
Proton: /home/josephk/.local/share/partydeck/tmp/game-0/BloonsTD6.exe
Proton: Executable a unix path, launching with /unix option.
wineserver: NTSync up and running!
The warning about the missing X11 socket is particularly noteworthy, as it indicates a potential problem with Xwayland's setup or availability.
Critical Errors and Termination
The final section of the output reveals critical errors related to D-Bus calls and the termination of the game:
[gamescope-kbm] [Warn] xwm: D-Bus call to get unit corresponding to pid 52491 failed!
[gamescope-kbm] [Info] launch: Primary child shut down!
terminate called without an active exception
(EE) failed to read Wayland events: Broken pipe
/home/josephk/.local/share/partydeck/tmp/game-0 is a mountpoint
umount: /home/josephk/.local/share/partydeck/tmp/game-0 (fuse-overlayfs) unmounted
The failed D-Bus calls suggest issues with inter-process communication, and the terminate called without an active exception error indicates a fatal problem within the application or its environment. The (EE) failed to read Wayland events: Broken pipe error strongly points to a problem with the Wayland or Xwayland connection.
Potential Solutions
Based on the error analysis, here are several potential solutions to try:
1. Verify Xwayland Installation and Configuration
Ensure that Xwayland is correctly installed and configured on your system. This involves checking the necessary packages and ensuring they are up to date. You may need to reinstall Xwayland or related packages to resolve any corrupted installations.
-
For Arch-based systems (like EndeavourOS):
sudo pacman -S xorg-xwayland
2. Check Environment Variables
The terminal output includes several ATTENTION messages about overridden environment variables. These variables might be interfering with the proper functioning of Xwayland. Try unsetting or modifying these variables to see if it resolves the issue.
-
Example (unsetting variables):
unset VK_KHR_PRESENT_WAIT unset VK_XWAYLAND_WAIT_READY
3. Update Graphics Drivers
Outdated or incompatible graphics drivers can cause issues with Xwayland and Gamescope. Ensure that your Intel Iris Xe Graphics drivers are up to date. This can often be done through your distribution's package manager or by downloading the latest drivers from the Intel website.
-
For most distributions:
sudo apt update && sudo apt upgrade # Debian/Ubuntu sudo pacman -Syu # Arch-based sudo dnf upgrade # Fedora
4. Address Input Device Access
The InputStealer: Failed to grab exclusive lock on device warning suggests a problem with input device permissions. Ensure that the user running PartyDeck has the necessary permissions to access the input device (/dev/input/event20 in this case).
-
Add user to the input group:
sudo usermod -a -G input $USERAfter running this command, you may need to log out and back in for the changes to take effect.
5. Review Gamescope Configuration
Check the Gamescope configuration files for any conflicting settings or misconfigurations. The warnings about missing scripts directories (/usr/local/share/gamescope/scripts, /etc/gamescope/scripts, /home/josephk/.config/gamescope/scripts) indicate that Gamescope may not be correctly configured.
- Ensure the necessary scripts are in place or adjust the configuration to point to the correct directories.
6. Investigate D-Bus Issues
The failed D-Bus calls point to potential problems with inter-process communication. Ensure that the D-Bus service is running correctly and that there are no conflicts or errors in the D-Bus configuration.
-
Check D-Bus service status:
systemctl status dbus
7. Proton Compatibility
Try using a different version of Proton with PartyDeck. Sometimes, specific Proton versions may have compatibility issues with certain games or configurations. You can usually select a different Proton version through the game's settings in PartyDeck or Steam.
8. Reinstall PartyDeck
In some cases, the installation of PartyDeck itself may be corrupted. Try reinstalling PartyDeck to ensure that all files are correctly placed and configured.
Conclusion
Troubleshooting issues with PartyDeck and Bloons TD 6 can be complex, but by systematically analyzing error messages and trying potential solutions, you can often resolve the problem. The key is to address each warning and error message individually, starting with the most critical ones.
By verifying Xwayland installation, updating graphics drivers, addressing input device access, and reviewing Gamescope and D-Bus configurations, you can increase your chances of successfully launching Bloons TD 6 with PartyDeck. Remember to test each solution individually to identify the exact cause of the problem.
For further information on troubleshooting similar issues, you can refer to the Arch Linux Wiki, which provides extensive documentation and solutions for various Linux-related problems.