diff --git a/projects/rocdecode/CHANGELOG.md b/projects/rocdecode/CHANGELOG.md index 3267af46e6..bfc9e34786 100644 --- a/projects/rocdecode/CHANGELOG.md +++ b/projects/rocdecode/CHANGELOG.md @@ -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 diff --git a/projects/rocdecode/CMakeLists.txt b/projects/rocdecode/CMakeLists.txt index b6a263a9c1..854e7a3063 100644 --- a/projects/rocdecode/CMakeLists.txt +++ b/projects/rocdecode/CMakeLists.txt @@ -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 diff --git a/projects/rocdecode/cmake/FindLibdrm_amdgpu.cmake b/projects/rocdecode/cmake/FindLibdrm_amdgpu.cmake index 22384e445a..d5a52f7f04 100644 --- a/projects/rocdecode/cmake/FindLibdrm_amdgpu.cmake +++ b/projects/rocdecode/cmake/FindLibdrm_amdgpu.cmake @@ -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) diff --git a/projects/rocdecode/cmake/FindLibva.cmake b/projects/rocdecode/cmake/FindLibva.cmake index adcbb952a6..2663a85f1c 100644 --- a/projects/rocdecode/cmake/FindLibva.cmake +++ b/projects/rocdecode/cmake/FindLibva.cmake @@ -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)