ValveSoftware / gamescope

SteamOS session compositing window manager
Other
3.03k stars 199 forks source link

Errors when launching games with Gamescope #1346

Open troy0h opened 4 months ago

troy0h commented 4 months ago

The two games I currently use Gamescope on both have errors when launching. Helldivers 2: (gamescope -f -w 2560 -h 1440 -- mangohud %command% --use-d3d11) Team Fortress 2: (gamescope -f -w 2560 -h 1440 -- mangohud %command%) Both games worked perfectly in Gamescope fairly recently, and now crash very soon after getting into the game.

CreateSwapchainHKR: Creating swapchain for non-Gamescope swapchain. Hooking has failed somewhere! You may have a bad Vulkan layer interfering.

If I press OK, I get another error:

QueuePresentKHR: Attempting to present a non-hooked swapchain. Hooking has failed somewhere! You may have a bad Vulkan layer interfering.

sharkautarch commented 4 months ago

@troy0h do you also have that issue when running w/o mangohud?

misyltoad commented 4 months ago

Yes, it seems the mangohud layer is broken here. You can just workaround it by using --mangoapp instead,

matte-schwartz commented 4 months ago

I've seen this error as well recently, on my NVIDIA rig with driver 555.42.02. For example, I'm able to trigger the Vulkan layer pop-up by using the Performance Overlay within this nested steam window: gamescope -e -f -H 1440 -W 3440 --hdr-enabled -- steam -steamdeck -steampal -tenfoot -steamos3

Toggling the performance overlay on and trying to launch Ori and the Will of the Wisps gives me:

QueuePresentKHR: Attempting to present a non-hooked swapchain.
Hooking has failed somewhere!
You may have a bad Vulkan layer interfering.

while keeping it off lets the game launch perfectly with HDR enabled.

I just tried compiling MangoHud from source and I seem to be able to use gamescope -e -f -H 1440 -W 3440 --hdr-enabled --mangoapp -- steam -steamdeck -steampal -tenfoot -steamos3 to add the MangoHud overlay without swapchain warnings now.

troy0h commented 4 months ago

Yes, it seems the mangohud layer is broken here. You can just workaround it by using --mangoapp instead,

Yep, this fixed it, seems like it was just a mangohud issue

Virkkunen commented 4 months ago

Facing the same issue recently. Running with --mangoapp from my Arch installation will open the game but without mangohud, almost as if the command is being ignored.

EDIT: I'm running Arch, Plasma 6.1 beta, nvidia-open-beta-dkms 555, kwin-explicit-sync patch, mangohud from Arch's repository

misyltoad commented 4 months ago

Let me guess, your distro does not build mangoapp? :)

troy0h commented 4 months ago

Facing the same issue recently. Running with --mangoapp from my Arch installation will open the game but without mangohud, almost as if the command is being ignored.

weird, im on arch too and --mangoapp works fine for me my launch options for helldivers 2 right now is gamescope -f -r 165 -w 2560 -h 1440 --mangoapp -- %command% --use-d3d11 and that works fine for me, I don't have a mangoapp package maybe you forgot to install the lib32-mangohud package?

Virkkunen commented 4 months ago

lib32-mangohud and mangohud are both installed from pacman, I'm able to run mangoapp on the terminal and it gives me an error

Glfw Error 65550: X11: Platform not initialized
Glfw Error 65550: X11: Platform not initialized
Glfw Error 65550: X11: Platform not initialized
Glfw Error 65550: X11: Platform not initialized
[1]    3791 segmentation fault (core dumped)  mangoapp

but it shows mangoapp exists. I'm running my games with gamescope -W 3840 -H 2160 -r 165 --hdr-enabled --hdr-itm-enable --hdr-itm-sdr-nits 300 --hdr-itm-target-nits 1000 -f -e --mangoapp -- %command%

sharkautarch commented 4 months ago

lib32-mangohud and mangohud are both installed from pacman, I'm able to run mangoapp on the terminal and it gives me an error about the session not being initialised, but it shows mangoapp exists.

Maybe try reinstalling mangohud w/: pacman -S --overwrite='*' mangohud lib32-mangohud

Virkkunen commented 4 months ago

Maybe try reinstalling mangohud w/: pacman -S --overwrite='*' mangohud lib32-mangohud

Well, this did something, now running with mangoapp it'll show up the mangohud overlay and a black screen, a few seconds later the same two warnings will pop up

troy0h commented 4 months ago

Maybe try reinstalling mangohud w/: pacman -S --overwrite='*' mangohud lib32-mangohud

Well, this did something, now running with mangoapp it'll show up the mangohud overlay and a black screen, a few seconds later the same two warnings will pop up

That could be the HDR stuff, maybe try removing that and see what happens

misyltoad commented 4 months ago

Do you have other Vulkan layers interfering like it asks? =)

troy0h commented 4 months ago

Do you have other Vulkan layers interfering like it asks? =)

yeah thats what i was thinking with the HDR commands

misyltoad commented 4 months ago

What HDR commands? The Gamescope args should be fine

troy0h commented 4 months ago

What HDR commands? The Gamescope args should be fine

the --hdr-enabled --hdr-itm-enable --hdr-itm-sdr-nits 300 --hdr-itm-target-nits 1000 in his gamescope args, it can cause issues iirc, especially with mangohud

Virkkunen commented 4 months ago

Found out that the nvidia-open-beta-dkms (driver 555) was the issue. Changing to nvidia-beta-dkms (also 555) lets mangohud show up with --mangoapp, although the GPU stats are all 0. Maybe that's because of the beta driver?

20240604_090945

About the HDR flags, the only issue I found with them is that some games will simply freeze after some seconds or minutes, but I think this bug has been reported already and it's still under investigation.

Virkkunen commented 4 months ago

Found out that the nvidia-open-beta-dkms (driver 555) was the issue. Changing to nvidia-beta-dkms (also 555) lets mangohud show up with --mangoapp, although the GPU stats are all 0. Maybe that's because of the beta driver?

20240604_090945

Running the same games with just mangohud %command%, all stats are displayed without issue, only when running with gamescope and --mangoapp that the GPU stats aren't displayed. I also didn't find anything out of the ordinary on the console output while running with gamescope.