protonscr

CoD Plutonium launcher doesn't launch with Wayland

dxvkclosed wine bugnot our bug
doitsujin/dxvk#4560 · opened 2024-12-28 by nokia8801 · updated 2024-12-30 · 11 comments · github
1 matching comments, n / p to jump
Nnokia8801 2024-12-28 github

When Wine is set to use the native Wayland driver with Winetricks, Plutonium launcher doesn't work.

wl_surface#70: error 0: DRM Syncobj surface object already created for surface 70

Explicit sync related? Tries to create it twice?

Software information

Plutonium Launcher for various old Call of Duty games.

System information

  • GPU: Intel Arc A750
  • Driver: Mesa 24.3.2 (Intel Xe kernel driver, instead of i915)
  • Wine: wine-tkg-git 10.0rc3.r0.gf10d2d04-327 ( TkG Staging NTsync )
  • DXVK: 2.5.2
  • VKD3D: 2.14
  • Lutris: 0.5.18.r95.g9f972ea-1
  • DE/WM: GNOME 47.2 on Wayland
  • OS: Arch Linux
  • Kernel: Linux 6.12.6-arch1-1

Environment Variables

DXVK_CONFIG_FILE=/home/nokia8801/dxvk.conf
MANGOHUD_CONFIGFILE=/home/nokia8801/MangoHud.conf
LD_PRELOAD=/usr/lib64/libgamemode.so
SDL_VIDEODRIVER=wayland

DXVK Configuration File

dxgi.enableHDR = False
dxgi.hideIntelGpu = True
d3d11.maxFeatureLevel = 12_1
d3d9.shaderModel = 3
dxvk.deviceFilter "A750"
d3d11.samplerAnisotropy = 16
d3d9.samplerAnisotropy = 16
dxvk.enableMemoryDefrag = True

Additional Info

System Wine is wine-tkg-git compiled with WoW64, Wayland, Staging and NTsync support. Using Lutris to manage everything. In a newly created prefix just for Plutonium. It's just this application that has this error. Everything else works fine, so far.

It launches with WineD3D. But the performance is trash.

Lutris Log

lutris.log
wayland.log

Mmbriar 2024-12-28 github

I don't see how that could possibly be a DXVK issue. It probably works with wined3d because that uses OpenGL instead of vulkan. DXVK doesn't know anything about wayland or drm syncobjects.

Nnokia8801 2024-12-28 github

It still works with renderer=vulkan set with Winetricks when using WineD3D. So again, most likely a DXVK issue. I asked about this in GNOME Shell matrix channel before making this issue and one dev said it's probably a DXVK issue.

BBlisto91 2024-12-28 github

The wined3d Vulkan renderer doesn't support d3d9 if that is what the launcher uses so you are still using OpenGL with that command without dxvk.

Nnokia8801 2024-12-28 github

Could be. MangoHud says "DAMAVAND". Never seen that before. I first thought it might be a Mutter issue but dev said:

seems like DXVK is trying to create a sync object twice which afaik is not allowed by the corresponding wayland protocol
perhaps report this issue for dxvk developers

Another dev said:

if the nvidia driver is installed on the system, there was a driver bug which could result in that symptom
if that's not the case, it's indeed likely a DXVK issue
or another entity using Vulkan API

But I don't use NVIDIA, it's an Intel Arc GPU with Mesa drivers. This is the only application that has this error. Everything else works fine.

BBlisto91 2024-12-28 github

Could be. MangoHud says "DAMAVAND". Never seen that before.

Ok it should be using Vulkan then yes

Nnokia8801 2024-12-28 github

Could be. MangoHud says "DAMAVAND". Never seen that before.

Ok it should be using Vulkan then yes

I'm confused. So is it using Vulkan or OpenGL when renderer=vulkan? I've never seen DAMAVAND before, don't know what it means.

Is it not a DXVK issue like Mutter dev said?

With OpenGL, the launcher and the game works, but the performance is trash.

With Vulkan, the launcher works, but the game doesn't launch. I get this error:

Video card or driver doesn't support enough textures for the DirectX 9 code path.

Which is hopefully unrelated. But at least the launcher works. It just doesn't work at all with DXVK.

wl_surface#72: error 0: DRM Syncobj surface object already created for surface 72
Mmbriar 2024-12-28 github

seems like DXVK is trying to create a sync object twice which afaik is not allowed by the corresponding wayland protocol

DXVK at least doesn't create any sync objects or use any wayland protocol by itself at all. The only thing DXVK uses is the vulkan and win32 api and win32 vulkan wsi. The sync objects are created either by the driver or wine.

Nnokia8801 2024-12-28 github

Here is the log from Lutris with WAYLAND_DEBUG=1 variable.

wayland.log

I also found this issue looking around. But it's about NVIDIA, again.

https://gitlab.gnome.org/GNOME/mutter/-/issues/3664

Either this is a DXVK issue or I'm the first person to report this for Intel using Mesa? Or perhaps it is a Mutter issue and dev was wrong?

BBlisto91 2024-12-28 github

I'm confused. So is it using Vulkan or OpenGL when renderer=vulkan? I've never seen DAMAVAND before, don't know what it means.

damavand is the name of wined3d's Vulkan renderer.

In regards to the issue in question i can't personally comment on as i don't have the knowledge.

KK0bin maintainer 2024-12-28 github

Like the others have already said: while it's built for Linux, DXVK is essentially a Windows DLL. It doesn't know X11 or Wayland, it puts the image on screen using the Win32 Vulkan APIs. It's Wines job to make that work with X11 or Wayland.

Nnokia8801 2024-12-28 github

I have no idea why. But I just created a new prefix and instead of Lutris, I just ran the exe from the terminal with all those environment variables prefixed. I also installed dxvk-mingw and ran setup_dxvk install into that new prefix. And everything works. Very weird.

But doing the same from Lutris, I get that sync error.