russelltg / wl-screenrec

High performance wlroots screen recording, featuring hardware encoding
Apache License 2.0
266 stars 10 forks source link

`No usable encoding entrypoint found for profile VAProfileH264High (7)` on RX 6700XT #31

Closed ThatOneCalculator closed 8 months ago

ThatOneCalculator commented 8 months ago
$ wl-screenrec -g "$(slurp)"
Using output DP-1
Opening libva device from DRM device /dev/dri/renderD128
[h264_vaapi @ 0x559a5e83b180] No usable encoding entrypoint found for profile VAProfileH264High (7).
failed to open encoder in low_power mode (Function not implemented), trying non low_power mode. if you have an intel iGPU, set enable_guc=2 in the i915 module to use the fixed function encoder. pass --low-power=off to suppress this warning
[h264_vaapi @ 0x559a5e83b180] Driver does not support some wanted packed headers (wanted 0xd, found 0).
[h264_vaapi @ 0x559a5e83b180] Driver does not support packed sequence headers, but a global header is requested.
[h264_vaapi @ 0x559a5e83b180] No global header will be written: this may result in a stream which is not usable for some purposes (e.g. not muxable to some containers).
138 fps
144 fps
144 fps
144 fps

OS: Arch Linux GPU: AMD RX 6700XT

russelltg commented 8 months ago

The output seems pretty clear to me--low power encoding isn't supported on your GPU (I'm not terribly familiar with the AMD encoder) so it falls back to not setting that parameter. If you want to suppress that warning, just pass --lower-power=off (auto is default).

Does the recording look good?

ThatOneCalculator commented 8 months ago

Seems fine enough. There are still some warnings(?):

Opening libva device from DRM device /dev/dri/renderD128
[h264_vaapi @ 0x5590500b3180] Driver does not support some wanted packed headers (wanted 0xd, found 0).
[h264_vaapi @ 0x5590500b3180] Driver does not support packed sequence headers, but a global header is requested.
[h264_vaapi @ 0x5590500b3180] No global header will be written: this may result in a stream which is not usable for some purposes (e.g. not muxable to some containers).

not sure if they're important or not though. I'm a bit concerned that the FPS is jumping all over the place

https://github.com/russelltg/wl-screenrec/assets/44733677/29b03515-ed09-459b-bdd9-a93a33550d38

russelltg commented 8 months ago

Yep, so that's because it doesn't encode frames when your screen contents haven't changed. You can disable this with --no-damage flag.

ThatOneCalculator commented 8 months ago

Ah, gotcha. Thank you for the help!