kermu

Forum Replies Created

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • kermu
    Participant

    Please install only amf-amdgpu-pro (not vulkan-amdgpu-pro) and follow the steps in the article. I just updated it because AMD website’s link is now different.

    In current AMDGPU-Pro releases, amf-amdgpu-pro has a hard dependency on vulkan-amdgpu-pro:

    apt depends amf-amdgpu-pro | grep vulkan
    Depends: vulkan-amdgpu-pro

    It is possible to forcibly remove it:

    apt depends amf-amdgpu-pro | grep vulkan
    Depends: vulkan-amdgpu-pro

    but this causes package inconsistency and does not resolve the potential runtime requirement for libvulkan* libraries during AMF VCE initialization.

    Even if vulkan-amdgpu-pro is removed, current AMF behavior indicates that libvulkan.so is still attempted to be loaded at runtime. If missing, this results in VCE initialization failure and NoMachine falling back to CPU encoding.

    [VulkanImportTable] amf_load_library() failed to load vulkan dll!
    [AMFDeviceVulkanImpl] AMF_FAIL: LoadFunctionsTable() failed
    [AMFContextImpl] AMF_FAIL: pDeviceVulkan->Init(...)
    VCE: WARNING! Failed to init device.
    VCE: WARNING! Failed to create encoder.
    Info: Using H.264 software encoder.

    This means NoMachine not trying to ignore vulkan and force initialisation VCE or other available hardware encoding methods (e.g., VA-API) but falls back to a CPU encoder.

    My question is: if Vulkan isn’t initialized properly, is it possible to use a hardware encoder ? AMD doesn’t provide Vulkan support for this (Radeon HD 8330E) GPU in its vulkan-amdgpu-pro, and its working open source implementation can’t be used in this case.

    kermu
    Participant

    Continuing this thread, in relation to the information below, I have a few questions

    Current Setup and Issue:
    – Hardware: HP T620, AMD GX-217GA with Radeon HD 8330E.
    – OS: Linux Mint 21.3 (Ubuntu 22.04 base).
    – Drivers: AMDGPU-Pro 23.20 (amdgpu-install_5.7.00.48.50700-1666569.22.04, amf-amdgpu-pro_1.4.31, vulkan-amdgpu-pro_23.20.00.48).
    – NoMachine: Latest version 9.1.24-6.
    – Issue: Hardware encoding fails, using VCE initialisation via AMF:

    Test with ffmpeg supported AMF

    [h264_amf] AMFDeviceVulkanImpl: Error: ../../../../../runtime/src/core/DeviceVulkanImpl.cpp(1114):Assertion failed:vkCreateDevice() failed, Error=-8

    vulkaninfo also fails with:

    ERROR at ./vulkaninfo/vulkaninfo.h:649:vkCreateInstance failed with ERROR_INCOMPATIBLE_DRIVER

    – Logs: dmesg confirms VCE 2.0 initialization (Found VCE firmware Version: 50.10 Binary ID: 2, VCE initialized successfully). lsmod shows amdgpu loaded.

    Background:
    According to [AR02U01190](https://kb.nomachine.com/AR02U01190), NoMachine requires amf-amdgpu-pro and vulkan-amdgpu-pro for HW encoding with AMD GPUs. However, my Radeon HD 8330E seems to have limited support in AMDGPU-Pro 23.20’s Vulkan driver, causing the above errors. Previous vulkaninfo output with Mesa radv showed partial Vulkan support (AMD Radeon Graphics (RADV KABINI)), but radv doesn’t support AMF.

    From my research, newer AMDGPU-Pro versions (22.20 and later) rely on Vulkan for AMF to initialize VCE, which fails on my GPU. Older drivers (e.g., 19.20 or 20.40) may use OpenCL or other APIs for AMF-VCE communication, potentially bypassing Vulkan.

    Questions:
    1. If I install older AMDGPU-Pro drivers (e.g., 19.20 or 20.40) that don’t require vulkan-amdgpu-pro for AMF to initialize VCE, will the latest NoMachine version support hardware encoding (H.264) on my Radeon HD 8330E?
    2. If the latest NoMachine version is incompatible with these older drivers, what is the latest NoMachine version that supports HW encoding with AMDGPU-Pro 19.20 or 20.40 for my GPU?
    3. Are there specific configuration steps (e.g., in /usr/NX/etc/node.cfg) or workarounds (e.g., using VAAPI) to enable HW encoding with my setup?

    Any guidance on compatible driver versions, NoMachine versions, or alternative approaches (e.g., VAAPI, software encoding) would be greatly appreciated. Thank you!

    Best regards,
    Krzysztof Szwaba

    kermu
    Participant

    [b]Re: Hardware encoding not work with AMD GPU on HP T620 and Linux Mint 21.3[/b]

    Hi everyone,

    I’d like to contribute to this thread with my own detailed testing on an identical platform (HP T620, AMD GX-415GA, VCE 2.0). Hardware video encoding works via VAAPI, but NoMachine never activates it.

    [b]System summary:[/b] [list] []OS: Linux Mint 21.3 (based on Ubuntu 22.04) []Kernel: 5.15.0-144-generic []GPU: Radeon HD 8330E (Kabini) with UVD 4.2 / VCE 2.0 []Driver: AMDGPU-PRO 6.4.60402 (with amf-amdgpu-pro + VAAPI libraries) [*]NoMachine: nxserver running as system service, user “nx”[/list]

    [b]VCE & VAAPI encoder tested working[/b] VAAPI confirmed inside NoMachine session using: [code]ffmpeg -vaapi_device /dev/dri/renderD128 -f lavfi -i testsrc=size=640×480:rate=30
    -vf ‘format=nv12,hwupload’ -c:v h264_vaapi -b:v 2M -t 30 test.mp4[/code]

    [b]vainfo output:[/b] [code]vainfo: VA-API version: 1.14 (libva 2.12.0) Driver version: Mesa Gallium driver 23.2.1 for AMD Radeon Graphics (kabini) VAProfileH264High : VAEntrypointEncSlice[/code]

    [b]Yet NoMachine still reports:[/b] [quote]SW encoding, codec H.264[/quote]

    [b]Relevant logs:[/b] [u]dmesg | grep -iE ‘vce|uvd|amdgpu|radeon'[/u] [code][drm] Found UVD firmware Version: 1.64 Family ID: 9 [drm] Found VCE firmware Version: 50.10 Binary ID: 2 [drm] UVD initialized successfully. [drm] VCE initialized successfully. [drm:amdgpu_device_ip_set_powergating_state] ERROR set_powergating_state of IP block <vce_v2_0> failed -22[/code]

    [u]lsmod | grep -i amdgpu[/u] [code]amdgpu 17444864 4 amddrm_ttm_helper 16384 1 amdgpu amdttm 94208 2 amdgpu,amddrm_ttm_helper amdxcp 16384 1 amdgpu amddrm_buddy 20480 1 amdgpu amd_sched 53248 1 amdgpu amdkcl 45056 3 amd_sched,amdttm,amdgpu i2c_algo_bit 16384 1 amdgpu drm_kms_helper 315392 3 amdgpu,amdkcl drm 622592 10 drm_kms_helper,amdgpu[/code]

    [u]dpkg -l | grep -i amdgpu | awk ‘{print $1, $2, $3}'[/u] [code]ii amdgpu-core 1:6.4.60402-2187269.22.04 ii amdgpu-dkms 1:6.12.12.60402-2187269.22.04 ii amdgpu-dkms-firmware 1:6.12.12.60402-2187269.22.04 ii amdgpu-install 6.4.60402-2187269.22.04 ii amdgpu-pro-core 25.10-2187634.22.04 ii amf-amdgpu-pro:amd64 1.4.37-2187634.22.04 ii libamdenc-amdgpu-pro:amd64 25.10-2187634.22.04 ii libdrm-amdgpu-amdgpu1:amd64 1:2.4.124.60402-2187269.22.04 [ii libdrm-amdgpu-common 1.0.0.60402-2187269.22.04 [ii libdrm-amdgpu1:amd64 2.4.113-2~ubuntu0.22.04.1 ii libdrm2-amdgpu:amd64 1:2.4.124.60402-2187269.22.04 ii xserver-xorg-video-amdgpu 22.0.0-1ubuntu0.2[/code]

    [u]strace_nxnode.log | grep -i render[/u] [code]openat(AT_FDCWD, “/sys/class/drm/renderD128/device/vendor”, O_RDONLY) = 3 → returns: “0x1002” (AMD) → BUT: No open to /dev/dri/renderD128 afterwards[/code]

    [b]Summary:[/b] [list] []VCE works []Permissions are correct (user nx ∈ render) []VAAPI encoder tested and working via ffmpeg []NoMachine detects vendor but does NOT enable hardware encoding [/list]

    I suspect NoMachine filters based on VAAPI driver name, VCE generation (v2.0), or hardcodes GPU IDs.

    Any confirmation from the dev team whether this GPU (Kabini / VCE 2.0) is blocked/unsupported would be helpful.

    Thanks! 🙂

Viewing 3 posts - 1 through 3 (of 3 total)