Forum / NoMachine for Linux / Hardware encoding not work with AMD GPU on HP T620 and Linux Mint 21.3
- This topic has 6 replies, 2 voices, and was last updated 2 weeks, 4 days ago by
kermu.
-
AuthorPosts
-
August 3, 2025 at 22:55 #53936
kermu
ParticipantHello,
I’m using NoMachine on an HP T620 thin client running Linux Mint 21.3 with kernel version
5.15.0-144-generic
. I’ve noticed that hardware encoding is not working — the server always falls back to software encoding.I’ve reviewed the article [AR02U01190](https://kb.nomachine.com/AR02U01190), which suggests installing AMD GPU drivers from the official AMD repository (
https://repo.radeon.com/amdgpu/
).Currently, I’m using the open-source drivers provided by the distribution:
`bash
$ dpkg -l | grep -i xorg | grep -i radeon
ii xserver-xorg-video-radeon 1:19.1.0-2ubuntu1 amd64 X.Org X server — AMD/ATI Radeon display driver
`
Could you please confirm whether the proprietary AMD GPU drivers from
repo.radeon.com
are still required to enable hardware-accelerated encoding in NoMachine on AMD GPUs? Or is hardware encoding expected to work with the open-sourceradeon
oramdgpu
drivers from the distribution?Thanks in advance for your support!
Best regards,
KrzysztofAugust 5, 2025 at 10:30 #53960Britgirl
KeymasterHi, it is preferable to always use proprietary drivers. Those are what we base our tests on. Thanks for bringing this to our attention, though, we’ll take a look at the open source ones to see if we can reproduce the same behaviour.
August 5, 2025 at 14:19 #53970Britgirl
KeymasterUpdate: we checked the open source drivers and can reproduce it. So stick to the proprietary ones as recommended in the article https://kb.nomachine.com/AR02U01190 🙂
August 7, 2025 at 08:54 #53998kermu
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! 🙂
August 8, 2025 at 15:27 #54022kermu
ParticipantContinuing 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 SzwabaAugust 12, 2025 at 09:40 #54070Britgirl
KeymasterHi, thanks for the follow-up. AR02U01190 does not mention Vulkan so I am not sure which article you are referring to. That article indicates amf-amdgpu-pro with the exact steps to follow.
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?
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.
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?
It’s not a question of NoMachine version being incompatible. NoMachine v8 and v9 support GPU-accelerated H.264 encoding provided by AMD’s Video Coding Engine (VCE) that uses AMF (Advanced Media Framework) SDK API on the Linux machines having a graphics card that support it, using official drivers from the provider. There are so many system configurations that we’re not able to test, and with all different cards available. We are checking with the latest Ubuntu to see if we can reproduce your issue.
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?
No, there aren’t any specific configuration options.
Any guidance on compatible driver versions, NoMachine versions, or alternative approaches (e.g., VAAPI, software encoding) would be greatly appreciated.
There’s not much we can add. As I mentioned earlier, it’s not about which specific NoMachine build. HW encoding on Linux in general is like a lottery and more than often it’s about finding the Linux distro version which works with your video card and the specific driver version. We’re checking in our own set-ups as I said and will come back to you.
August 12, 2025 at 15:09 #54074kermu
ParticipantPlease 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.
Attachments:
-
AuthorPosts
You must be logged in to reply to this topic. Please login here.