VCE encoder is not available with Ryzen 3200G

Support for HandBrake on Linux, Solaris, and other Unix-like platforms
Forum rules
An Activity Log is required for support requests. Please read How-to get an activity log? for details on how and why this should be provided.
Post Reply
racone
Posts: 3
Joined: Sat Apr 11, 2020 10:25 am

VCE encoder is not available with Ryzen 3200G

Post by racone »

Description of problem or question:
VCE encoder is not available with Ryzen 3200G and Vega 8 iGPU. I am pretty sure I have installed all the necessary stuff but the encoder is not available. The driver was installed without problems and is loaded correctly.
dmesg | grep "amdgpu version" shows:
[ 3.176032] [drm] amdgpu version: 5.2.0.19.50

I have builded Handbrake from source because 1.3.1 is not available for Ubuntu 18.04

The Vega 8 iGPU supports VCE and the encoder is available under Windows.
Any idea what else I could do?

Steps to reproduce the problem (If Applicable):
1. Install Ubuntu 18.04.03
2. Install amdgpu-pro as described in the instructions ("./amdgpu_pro_install")
3. Install amf-amdgpu-pro manually ("apt install amf-amdgpu-pro")
4. Build handbrake from source
5. Run ./ghb


HandBrake version (e.g., 1.0.0):
20200410192816-b0a2c68-master (x86_64)



Operating system and version (e.g., Ubuntu 16.04 LTS, macOS 10.13 High Sierra, Windows 10 Creators Update):
Ubuntu 18.04.03, Kernel 5.0.0



HandBrake Activity Log ***required*** (see How-to get an activity log)
n/a
racone
Posts: 3
Joined: Sat Apr 11, 2020 10:25 am

Re: VCE encoder is not available with Ryzen 3200G

Post by racone »

Ok, I missed the build flag "--enable-vce"...

It is still not working but at least I am getting a useful activity log:

Code: Select all

[16:14:43] gtkgui: HandBrake 20200410192816-b0a2c68-master (2020041101) - Linux x86_64 - https://handbrake.fr
0120-03-11 16:14:43  D96DAC0 [VulkanImportTable]   Error: ../../../../../public/common/VulkanImportTable.cpp(234):amf_load_library() failed to load vulkan dll!
0120-03-11 16:14:43  D96DAC0 [AMFDeviceVulkanImpl]   Error: ../../../../../runtime/src/core/DeviceVulkanImpl.cpp(382):AMF_ERROR 1 : AMF_FAIL: LoadFunctionsTable() failed - check if the proper Vulkan SDK is installed
0120-03-11 16:14:43  D96DAC0 [AMFContextImpl]   Error: ../../../../../runtime/src/core/ContextImpl.cpp(797):AMF_ERROR 1 : AMF_FAIL: pDeviceVulkan->Init(pVulkanDevice)
[16:14:43] VCE: AMF failed to initialise on the given Vulkan device.

0120-03-11 16:14:43  D96DAC0 [VulkanImportTable]   Error: ../../../../../public/common/VulkanImportTable.cpp(234):amf_load_library() failed to load vulkan dll!
0120-03-11 16:14:43  D96DAC0 [AMFDeviceVulkanImpl]   Error: ../../../../../runtime/src/core/DeviceVulkanImpl.cpp(382):AMF_ERROR 1 : AMF_FAIL: LoadFunctionsTable() failed - check if the proper Vulkan SDK is installed
0120-03-11 16:14:43  D96DAC0 [AMFContextImpl]   Error: ../../../../../runtime/src/core/ContextImpl.cpp(797):AMF_ERROR 1 : AMF_FAIL: pDeviceVulkan->Init(pVulkanDevice)
0120-03-11 16:14:43  D96DAC0 [VulkanImportTable]   Error: ../../../../../public/common/VulkanImportTable.cpp(234):amf_load_library() failed to load vulkan dll!
0120-03-11 16:14:43  D96DAC0 [AMFDeviceVulkanImpl]   Error: ../../../../../runtime/src/core/DeviceVulkanImpl.cpp(382):AMF_ERROR 1 : AMF_FAIL: LoadFunctionsTable() failed - check if the proper Vulkan SDK is installed
0120-03-11 16:14:43  D96DAC0 [AMFContextImpl]   Error: ../../../../../runtime/src/core/ContextImpl.cpp(797):AMF_ERROR 1 : AMF_FAIL: pDeviceVulkan->Init(pVulkanDevice)
0120-03-11 16:14:43  D96DAC0 [VulkanImportTable]   Error: ../../../../../public/common/VulkanImportTable.cpp(234):amf_load_library() failed to load vulkan dll!
0120-03-11 16:14:43  D96DAC0 [AMFDeviceVulkanImpl]   Error: ../../../../../runtime/src/core/DeviceVulkanImpl.cpp(382):AMF_ERROR 1 : AMF_FAIL: LoadFunctionsTable() failed - check if the proper Vulkan SDK is installed
0120-03-11 16:14:43  D96DAC0 [AMFContextImpl]   Error: ../../../../../runtime/src/core/ContextImpl.cpp(797):AMF_ERROR 1 : AMF_FAIL: pDeviceVulkan->Init(pVulkanDevice)
[16:14:43] hb_init: starting libhb thread
[16:14:43] hb_init: starting libhb thread
[16:14:43] hb_init: starting libhb thread
racone
Posts: 3
Joined: Sat Apr 11, 2020 10:25 am

Re: VCE encoder is not available with Ryzen 3200G

Post by racone »

Finally, it is working. I had to install the vulkan-sdk ... hope this will help somebody.
User avatar
JohnAStebbins
HandBrake Team
Posts: 5583
Joined: Sat Feb 09, 2008 7:21 pm

Re: VCE encoder is not available with Ryzen 3200G

Post by JohnAStebbins »

Nice! 8)

You may be the first to have made VCE work on Linux. I've never tested it myself. Don't want to install proprietary drivers.

So, would these be the complete instructions for others to make this work?
  • Ubuntu 18.04.03 or later
  • Install HandBrake build dependencies (see HandBrake build dependencies)
  • Install amdgpu-pro as described in the instructions ("./amdgpu_pro_install") Would you happen to have a link to this?
  • Install amf-amdgpu-pro manually

    Code: Select all

    sudo apt install amf-amdgpu-pro
    
  • install vulkan-sdk

    Code: Select all

    sudo apt install vulkan-sdk
    
  • Get HandBrake source from the downloads page or from github

    Code: Select all

    git clone https://github.com/HandBrake/HandBrake.git
    
  • Build

    Code: Select all

    cd HandBrake
    ./configure --enable-vce
    cd build
    make -j
    
  • Test run

    Code: Select all

    ./gtk/src/ghb
    
  • Install

    Code: Select all

    sudo make install
    
Post Reply