LibVA Updates - Support Public Version (#315)
* LibVA public - enable
* Support for RPM based OS
* Readme Updates
* Setup - Updates
* Setup - CentOS 7 unsupported
* Jenkins - Check Direct deps
[ROCm/rocdecode commit: 3b1d6932af]
This commit is contained in:
@@ -16,6 +16,7 @@ def runCompileCommand(platform, project, jobName, boolean debug=false, boolean s
|
||||
make -j\$(nproc)
|
||||
sudo make install
|
||||
sudo make package
|
||||
objdump -x /opt/rocm/lib/librocdecode.so | grep NEEDED
|
||||
ldd -v /opt/rocm/lib/librocdecode.so
|
||||
"""
|
||||
|
||||
|
||||
@@ -16,10 +16,11 @@ Documentation for rocDecode is available at
|
||||
### Changes
|
||||
|
||||
* Dependencies - Updates to core dependencies
|
||||
* LibVA Headers - Use public headers
|
||||
|
||||
### Fixes
|
||||
|
||||
*
|
||||
* Package deps
|
||||
|
||||
### Tested configurations
|
||||
|
||||
|
||||
@@ -190,16 +190,16 @@ if(HIP_FOUND AND Libva_FOUND)
|
||||
file(READ "/etc/os-release" OS_RELEASE)
|
||||
string(REGEX MATCH "22.04" UBUNTU_22_FOUND ${OS_RELEASE})
|
||||
|
||||
# Set the dependent packages
|
||||
set(rocDecode_DEBIAN_PACKAGE_LIST "rocm-hip-runtime, libva-amdgpu-drm2, libdrm-amdgpu1, mesa-amdgpu-va-drivers")
|
||||
set(rocDecode_RPM_PACKAGE_LIST "rocm-hip-runtime, libva-amdgpu, libdrm-amdgpu, mesa-amdgpu-dri-drivers")
|
||||
# Set the dependent packages - TBD: mesa-amdgpu-va-drivers should bring libdrm-amdgpu, but unavailable on RPM
|
||||
set(rocDecode_DEBIAN_PACKAGE_LIST "rocm-hip-runtime, libva2, libdrm-amdgpu1, mesa-amdgpu-va-drivers")
|
||||
set(rocDecode_RPM_PACKAGE_LIST "rocm-hip-runtime, libva, libdrm-amdgpu, mesa-amdgpu-dri-drivers")
|
||||
# Set the dev dependent packages
|
||||
set(rocDecode_DEBIAN_DEV_PACKAGE_LIST "rocm-hip-runtime-dev, libva-amdgpu-dev, pkg-config, ffmpeg, libavcodec-dev, libavformat-dev, libavutil-dev")
|
||||
set(rocDecode_DEBIAN_DEV_PACKAGE_LIST "rocm-hip-runtime-dev, libva-dev, pkg-config, ffmpeg, libavcodec-dev, libavformat-dev, libavutil-dev")
|
||||
if(UBUNTU_22_FOUND)
|
||||
set(rocDecode_DEBIAN_DEV_PACKAGE_LIST "${rocDecode_DEBIAN_DEV_PACKAGE_LIST}, libstdc++-12-dev")
|
||||
endif()
|
||||
# TBD - RPM packages need Fusion Packages - "ffmpeg, libavcodec-devel, libavformat-devel, libavutil-devel"
|
||||
set(rocDecode_RPM_DEV_PACKAGE_LIST "rocm-hip-runtime-devel, libva-amdgpu-devel, pkg-config")
|
||||
set(rocDecode_RPM_DEV_PACKAGE_LIST "rocm-hip-runtime-devel, libva-devel, pkg-config")
|
||||
|
||||
# '%{?dist}' breaks manual builds on debian systems due to empty Provides
|
||||
execute_process(
|
||||
@@ -325,6 +325,6 @@ else()
|
||||
message(FATAL_ERROR "-- ERROR!: HIP Not Found! - please install rocm-hip-runtime-dev!")
|
||||
endif()
|
||||
if(NOT Libva_FOUND)
|
||||
message(FATAL_ERROR "-- ERROR!: libva Not Found - please install libva-amdgpu-dev/libva-amdgpu-devel!")
|
||||
message(FATAL_ERROR "-- ERROR!: libva Not Found - please install libva-dev/libva-devel!")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -24,12 +24,19 @@ access the video decoding features available on your GPU.
|
||||
> [!IMPORTANT]
|
||||
> `sudo amdgpu-install --usecase=rocm`
|
||||
|
||||
* AMD multimedia packages
|
||||
* [Video Acceleration API](https://en.wikipedia.org/wiki/Video_Acceleration_API) Version `1.5.0`+ - `Libva` is an implementation for VA-API
|
||||
```shell
|
||||
sudo apt install libva-amdgpu-dev libdrm-amdgpu1 mesa-amdgpu-va-drivers
|
||||
sudo apt install libva-dev
|
||||
```
|
||||
> [!NOTE]
|
||||
> RPM Packages for `RHEL`/`SLES` - `libva-amdgpu-devel libdrm-amdgpu mesa-amdgpu-dri-drivers`
|
||||
> RPM Packages for `RHEL`/`SLES` - `libva-devel`
|
||||
|
||||
* AMD VA Drivers
|
||||
```shell
|
||||
sudo apt install mesa-amdgpu-va-drivers
|
||||
```
|
||||
> [!NOTE]
|
||||
> RPM Packages for `RHEL`/`SLES` - `libdrm-amdgpu mesa-amdgpu-dri-drivers`
|
||||
|
||||
* CMake `3.5` or later
|
||||
|
||||
@@ -222,4 +229,4 @@ page.
|
||||
* rocm-core - `6.1.0.60100-64`
|
||||
* amdgpu-core - `1:6.1.60100-1741643`
|
||||
* FFmpeg - `4.2.7` / `4.4.2-0`
|
||||
* rocDecode Setup Script - `V1.7.1`
|
||||
* rocDecode Setup Script - `V1.7.2`
|
||||
|
||||
@@ -21,14 +21,33 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
find_library(LIBVA_LIBRARY NAMES va HINTS /opt/amdgpu/lib/x86_64-linux-gnu /opt/amdgpu/lib64 NO_DEFAULT_PATH)
|
||||
find_library(LIBVA_DRM_LIBRARY NAMES va-drm HINTS /opt/amdgpu/lib/x86_64-linux-gnu /opt/amdgpu/lib64 NO_DEFAULT_PATH)
|
||||
find_path(LIBVA_INCLUDE_DIR NAMES va/va.h PATHS /opt/amdgpu/include NO_DEFAULT_PATH)
|
||||
find_library(LIBVA_LIBRARY NAMES va HINTS /usr/lib/x86_64-linux-gnu /usr/lib64 /opt/amdgpu/lib/x86_64-linux-gnu /opt/amdgpu/lib64)
|
||||
find_library(LIBVA_DRM_LIBRARY NAMES va-drm HINTS /usr/lib/x86_64-linux-gnu /usr/lib64 /opt/amdgpu/lib/x86_64-linux-gnu /opt/amdgpu/lib64)
|
||||
find_path(LIBVA_INCLUDE_DIR NAMES va/va.h PATHS /usr/include /opt/amdgpu/include)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Libva DEFAULT_MSG LIBVA_INCLUDE_DIR LIBVA_LIBRARY)
|
||||
mark_as_advanced(LIBVA_INCLUDE_DIR LIBVA_LIBRARY LIBVA_DRM_LIBRARY)
|
||||
|
||||
if(Libva_FOUND)
|
||||
# Find VA Version
|
||||
file(READ "${LIBVA_INCLUDE_DIR}/va/va_version.h" VA_VERSION_FILE)
|
||||
string(REGEX MATCH "VA_MAJOR_VERSION ([0-9]*)" _ ${VA_VERSION_FILE})
|
||||
set(va_ver_major ${CMAKE_MATCH_1})
|
||||
string(REGEX MATCH "VA_MINOR_VERSION ([0-9]*)" _ ${VA_VERSION_FILE})
|
||||
set(va_ver_minor ${CMAKE_MATCH_1})
|
||||
string(REGEX MATCH "VA_MICRO_VERSION ([0-9]*)" _ ${VA_VERSION_FILE})
|
||||
set(va_ver_micro ${CMAKE_MATCH_1})
|
||||
message("-- ${White}Found Libva Version: ${va_ver_major}.${va_ver_minor}.${va_ver_micro}${ColourReset}")
|
||||
|
||||
if((${va_ver_major} GREATER_EQUAL 1) AND (${va_ver_minor} GREATER_EQUAL 5))
|
||||
message("-- ${White}\tLibva Version Supported${ColourReset}")
|
||||
else()
|
||||
set(Libva_FOUND FALSE)
|
||||
message("-- ${Yellow}\tLibva Version Not Supported${ColourReset}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(Libva_FOUND)
|
||||
if(NOT TARGET Libva::va)
|
||||
add_library(Libva::va UNKNOWN IMPORTED)
|
||||
|
||||
@@ -25,7 +25,7 @@ Tested configurations
|
||||
|
||||
* FFmpeg: 4.2.7/4.4.2-0
|
||||
|
||||
* rocDecode Setup Script: V1.7.1
|
||||
* rocDecode Setup Script: V1.7.2
|
||||
|
||||
Supported codecs
|
||||
========================================
|
||||
@@ -50,11 +50,17 @@ Prerequisites
|
||||
* Run: ``--usecase=rocm``
|
||||
* To install rocDecode with minimum requirements, follow the :doc:`quick-start instructions <./quick-start>`
|
||||
|
||||
* AMD multimedia packages
|
||||
* Video Acceleration API Version `1.5.0`+ - `Libva` is an implementation for VA-API
|
||||
|
||||
.. code:: shell
|
||||
|
||||
sudo apt install libva-amdgpu-dev libdrm-amdgpu1 mesa-amdgpu-va-drivers
|
||||
sudo apt install libva-dev
|
||||
|
||||
* AMD VA drivers
|
||||
|
||||
.. code:: shell
|
||||
|
||||
sudo apt install mesa-amdgpu-va-drivers
|
||||
|
||||
* CMake 3.5 or later
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ else:
|
||||
import subprocess
|
||||
|
||||
__copyright__ = "Copyright (c) 2023 - 2024, AMD ROCm rocDecode"
|
||||
__version__ = "1.7.1"
|
||||
__version__ = "1.7.2"
|
||||
__email__ = "mivisionx.support@amd.com"
|
||||
__status__ = "Shipping"
|
||||
|
||||
@@ -90,12 +90,13 @@ linuxSystemInstall = ''
|
||||
linuxCMake = 'cmake'
|
||||
linuxSystemInstall_check = ''
|
||||
linuxFlag = ''
|
||||
sudoValidateOption= '-v'
|
||||
if "centos" in platfromInfo or "redhat" in platfromInfo or os.path.exists('/usr/bin/yum'):
|
||||
linuxSystemInstall = 'yum -y'
|
||||
linuxSystemInstall_check = '--nogpgcheck'
|
||||
if "centos-7" in platfromInfo or "redhat-7" in platfromInfo:
|
||||
linuxCMake = 'cmake3'
|
||||
ERROR_CHECK(os.system(linuxSystemInstall+' install cmake3'))
|
||||
print("\nrocDecode Setup on "+platfromInfo+" is unsupported\n")
|
||||
exit(-1)
|
||||
if not "centos" in platfromInfo or not "redhat" in platfromInfo:
|
||||
platfromInfo = platfromInfo+'-redhat'
|
||||
elif "Ubuntu" in platfromInfo or os.path.exists('/usr/bin/apt-get'):
|
||||
@@ -129,12 +130,15 @@ commonPackages = [
|
||||
'wget',
|
||||
'unzip',
|
||||
'pkg-config',
|
||||
'inxi'
|
||||
'inxi',
|
||||
'rocm-hip-runtime'
|
||||
]
|
||||
|
||||
# Debian packages
|
||||
coreDebianPackages = [
|
||||
'libva-amdgpu-dev',
|
||||
'rocm-hip-runtime-dev',
|
||||
'libva2',
|
||||
'libva-dev',
|
||||
'libdrm-amdgpu1',
|
||||
'mesa-amdgpu-va-drivers',
|
||||
'vainfo'
|
||||
@@ -151,20 +155,22 @@ ffmpegDebianPackages = [
|
||||
|
||||
# RPM Packages
|
||||
coreRPMPackages = [
|
||||
'libva-amdgpu-devel',
|
||||
'rocm-hip-runtime-devel',
|
||||
'libva',
|
||||
'libva-devel',
|
||||
'libdrm-amdgpu',
|
||||
'mesa-amdgpu-dri-drivers',
|
||||
'libva-utils'
|
||||
]
|
||||
|
||||
# common packages
|
||||
ERROR_CHECK(os.system('sudo -v'))
|
||||
ERROR_CHECK(os.system('sudo '+sudoValidateOption))
|
||||
for i in range(len(commonPackages)):
|
||||
ERROR_CHECK(os.system('sudo '+linuxFlag+' '+linuxSystemInstall +
|
||||
' '+linuxSystemInstall_check+' install '+ commonPackages[i]))
|
||||
|
||||
# rocDecode Core - LibVA Requirements
|
||||
ERROR_CHECK(os.system('sudo -v'))
|
||||
ERROR_CHECK(os.system('sudo '+sudoValidateOption))
|
||||
if "Ubuntu" in platfromInfo:
|
||||
for i in range(len(coreDebianPackages)):
|
||||
ERROR_CHECK(os.system('sudo '+linuxFlag+' '+linuxSystemInstall +
|
||||
@@ -179,7 +185,7 @@ else:
|
||||
' '+linuxSystemInstall_check+' install '+ coreRPMPackages[i]))
|
||||
|
||||
# rocDecode Dev Requirements
|
||||
ERROR_CHECK(os.system('sudo -v'))
|
||||
ERROR_CHECK(os.system('sudo '+sudoValidateOption))
|
||||
if developerInstall == 'ON':
|
||||
if "Ubuntu" in platfromInfo:
|
||||
for i in range(len(ffmpegDebianPackages)):
|
||||
|
||||
Reference in New Issue
Block a user