[GH-ISSUE #291] Heroic UI sluggish #90

Open
opened 2026-10-15 12:48:53 +00:00 by bsakaguchi · 13 comments
Owner

Originally created by @miroth on GitHub (Feb 23, 2026).
Original GitHub issue: https://github.com/games-on-whales/gow/issues/291

Hey folks!

I'd like to use the Heroic Launcher App in Wolf, but the UI is unusably slow.
Every Click/Scroll takes about 5 to 7 seconds to react.
Games started have normal fps, but a huge input lag.

I tried the following:

  • Using gamescope instead of sway
    • This fixes the slugishness, but Games are opened in the background, so not usable
  • Running the container locally, without Wolf
    • Works perfectly
  • I noticed that, like in #189 that my GPU is not listed, so I edited the Dockerfile to include AMD Mesa drivers. Now GPU shows, but UI is still sluggish
  • I added flatpak to the dockerfile and tried the flatpak Version of Heroic. Still sluggish.
  • I also tried using --disable-gpu as flag for Heroic, but that does not change anything.
    • (Which in turn could mean that the UI is not GPU accelerated)
  • Logs did not indicate anything wrong to me, but I am happy to provide them.

The problem persists with different clients.

I am not experiencing problems with other Apps (Steam, XFCE)

Any ideas?

Originally created by @miroth on GitHub (Feb 23, 2026). Original GitHub issue: https://github.com/games-on-whales/gow/issues/291 Hey folks! I'd like to use the Heroic Launcher App in Wolf, but the UI is unusably slow. Every Click/Scroll takes about 5 to 7 seconds to react. Games started have normal fps, but a huge input lag. I tried the following: - Using gamescope instead of sway - This fixes the slugishness, but Games are opened in the background, so not usable - Running the container locally, without Wolf - Works perfectly - I noticed that, like in #189 that my GPU is not listed, so I edited the Dockerfile to include AMD Mesa drivers. Now GPU shows, but UI is still sluggish - I added flatpak to the dockerfile and tried the flatpak Version of Heroic. Still sluggish. - I also tried using --disable-gpu as flag for Heroic, but that does not change anything. - (Which in turn could mean that the UI is not GPU accelerated) - Logs did not indicate anything wrong to me, but I am happy to provide them. The problem persists with different clients. I am not experiencing problems with other Apps (Steam, XFCE) Any ideas?
Author
Owner

@denis-dysen commented on GitHub (Feb 26, 2026):

I have this exact issue too, and use Gamescope as a workaround (my only problem with this is losing MangoHUD capability).

I find it strange how isolated this problem is, as games launched from Heroic do not experience the same sluggishness at all.

For reference, my GPU is an AMD 7800XT.

<!-- gh-comment-id:3968937754 --> @denis-dysen commented on GitHub (Feb 26, 2026): I have this exact issue too, and use Gamescope as a workaround (my only problem with this is losing MangoHUD capability). I find it strange how isolated this problem is, as games launched from Heroic do not experience the same sluggishness at all. For reference, my GPU is an AMD 7800XT.
Author
Owner

@miroth commented on GitHub (Feb 26, 2026):

Hmmm, I've got an 7700XT.

Can you try running the container locally without Wolf?

As a workaround, I built my own Image using Arch as base, which works fine so far. So maybe there is something off in the Ubuntu base images 🤷

<!-- gh-comment-id:3969071168 --> @miroth commented on GitHub (Feb 26, 2026): Hmmm, I've got an 7700XT. Can you try running the container locally without Wolf? As a workaround, I built my own Image using Arch as base, which works fine so far. So maybe there is something off in the Ubuntu base images 🤷
Author
Owner

@mjsf12 commented on GitHub (Feb 28, 2026):

I have to use an older version; 2.18.1 works well in a Lutris container. The bugs in Heroic Launcher are due to the Electron v39 update, and Ubuntu 25 is also buggy with them.

<!-- gh-comment-id:3977232616 --> @mjsf12 commented on GitHub (Feb 28, 2026): I have to use an older version; 2.18.1 works well in a Lutris container. The bugs in Heroic Launcher are due to the Electron v39 update, and Ubuntu 25 is also buggy with them.
Author
Owner

@pathe915 commented on GitHub (Mar 14, 2026):

Following this, I have the same issue.

<!-- gh-comment-id:4060725316 --> @pathe915 commented on GitHub (Mar 14, 2026): Following this, I have the same issue.
Author
Owner

@Naval8ase commented on GitHub (Mar 18, 2026):

Hmmm, I've got an 7700XT.

Can you try running the container locally without Wolf?

As a workaround, I built my own Image using Arch as base, which works fine so far. So maybe there is something off in the Ubuntu base images 🤷

I'm also experiencing the same issue. I'm a bit of a Docker noob, but could you give some pointers as to how to build such an image yourself?
(Considering the fact that many images are a bit outdated, I'd consider uploading them myself, once I know how to make more).

<!-- gh-comment-id:4084429796 --> @Naval8ase commented on GitHub (Mar 18, 2026): > Hmmm, I've got an 7700XT. > > Can you try running the container locally without Wolf? > > As a workaround, I built my own Image using Arch as base, which works fine so far. So maybe there is something off in the Ubuntu base images 🤷 I'm also experiencing the same issue. I'm a bit of a Docker noob, but could you give some pointers as to how to build such an image yourself? (Considering the fact that many images are a bit outdated, I'd consider uploading them myself, once I know how to make more).
Author
Owner

@miroth commented on GitHub (Mar 18, 2026):

I'm also experiencing the same issue. I'm a bit of a Docker noob, but could you give some pointers as to how to build such an image yourself?

No worries :-)

I myself do not really know if what I have done is "correct"...but anyway.
Just clone the Wolf repository. There is a folder "apps" where the Heroic Image Dockerfile is. This is the "cook receipe" for the image. Just navigate a terminal to the build folder of the Heroic Image, then do docker build -t FOOBAR .

This build the image from the Dockerfile in the current directory and names it FOOBAR.

Then I run the container like this:

docker run --name=zwg.arch_heroic --rm -it \
--ipc=host \
--cap-add=ALL \
--security-opt seccomp=unconfined \
-e XDG_RUNTIME_DIR=/tmp \
-v ${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:/tmp/${WAYLAND_DISPLAY}:rw \
-e XDG_SESSION_TYPE=wayland \
-e WAYLAND_DISPLAY=${WAYLAND_DISPLAY} \
-e RUN_SWAY=true \
FOOBAR

And then a window pops up with the image inside.

That said...I am using Linux and Wayland....I don't know if this is exactly the same under Windows or X11.

<!-- gh-comment-id:4084600859 --> @miroth commented on GitHub (Mar 18, 2026): > I'm also experiencing the same issue. I'm a bit of a Docker noob, but could you give some pointers as to how to build such an image yourself? No worries :-) I myself do not really know if what I have done is "correct"...but anyway. Just clone the Wolf repository. There is a folder "apps" where the Heroic Image Dockerfile is. This is the "cook receipe" for the image. Just navigate a terminal to the `build` folder of the Heroic Image, then do `docker build -t FOOBAR .` This build the image from the Dockerfile in the current directory and names it FOOBAR. Then I run the container like this: ``` docker run --name=zwg.arch_heroic --rm -it \ --ipc=host \ --cap-add=ALL \ --security-opt seccomp=unconfined \ -e XDG_RUNTIME_DIR=/tmp \ -v ${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:/tmp/${WAYLAND_DISPLAY}:rw \ -e XDG_SESSION_TYPE=wayland \ -e WAYLAND_DISPLAY=${WAYLAND_DISPLAY} \ -e RUN_SWAY=true \ FOOBAR ``` And then a window pops up with the image inside. That said...I am using Linux and Wayland....I don't know if this is exactly the same under Windows or X11.
Author
Owner

@Naval8ase commented on GitHub (Mar 18, 2026):

I'm also experiencing the same issue. I'm a bit of a Docker noob, but could you give some pointers as to how to build such an image yourself?

No worries :-)

I myself do not really know if what I have done is "correct"...but anyway. Just clone the Wolf repository. There is a folder "apps" where the Heroic Image Dockerfile is. This is the "cook receipe" for the image. Just navigate a terminal to the build folder of the Heroic Image, then do docker build -t FOOBAR .

This build the image from the Dockerfile in the current directory and names it FOOBAR.

Then I run the container like this:

docker run --name=zwg.arch_heroic --rm -it \
--ipc=host \
--cap-add=ALL \
--security-opt seccomp=unconfined \
-e XDG_RUNTIME_DIR=/tmp \
-v ${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:/tmp/${WAYLAND_DISPLAY}:rw \
-e XDG_SESSION_TYPE=wayland \
-e WAYLAND_DISPLAY=${WAYLAND_DISPLAY} \
-e RUN_SWAY=true \
FOOBAR

And then a window pops up with the image inside.

That said...I am using Linux and Wayland....I don't know if this is exactly the same under Windows or X11.

I'm on CachyOS, so should work fine too then! I thought switching to Arch as a base would be a lot more work.

<!-- gh-comment-id:4084850583 --> @Naval8ase commented on GitHub (Mar 18, 2026): > > I'm also experiencing the same issue. I'm a bit of a Docker noob, but could you give some pointers as to how to build such an image yourself? > > No worries :-) > > I myself do not really know if what I have done is "correct"...but anyway. Just clone the Wolf repository. There is a folder "apps" where the Heroic Image Dockerfile is. This is the "cook receipe" for the image. Just navigate a terminal to the `build` folder of the Heroic Image, then do `docker build -t FOOBAR .` > > This build the image from the Dockerfile in the current directory and names it FOOBAR. > > Then I run the container like this: > > ``` > docker run --name=zwg.arch_heroic --rm -it \ > --ipc=host \ > --cap-add=ALL \ > --security-opt seccomp=unconfined \ > -e XDG_RUNTIME_DIR=/tmp \ > -v ${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:/tmp/${WAYLAND_DISPLAY}:rw \ > -e XDG_SESSION_TYPE=wayland \ > -e WAYLAND_DISPLAY=${WAYLAND_DISPLAY} \ > -e RUN_SWAY=true \ > FOOBAR > ``` > > And then a window pops up with the image inside. > > That said...I am using Linux and Wayland....I don't know if this is exactly the same under Windows or X11. I'm on CachyOS, so should work fine too then! I thought switching to Arch as a base would be a lot more work.
Author
Owner

@mjsf12 commented on GitHub (Mar 18, 2026):

I'm also experiencing the same issue. I'm a bit of a Docker noob, but could you give some pointers as to how to build such an image yourself?

No worries :-)
I myself do not really know if what I have done is "correct"...but anyway. Just clone the Wolf repository. There is a folder "apps" where the Heroic Image Dockerfile is. This is the "cook receipe" for the image. Just navigate a terminal to the build folder of the Heroic Image, then do docker build -t FOOBAR .
This build the image from the Dockerfile in the current directory and names it FOOBAR.
Then I run the container like this:

docker run --name=zwg.arch_heroic --rm -it \
--ipc=host \
--cap-add=ALL \
--security-opt seccomp=unconfined \
-e XDG_RUNTIME_DIR=/tmp \
-v ${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:/tmp/${WAYLAND_DISPLAY}:rw \
-e XDG_SESSION_TYPE=wayland \
-e WAYLAND_DISPLAY=${WAYLAND_DISPLAY} \
-e RUN_SWAY=true \
FOOBAR

And then a window pops up with the image inside.
That said...I am using Linux and Wayland....I don't know if this is exactly the same under Windows or X11.

I'm on CachyOS, so should work fine too then! I thought switching to Arch as a base would be a lot more work.

Converting the container didn't seem too easy, but since you're using CachyOS, you could try using my version based on CachyOS v4. Feel free to check it out and adapt it for your needs. You can find it here: https://github.com/mjsf12/WolfImagesCachyos

P.S. The README was generated by AI, so there might be a few inaccuracies.

<!-- gh-comment-id:4085201455 --> @mjsf12 commented on GitHub (Mar 18, 2026): > > > I'm also experiencing the same issue. I'm a bit of a Docker noob, but could you give some pointers as to how to build such an image yourself? > > > > > > No worries :-) > > I myself do not really know if what I have done is "correct"...but anyway. Just clone the Wolf repository. There is a folder "apps" where the Heroic Image Dockerfile is. This is the "cook receipe" for the image. Just navigate a terminal to the `build` folder of the Heroic Image, then do `docker build -t FOOBAR .` > > This build the image from the Dockerfile in the current directory and names it FOOBAR. > > Then I run the container like this: > > ``` > > docker run --name=zwg.arch_heroic --rm -it \ > > --ipc=host \ > > --cap-add=ALL \ > > --security-opt seccomp=unconfined \ > > -e XDG_RUNTIME_DIR=/tmp \ > > -v ${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:/tmp/${WAYLAND_DISPLAY}:rw \ > > -e XDG_SESSION_TYPE=wayland \ > > -e WAYLAND_DISPLAY=${WAYLAND_DISPLAY} \ > > -e RUN_SWAY=true \ > > FOOBAR > > ``` > > > > > > > > > > > > > > > > > > > > > > > > And then a window pops up with the image inside. > > That said...I am using Linux and Wayland....I don't know if this is exactly the same under Windows or X11. > > I'm on CachyOS, so should work fine too then! I thought switching to Arch as a base would be a lot more work. Converting the container didn't seem too easy, but since you're using CachyOS, you could try using my version based on CachyOS v4. Feel free to check it out and adapt it for your needs. You can find it here: https://github.com/mjsf12/WolfImagesCachyos P.S. The README was generated by AI, so there might be a few inaccuracies.
Author
Owner

@Masong19hippows commented on GitHub (Mar 28, 2026):

Ok so I found the issue. I don't think the solution is to use somebody else's images based on a different OS. Before I was running wolf, I was using heroic just fine on Ubuntu 24.04 with sway even after the electron v39 bump. I downgraded the wolf base images and built the images myself with 24.04, but I was also still running into the same issue.

It looks like this issue is a gamescope + heroic config issue. During the bump to electron v39, I think they also updated the expected interaction with gamescope. This link details run arguments needed in order to make this work properly. I think all of them are needed to run a stable smooth experience, but I was able to get a working smooth experience by just adding this to the environment variables. I'm not sure what exactly they do because I can't find any documentation, but it works lol.

HEROIC_STARTUP_FLAGS=--ozone-platform=x11 --enable-features=UseOzonePlatform,WaylandWindowDecorations GenericName=gs_hgl

So my entire env block for the heroic runner is:

[ 'RUN_SWAY=true', 'GOW_REQUIRED_DEVICES=/dev/input/* /dev/dri/* /dev/nvidia*', 'HEROIC_STARTUP_FLAGS=--ozone-platform=x11 --enable-features=UseOzonePlatform,WaylandWindowDecorations GenericName=gs_hgl' ]

<!-- gh-comment-id:4147535020 --> @Masong19hippows commented on GitHub (Mar 28, 2026): Ok so I found the issue. I don't think the solution is to use somebody else's images based on a different OS. Before I was running wolf, I was using heroic just fine on Ubuntu 24.04 with sway even after the electron v39 bump. I downgraded the wolf base images and built the images myself with 24.04, but I was also still running into the same issue. It looks like this issue is a gamescope + heroic config issue. During the bump to electron v39, I think they also updated the expected interaction with gamescope. [This link](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/wiki/How-To:-Other-Tools-and-Wrappers-(gamescope)#:~:text=Categories%3DApp%2DStarter,X%2DKDE%2DUsername%3D) details run arguments needed in order to make this work properly. I think all of them are needed to run a **stable** smooth experience, but I was able to get a **working** smooth experience by just adding this to the environment variables. I'm not sure what exactly they do because I can't find any documentation, but it works lol. `HEROIC_STARTUP_FLAGS=--ozone-platform=x11 --enable-features=UseOzonePlatform,WaylandWindowDecorations GenericName=gs_hgl` So my entire env block for the heroic runner is: `[ 'RUN_SWAY=true', 'GOW_REQUIRED_DEVICES=/dev/input/* /dev/dri/* /dev/nvidia*', 'HEROIC_STARTUP_FLAGS=--ozone-platform=x11 --enable-features=UseOzonePlatform,WaylandWindowDecorations GenericName=gs_hgl' ]`
Author
Owner

@Kitty-Calia commented on GitHub (Mar 28, 2026):

Can confirm that the above fix works!

<!-- gh-comment-id:4148543805 --> @Kitty-Calia commented on GitHub (Mar 28, 2026): Can confirm that the above fix works!
Author
Owner

@ZackaryH8 commented on GitHub (Jun 6, 2026):

Ok so I found the issue

This fix does not work for me

<!-- gh-comment-id:4640525364 --> @ZackaryH8 commented on GitHub (Jun 6, 2026): > Ok so I found the issue This fix does not work for me
Author
Owner

@Masong19hippows commented on GitHub (Jun 6, 2026):

Can you post your whole config for heroic? I have tested this with the latest image like an hour ago and it works for me.

<!-- gh-comment-id:4640637222 --> @Masong19hippows commented on GitHub (Jun 6, 2026): Can you post your whole config for heroic? I have tested this with the latest image like an hour ago and it works for me.
Author
Owner

@ZackaryH8 commented on GitHub (Jun 7, 2026):

Can you post your whole config for heroic? I have tested this with the latest image like an hour ago and it works for me.

I put the env on the wrong container like an idiot, working fine

<!-- gh-comment-id:4643516940 --> @ZackaryH8 commented on GitHub (Jun 7, 2026): > Can you post your whole config for heroic? I have tested this with the latest image like an hour ago and it works for me. I put the env on the wrong container like an idiot, working fine
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/gow#90
No description provided.