#Fedora broken hardware acceleration

1 messages · Page 1 of 1 (latest)

rotund relic
#

OS: Fedora 39
dGPU: 1660ti; 7800XT
iGPU: UHD 630

Essentially what I would like to do is expose the iGPU's encoding hardware by default, but run everything else (graphics) off of the 7800 XT.

Is this possible?
Also OBS only really seems to work with nvenc in simple mode.

vainfo output:

#
michael2@valinor ~> vainfo --display drm --device /dev/dri/card0
Trying display: drm
libva info: VA-API version 1.20.0
Xlib:  extension "DRI2" missing on display ":0".
libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.20 (libva 2.20.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 23.3.5 ()
vainfo: Supported profile and entrypoints
      VAProfileNone                   :    VAEntrypointVideoProc
      VAProfileNone                   :    VAEntrypointStats
      VAProfileMPEG2Simple            :    VAEntrypointVLD
      VAProfileMPEG2Simple            :    VAEntrypointEncSlice
      VAProfileMPEG2Main              :    VAEntrypointVLD
      VAProfileMPEG2Main              :    VAEntrypointEncSlice
      VAProfileH264Main               :    VAEntrypointVLD
      VAProfileH264Main               :    VAEntrypointEncSlice
      VAProfileH264Main               :    VAEntrypointFEI
      VAProfileH264Main               :    VAEntrypointEncSliceLP
      VAProfileH264High               :    VAEntrypointVLD
      VAProfileH264High               :    VAEntrypointEncSlice
      VAProfileH264High               :    VAEntrypointFEI
      VAProfileH264High               :    VAEntrypointEncSliceLP
      VAProfileVC1Simple              :    VAEntrypointVLD
      VAProfileVC1Main                :    VAEntrypointVLD
      VAProfileVC1Advanced            :    VAEntrypointVLD
      VAProfileJPEGBaseline           :    VAEntrypointVLD
      VAProfileJPEGBaseline           :    VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline:    VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:    VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:
#
      VAProfileH264ConstrainedBaseline:    VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          :    VAEntrypointVLD
      VAProfileVP8Version0_3          :    VAEntrypointEncSlice
      VAProfileHEVCMain               :    VAEntrypointVLD
      VAProfileHEVCMain               :    VAEntrypointEncSlice
      VAProfileHEVCMain               :    VAEntrypointFEI
      VAProfileHEVCMain10             :    VAEntrypointVLD
      VAProfileHEVCMain10             :    VAEntrypointEncSlice
      VAProfileVP9Profile0            :    VAEntrypointVLD
      VAProfileVP9Profile2            :    VAEntrypointVLD
#

AMD:```

#
Trying display: wayland
libva info: VA-API version 1.20.0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.20 (libva 2.20.0)
vainfo: Driver version: Mesa Gallium driver 23.2.1 for AMD Radeon RX 7800 XT (gfx1101, LLVM 16.0.6, DRM 3.54, 6.5.11-300.fc39.x86_64)
vainfo: Supported profile and entrypoints
      VAProfileJPEGBaseline           :    VAEntrypointVLD
      VAProfileVP9Profile0            :    VAEntrypointVLD
      VAProfileVP9Profile2            :    VAEntrypointVLD
      VAProfileAV1Profile0            :    VAEntrypointVLD
      VAProfileAV1Profile0            :    VAEntrypointEncSlice
      VAProfileNone                   :    VAEntrypointVideoProc
#

Obviously with Fedora's reduced codecs (without mesa-freeworld) the igpu has better acceleration options

#

And additionally I would prefer to be able to use it to stream gameplay instead of the gpu that's rendering the game itself

tepid depot
#

It's generally recommended to use the hardware encoding of the GPU that renders the game, too.

Otherwise, I'd recommend using Nvenc from your Nvidia GPU rather than the iGPU.

#

The encoder doesn't care what GPU the content is rendered on (it might just be less efficient when it has to copy the framebuffer over)

rotund relic
#

QSV should be there by default, yes, but it appears to not be?

#

Yeah it doesn't work with handbrake, or obs

#

Okay nvm handbrake works once I installed the plugin

#

Well, I'm trying mesa freeworld now

tepid depot
#

Unofficial packages might not have it

rotund relic
#

I'll try again tomorrow

#

Mesa freeworld didn't make the rest of the codecs available. Still limited to VP9 and AV1 only

rotund relic
#

Swapped back

#

One other thing I would like to get working is acceleration in Firefox

#

I don't think this looks right

#

Fedora broken hardware acceleration

#

Anyway, the two options I would like to go for are:

#
  1. Get AMD gpu acceleration working
#
  1. Intel GPU acceleration working
#

I would prefer to completely disable the nvidia gpu to avoid it causing problems

#

Well

#

I'm out of ideas

#

@tepid depot You said quicksync should be available by default?

#

Does this apply even if the iGPU isn't the one running the DE?

tepid depot
#

But your board might disable the iGPU when it detects a dGPU

#

Check your board's firmware settings

rotund relic
#

Since it is a laptop and the laptop display is connected to only the igpu

tepid depot
#

Then not

#

Unless it's MUXed

rotund relic
#

No mux

#

Too old for that

#

Plus I can offload rendering to any gpu with DRI_PRIME

tepid depot
#

Have you tried using the Flatpak?

rotund relic
#

I have not

tepid depot
rotund relic
#

I would prefer not to use it, but I'll give it a go when I get back (breaks virtual webcam support last I checked)

tepid depot
#

It does not?

#

I've used the virtual camera with the Flatpak before

#

I hate typing on my phone

rotund relic
#

Well, it did the last time I tried (6 months ago?)

tepid depot
#

I've used it several times in the past months

rotund relic
#

Will try then

rotund relic
#

Tried; no luck