mirror of
https://github.com/games-on-whales/wolf.git
synced 2026-10-15 13:02:03 +00:00
[GH-ISSUE #320] [Intel iGPU] HEVC doesn't work with VAAPI #222
Labels
No labels
🧠 1 - 🤖 999
AMD
bug
bug
cannot reproduce
documentation
duplicate
easy
enhancement
enhancement
enhancement
fixed?
fixed?
good first issue
hard
help wanted
Intel
invalid
LXC
medium
moonlight-protocol
Multi GPU
nixos
not a bug
nvidia
pull-request
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
games-on-whales/wolf#222
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Ackernym on GitHub (Dec 22, 2025).
Original GitHub issue: https://github.com/games-on-whales/wolf/issues/320
After setting up wolf on my host device whenever I try to connect to the wolfui or the test ball containers I only see a black screen. I read in the troubleshooting guide and thought this was just wolf taking a while to download all of the docker images, but the image never showed up. Additionally when I click on the test ball I still see a black screen, but I hear the sound being played.
After playing around with some moonlight settings I was able to get a video output from wolf only when I switch the video codec to H.264 instead of having it be automatic.
I'm using NixOS and the GPU I'm using is just the integrated iGPU which is an Intel HD 530. From what I read online the iGPU should be able to support HEVC and, if it can't, then I'm curious as to why Moonlight isn't requesting the H.264 codec which seems to work.
Thanks for any help!
Docker Compose File:
Docker log file:
@ABeltramo commented on GitHub (Dec 22, 2025):
From the logs it seems that Wolf is able to detect HEVC in your card but then fails to actually encode a frame using it. This could be either an option in our encoding pipeline that isn't supported or something to do with the zero copy pipeline where the input DMA buffer can't be used for some reason.
You can play with the encoding options in your
config.tomlby editing this block https://github.com/games-on-whales/wolf/blob/stable/src%2Fmoonlight-server%2Fstate%2Fdefault%2Fconfig.v6.toml#L382-L389Or you can try disabling the zero copy pipeline by adding the env variable
WOLF_USE_ZERO_COPY=FALSE@Ackernym commented on GitHub (Dec 22, 2025):
Okay, so I did a bit more testing and I was able to get HEVC encoding to work. I first tried adding the env variable
WOLF_USE_ZERO_COPY=FALSEbut that didn't change anything.After that I removed that line and decided to see if commenting out the va HEVC encoder plugin section that you linked would change anything and it worked, so it would seem like the intel HD 530 doesn't want to play nicely with the va plugin on my system for some reason.
I did have one other question regarding the config.toml file. I noticed that in the file you linked that the gstreamer definitions are at the end of the toml file after the profiles, but in my config file they come right after the uuid before the paired clients. my config file also is missing the explanatory comments. Is this typical behavior or did I pull an older image where the default config file is different?
@ABeltramo commented on GitHub (Dec 23, 2025):
Nice, commenting out the VAAPI encoder made it fallback to QuickSync and that seems to work for you. I've recently changed that default after some users were affected by the opposite:
qsvwasn't working whilstvawhilst using the new-ish discrete Intel GPUs.The order in which the top level keys are defined doesn't matter in TOML, you can move them freely in the file, also...
... the library that Wolf uses for writing the TOML config file doesn't properly support them. The file has been written by Wolf when you pair a Moonlight client (for persistence) and that's what caused the difference with the default one in our repo. All good and normal 😉