Hi. This weekend I switched from Nvidia GTX 1070 to AMD RX 7900 XTX without much knowledge about what I’m doing and miraculously everything seems to work fine (games, benchmarks, movies, youtube) but these 2 things:
-
obs
shows only software encoder in settings and there should be AV1 hardware encoder available (I think):
-
I think it’s for the same reason
vdpauinfo
says no encoding is supported, not even HEVC:vdpauinfo output
display: :0 screen: 0 API version: 1 Information string: G3DVL VDPAU Driver Shared Library version 1.0 Video surface: name width height types ------------------------------------------- 420 16384 16384 NV12 YV12 422 16384 16384 UYVY YUYV 444 16384 16384 Y8U8V8A8 V8U8Y8A8 420_16 16384 16384 422_16 16384 16384 444_16 16384 16384 Decoder capabilities: name level macbs width height ---------------------------------------------------- MPEG1 --- not supported --- MPEG2_SIMPLE --- not supported --- MPEG2_MAIN --- not supported --- H264_BASELINE --- not supported --- H264_MAIN --- not supported --- H264_HIGH --- not supported --- VC1_SIMPLE --- not supported --- VC1_MAIN --- not supported --- VC1_ADVANCED --- not supported --- MPEG4_PART2_SP --- not supported --- MPEG4_PART2_ASP --- not supported --- DIVX4_QMOBILE --- not supported --- DIVX4_MOBILE --- not supported --- DIVX4_HOME_THEATER --- not supported --- DIVX4_HD_1080P --- not supported --- DIVX5_QMOBILE --- not supported --- DIVX5_MOBILE --- not supported --- DIVX5_HOME_THEATER --- not supported --- DIVX5_HD_1080P --- not supported --- H264_CONSTRAINED_BASELINE --- not supported --- H264_EXTENDED --- not supported --- H264_PROGRESSIVE_HIGH --- not supported --- H264_CONSTRAINED_HIGH --- not supported --- H264_HIGH_444_PREDICTIVE --- not supported --- VP9_PROFILE_0 --- not supported --- VP9_PROFILE_1 --- not supported --- VP9_PROFILE_2 --- not supported --- VP9_PROFILE_3 --- not supported --- HEVC_MAIN --- not supported --- HEVC_MAIN_10 --- not supported --- HEVC_MAIN_STILL --- not supported --- HEVC_MAIN_12 --- not supported --- HEVC_MAIN_444 --- not supported --- HEVC_MAIN_444_10 --- not supported --- HEVC_MAIN_444_12 --- not supported --- AV1_MAIN --- not supported --- AV1_HIGH --- not supported --- AV1_PROFESSIONAL --- not supported --- Output surface: name width height nat types ---------------------------------------------------- B8G8R8A8 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 P010 P016 A8I8 I8A8 R8G8B8A8 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 P010 P016 A8I8 I8A8 R10G10B10A2 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 P010 P016 A8I8 I8A8 B10G10R10A2 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 P010 P016 A8I8 I8A8 Bitmap surface: name width height ------------------------------ B8G8R8A8 16384 16384 R8G8B8A8 16384 16384 R10G10B10A2 16384 16384 B10G10R10A2 16384 16384 A8 16384 16384 Video mixer: feature name sup ------------------------------------ DEINTERLACE_TEMPORAL y DEINTERLACE_TEMPORAL_SPATIAL - INVERSE_TELECINE - NOISE_REDUCTION y SHARPNESS y LUMA_KEY y HIGH QUALITY SCALING - L1 y HIGH QUALITY SCALING - L2 - HIGH QUALITY SCALING - L3 - HIGH QUALITY SCALING - L4 - HIGH QUALITY SCALING - L5 - HIGH QUALITY SCALING - L6 - HIGH QUALITY SCALING - L7 - HIGH QUALITY SCALING - L8 - HIGH QUALITY SCALING - L9 - parameter name sup min max ----------------------------------------------------- VIDEO_SURFACE_WIDTH y 48 4096 VIDEO_SURFACE_HEIGHT y 48 4096 CHROMA_TYPE y LAYERS y 0 4 attribute name sup min max ----------------------------------------------------- BACKGROUND_COLOR y CSC_MATRIX y NOISE_REDUCTION_LEVEL y 0.00 1.00 SHARPNESS_LEVEL y -1.00 1.00 LUMA_KEY_MIN_LUMA y LUMA_KEY_MAX_LUMA y
vainfo output
Trying display: wayland Trying display: x11 vainfo: VA-API version: 1.20 (libva 2.19.0) vainfo: Driver version: Mesa Gallium driver 23.1.7-1 for AMD Radeon RX 7900 XTX (gfx1100, LLVM 16.0.6, DRM 3.49, 6.1.51-1-MANJARO) vainfo: Supported profile and entrypoints VAProfileJPEGBaseline : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointVLD VAProfileAV1Profile0 : VAEntrypointVLD VAProfileNone : VAEntrypointVideoProc
I’m on X11. I installed the driver like so and mhwd -li
output looks OK:
❯ sudo mhwd -a pci nonfree 0300
mhwd -li output
❯ mhwd -li
> Installed PCI configs:
--------------------------------------------------------------------------------
NAME VERSION FREEDRIVER TYPE
--------------------------------------------------------------------------------
video-linux 2018.05.04 true PCI
Warning: No installed USB configs!
However when I try to check if GPU settings are fine:
❯ sudo mhwd-gpu --check # nothing
❯ sudo mhwd-gpu --status
:: status
warning: could not find '/etc/X11/xorg.conf.d/90-mhwd.conf'!
I tried mhwd-gpu --setmod catalyst
(although I’m not sure what it does but help says [nvidia/catalyst]
) but it didn’t solve anything.
I tried to follow some 2022 tutorial to fix OBS and it led me to install:
yay -S lib32-vulkan-amdgpu-pro vulkan-amdgpu-pro amf-amdgpu-pro obs-streamfx-git obs-vkcapture
It was supposed to bring AMF H.265/HEVC encoder if I run OBS with env variables:
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_pro_icd64.json:/usr/share/vulkan/icd.d/amd_pro_icd32.json OBS_USE_EGL=1 obs
These files exist but it didn’t fix anything and I noticed OBS showing some errors when I run it in terminal:
OBS output
debug: Found portal inhibitor
debug: Attempted path: share/obs/obs-studio/locale/en-US.ini
debug: Attempted path: /usr/share/obs/obs-studio/locale/en-US.ini
debug: Attempted path: share/obs/obs-studio/locale.ini
debug: Attempted path: /usr/share/obs/obs-studio/locale.ini
debug: Attempted path: share/obs/obs-studio/locale/en-GB.ini
debug: Attempted path: /usr/share/obs/obs-studio/locale/en-GB.ini
info: Using preferred locale 'en-GB'
debug: Attempted path: share/obs/obs-studio/themes/Yami.qss
debug: Attempted path: /usr/share/obs/obs-studio/themes/Yami.qss
info: Using EGL/X11
info: CPU Name: Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz
info: CPU Speed: 3602.615MHz
info: Physical Cores: 4, Logical Cores: 4
info: Physical Memory: 15958MB Total, 1089MB Free
info: Kernel Version: Linux 6.1.51-1-MANJARO
info: Distribution: "Manjaro Linux" Unknown
info: Desktop Environment: i3 (i3)
info: Session Type: x11
info: Window System: X11.0, Vendor: The X.Org Foundation, Version: 1.21.1
info: Qt Version: 6.5.2 (runtime), 6.5.1 (compiled)
info: Portable mode: false
info: OBS 29.1.3-1 (linux)
info: ---------------------------------
info: ---------------------------------
info: audio settings reset:
samples per sec: 44100
speakers: 2
max buffering: 1044 milliseconds
buffering type: dynamically increasing
info: ---------------------------------
info: Initializing OpenGL...
info: Loading up OpenGL on adapter AMD AMD Radeon RX 7900 XTX (gfx1100, LLVM 16.0.6, DRM 3.49, 6.1.51-1-MANJARO)
info: OpenGL loaded successfully, version 4.6 (Core Profile) Mesa 23.1.7-1, shading language 4.60
info: ---------------------------------
info: video settings reset:
base resolution: 3840x2160
output resolution: 3840x2160
downscale filter: Area
fps: 60/1
format: NV12
YUV mode: Rec. 709/Partial
info: NV12 texture support not available
info: P010 texture support not available
info: Audio monitoring device:
name: Default
id: default
info: ---------------------------------
warning: Failed to load 'en-US' text for module: 'decklink-captions.so'
warning: Failed to load 'en-US' text for module: 'decklink-output-ui.so'
libDeckLinkAPI.so: cannot open shared object file: No such file or directory
warning: A DeckLink iterator could not be created. The DeckLink drivers may not be installed
warning: Failed to initialize module 'decklink.so'
warning: Failed to load 'en-GB' text for module: 'frontend-tools.so'
warning: Failed to load 'en-GB' text for module: 'linux-alsa.so'
warning: Failed to load 'en-GB' text for module: 'linux-capture.so'
warning: Failed to load 'en-GB' text for module: 'linux-jack.so'
warning: Failed to load 'en-GB' text for module: 'linux-pipewire.so'
info: [pipewire] No captures available
warning: Failed to load 'en-GB' text for module: 'linux-pulseaudio.so'
warning: v4l2loopback not installed, virtual camera disabled
warning: Failed to load 'en-GB' text for module: 'linux-vkcapture.so'
info: [linux-vkcapture] plugin loaded successfully (version 1.4.3)
info: VAAPI: API version 1.20
info: FFmpeg VAAPI H264 encoding not supported
info: FFmpeg VAAPI HEVC encoding not supported
warning: Failed to load 'en-GB' text for module: 'obs-libfdk.so'
warning: Failed to load 'en-GB' text for module: 'obs-vst.so'
warning: Failed to load 'en-GB' text for module: 'rtmp-services.so'
info: [StreamFX] Loading Version 0.12.0b316-g3d3aef47
info: [StreamFX] <gfx::opengl> Version 4.6 initialized.
info: [StreamFX] Loaded Version 0.12.0b316-g3d3aef47
info: ---------------------------------
info: Loaded Modules:
info: text-freetype2.so
info: StreamFX.so
info: rtmp-services.so
info: obs-x264.so
info: obs-vst.so
info: obs-transitions.so
info: obs-outputs.so
info: obs-libfdk.so
info: obs-filters.so
info: obs-ffmpeg.so
info: linux-vkcapture.so
info: linux-v4l2.so
info: linux-pulseaudio.so
info: linux-pipewire.so
info: linux-jack.so
info: linux-capture.so
info: linux-alsa.so
info: image-source.so
info: frontend-tools.so
info: decklink-output-ui.so
info: decklink-captions.so
info: ---------------------------------
info: ==== Startup complete ===============================================
info: All scene data cleared
info: ------------------------------------------------
info: pulse-input: Server name: 'PulseAudio (on PipeWire 0.3.79) 15.0.0'
error: pulse-input: An error occurred while getting the source info!
info: [Loaded global audio device]: 'Desktop Audio'
info: - filter: 'Gain' (gain_filter)
info: pulse-input: Server name: 'PulseAudio (on PipeWire 0.3.79) 15.0.0'
error: pulse-input: An error occurred while getting the source info!
info: [Loaded global audio device]: 'Mic/Aux'
info: - filter: 'Noise Suppression' (noise_suppress_filter)
info: - filter: 'Compressor' (compressor_filter)
info: pulse-input: Server name: 'PulseAudio (on PipeWire 0.3.79) 15.0.0'
info: pulse-input: Audio format: s16le, 16000 Hz, 2 channels
info: pulse-input: Started recording from 'alsa_input.usb-SunplusIT_Inc_USB_2.0_Camera_J20210928-02.3.analog-stereo' (default)
info: [window-capture: 'Steam Window'] update settings:
title: Steam
class: steamwebhelper
error: xcb_composite_name_window_pixmap failed
info: xshm-input: Geometry 3840x2160 @ 0,0
info: v4l2-input: Start capture from /dev/video0
info: v4l2-input: Input: 0
info: v4l2-input: Resolution: 640x480
info: v4l2-input: Pixelformat: YU12
info: v4l2-input: Linesize: 640 Bytes
info: v4l2-input: Framerate: 30.00 fps
info: v4l2-input: /dev/video0: select timeout set to 166666 (5x frame periods)
info: Switched to scene 'Game'
info: ------------------------------------------------
info: Loaded scenes:
info: - scene 'Pause':
info: - source: 'Steam Please Stand By' (image_source)
info: - scene 'Game':
info: - source: 'Facecam' (scene)
info: - filter: 'Crop/Pad' (crop_filter)
info: - filter: 'Scaling/Aspect Ratio' (scale_filter)
info: - source: 'Screen Capture (XSHM)' (xshm_input)
info: - source: 'Desktop Audio' (pulse_output_capture)
info: - filter: 'Gain' (gain_filter)
info: - source: 'Microphone' (pulse_input_capture)
info: - filter: 'Noise Suppression' (noise_suppress_filter_v2)
info: - filter: 'Compressor' (compressor_filter)
info: - scene 'Steam':
info: - source: 'Steam Window' (xcomposite_input)
info: - source: 'Microphone' (pulse_input_capture)
info: - filter: 'Noise Suppression' (noise_suppress_filter_v2)
info: - filter: 'Compressor' (compressor_filter)
info: - scene 'Facecam':
info: - source: 'Webcam' (v4l2_input)
info: - filter: 'Crop/Pad' (crop_filter)
info: - filter: 'Scaling/Aspect Ratio' (scale_filter)
info: ------------------------------------------------
qt.gui.imageio: libpng warning: iCCP: known incorrect sRGB profile
qt.gui.imageio: libpng warning: iCCP: known incorrect sRGB profile
qt.gui.imageio: libpng warning: iCCP: known incorrect sRGB profile
qt.gui.imageio: libpng warning: iCCP: known incorrect sRGB profile
qt.gui.imageio: libpng warning: iCCP: known incorrect sRGB profile
error: v4l2-input: /dev/video0: select timed out
error: v4l2-input: /dev/video0: failed to log status
qt.gui.imageio: libpng warning: iCCP: known incorrect sRGB profile
qt.gui.imageio: libpng warning: iCCP: known incorrect sRGB profile
error: v4l2-input: /dev/video0: select timed out
error: v4l2-input: /dev/video0: failed to log status
info: adding 69 milliseconds of audio buffering, total audio buffering is now 69 milliseconds (source: Microphone)
Relevant packages that are currently installed on my system:
yay -Ss "vulkan|mesa|radeon|amd|vdpau" | grep Installed | cut -d' ' -f1
multilib/lib32-glu
multilib/lib32-mesa-vdpau
multilib/lib32-mesa-demos
multilib/lib32-mesa
multilib/lib32-mangohud
multilib/lib32-libvdpau
multilib/lib32-vulkan-intel
multilib/lib32-libva-vdpau-driver
multilib/lib32-libva-mesa-driver
multilib/lib32-vulkan-radeon
multilib/lib32-vulkan-icd-loader
extra/mhwd-amdgpu
extra/glu
extra/libteam
extra/spirv-tools
extra/mesa
extra/mesa-vdpau
extra/libvdpau
extra/vdpauinfo
extra/xf86-video-amdgpu
extra/mesa-utils
extra/libvdpau-va-gl
extra/libva-vdpau-driver
extra/mangohud
extra/mesa-demos
extra/libva-mesa-driver
extra/vkmark
extra/vulkan-intel
extra/vulkan-extra-layers
extra/vulkan-radeon
extra/vulkan-tools
extra/vulkan-html-docs
extra/vulkan-extra-tools
extra/vulkan-validation-layers
extra/vulkan-icd-loader
extra/vulkan-headers
Finally I tried to install obs-studio-amf
and it did help a little, i.e. it seems to be able to use AMD H264 hardware encoder, but it still isn’t AV1 or HEVC.
Please, help?