Updated libdrm path configuration and libva version requirements for ROCm and TheRock platforms (#666)

[ROCm/rocdecode commit: c743ca38f6]
Этот коммит содержится в:
Aryan Salmanpour
2025-10-21 08:57:56 -07:00
коммит произвёл GitHub
родитель 954f7369ce
Коммит 24211717d5
4 изменённых файлов: 47 добавлений и 17 удалений
+5
Просмотреть файл
@@ -2,6 +2,11 @@
Full documentation for rocDecode is available at [https://rocm.docs.amd.com/projects/rocDecode/en/latest/](https://rocm.docs.amd.com/projects/rocDecode/en/latest/)
## (Unreleased) rocDecode 1.5.0
### Changed
* Updated libdrm path configuration and libva version requirements for ROCm and TheRock platforms
## rocDecode 1.4.0 for ROCm 7.1.0
### Added
+35 -5
Просмотреть файл
@@ -40,7 +40,7 @@ if (NOT DEFINED CMAKE_CXX_COMPILER)
endif()
# rocdecode Version
set(VERSION "1.4.0")
set(VERSION "1.5.0")
# Set Project Version and Language
project(rocdecode VERSION ${VERSION} LANGUAGES CXX)
@@ -110,6 +110,40 @@ find_package(HIP QUIET)
find_package(Libva QUIET)
find_package(Libdrm_amdgpu QUIET)
# Check if lib/rocm_sysdeps/lib exists in the libdrm_amdgpu library path which indicates ROCm installation via TheRock
set(USING_THE_ROCK OFF)
if(LIBDRM_AMDGPU_LIBRARY)
string(FIND "${LIBDRM_AMDGPU_LIBRARY}" "lib/rocm_sysdeps/lib" ROCM_SYSDEPS_FOUND)
if(NOT ROCM_SYSDEPS_FOUND EQUAL -1)
set(USING_THE_ROCK ON)
endif()
endif()
# Find Ubuntu 22.04
file(READ "/etc/os-release" OS_RELEASE)
string(REGEX MATCH "22.04" UBUNTU_22_FOUND ${OS_RELEASE})
# Check Libva version compatibility based on installation method and OS:
# - Ubuntu 22.04 with standard ROCm installation: requires libva >= 1.16
# - TheRock installation (any OS): libva >= 1.8 is sufficient
# - Other OS versions with standard ROCm: libva >= 1.8 is sufficient
if(UBUNTU_22_FOUND AND NOT USING_THE_ROCK)
if((${Libva_VERSION_MAJOR} GREATER_EQUAL 1) AND (${Libva_VERSION_MINOR} GREATER_EQUAL 16))
message("-- ${White}\tLibva Version Supported${ColourReset}")
else()
set(Libva_FOUND FALSE)
message("-- ${Yellow}\tLibva Version Not Supported${ColourReset}")
endif()
else()
if((${Libva_VERSION_MAJOR} GREATER_EQUAL 1) AND (${Libva_VERSION_MINOR} GREATER_EQUAL 8))
message("-- ${White}\tLibva Version Supported${ColourReset}")
else()
set(Libva_FOUND FALSE)
message("-- ${Yellow}\tLibva Version Not Supported${ColourReset}")
endif()
endif()
if(ROCDECODE_ENABLE_ROCPROFILER_REGISTER)
find_package(rocprofiler-register QUIET
HINTS $ENV{rocprofiler_register_ROOT} $ENV{ROCPROFILER_REGISTER_ROOT} ${CMAKE_INSTALL_PREFIX}
@@ -297,10 +331,6 @@ if(HIP_FOUND AND Libva_FOUND AND Libdrm_amdgpu_FOUND)
set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}.$ENV{ROCM_LIBPATCH_VERSION}")
endif()
# Find Ubuntu 22.04 - Add libstdc++-12-dev package deps for Dev Package
file(READ "/etc/os-release" OS_RELEASE)
string(REGEX MATCH "22.04" UBUNTU_22_FOUND ${OS_RELEASE})
# Set the dependent packages
# libva 2.16 (API 1.16) is needed to use mesa-amdgpu-va-drivers, libva-amdgpu
# (AMD build of libva 2.16) should be used if distro's libva is too old
+2 -2
Просмотреть файл
@@ -21,8 +21,8 @@
#
################################################################################
find_library(LIBDRM_AMDGPU_LIBRARY NAMES drm_amdgpu HINTS /opt/amdgpu/lib/x86_64-linux-gnu /opt/amdgpu/lib64 /usr/lib/x86_64-linux-gnu /usr/lib64)
find_path(LIBDRM_AMDGPU_INCLUDE_DIR NAMES libdrm/amdgpu.h libdrm/amdgpu_drm.h PATHS /opt/amdgpu/include /usr/include /usr/ /usr/local/include NO_DEFAULT_PATH)
find_library(LIBDRM_AMDGPU_LIBRARY NAMES drm_amdgpu HINTS ${ROCM_PATH}/lib/rocm_sysdeps/lib /opt/amdgpu/lib/x86_64-linux-gnu /opt/amdgpu/lib64 /usr/lib/x86_64-linux-gnu /usr/lib64)
find_path(LIBDRM_AMDGPU_INCLUDE_DIR NAMES libdrm/amdgpu.h libdrm/amdgpu_drm.h PATHS ${ROCM_PATH}/lib/rocm_sysdeps/include /opt/amdgpu/include /usr/include /usr/ /usr/local/include NO_DEFAULT_PATH)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libdrm_amdgpu DEFAULT_MSG LIBDRM_AMDGPU_INCLUDE_DIR LIBDRM_AMDGPU_LIBRARY)
+5 -10
Просмотреть файл
@@ -33,19 +33,14 @@ 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})
set(Libva_VERSION_MAJOR ${CMAKE_MATCH_1})
string(REGEX MATCH "VA_MINOR_VERSION ([0-9]*)" _ ${VA_VERSION_FILE})
set(va_ver_minor ${CMAKE_MATCH_1})
set(Libva_VERSION_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}")
set(Libva_VERSION_MICRO ${CMAKE_MATCH_1})
set(Libva_VERSION "${Libva_VERSION_MAJOR}.${Libva_VERSION_MINOR}.${Libva_VERSION_MICRO}")
message("-- ${White}Found Libva Version: ${Libva_VERSION}${ColourReset}")
if((${va_ver_major} GREATER_EQUAL 1) AND (${va_ver_minor} GREATER_EQUAL 16))
message("-- ${White}\tLibva Version Supported${ColourReset}")
else()
set(Libva_FOUND FALSE)
message("-- ${Yellow}\tLibva Version Not Supported${ColourReset}")
endif()
endif()
if(Libva_FOUND)