Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37734602
en ru br
Репозитории ALT
S:3.6.3-alt1
5.1: 2.49b-alt1
4.1: 2.45-alt2.2.1.qa1
4.0: 2.45-alt0.M40.2
3.0: 2.36-alt1.1
www.altlinux.org/Changes

Другие репозитории
Upstream:2.45

Группа :: Графика
Пакет: blender

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: blender-3.6.3-alt-hiprt-enable.patch
Скачать


diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1861d941c20..86573a90bb5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -529,8 +529,8 @@ if(NOT APPLE)
   mark_as_advanced(WITH_CYCLES_DEVICE_HIP)
   mark_as_advanced(CYCLES_HIP_BINARIES_ARCH)
 
-  # HIPRT is only available on Windows for now.
-  if(WIN32)
+  # HIPRT is only available on Windows and Linux for now.
+  if(NOT APPLE)
     option(WITH_CYCLES_DEVICE_HIPRT      "Enable Cycles AMD HIPRT support" OFF)
     mark_as_advanced(WITH_CYCLES_DEVICE_HIPRT)
   endif()
@@ -2002,8 +2002,6 @@ if(FIRST_RUN)
       info_cfg_option(WITH_CYCLES_ONEAPI_BINARIES)
       info_cfg_option(WITH_CYCLES_DEVICE_HIP)
       info_cfg_option(WITH_CYCLES_HIP_BINARIES)
-    endif()
-    if(WIN32)
       info_cfg_option(WITH_CYCLES_DEVICE_HIPRT)
     endif()
   endif()
diff --git a/build_files/cmake/Modules/FindHIPRT.cmake b/build_files/cmake/Modules/FindHIPRT.cmake
index c6b46b5a445..18dee6024da 100644
--- a/build_files/cmake/Modules/FindHIPRT.cmake
+++ b/build_files/cmake/Modules/FindHIPRT.cmake
@@ -38,9 +38,11 @@ if(HIPRT_INCLUDE_DIR)
   find_file(HIPRT_BITCODE
     NAMES
       hiprt${_hiprt_version}_amd_lib_win.bc
+      hiprt${_hiprt_version}_amd_lib_linux.bc
     HINTS
       ${HIPRT_ROOT_DIR}/bin
       ${HIPRT_ROOT_DIR}/dist/bin/Release
+      ${HIPRT_ROOT_DIR}/share/hiprt
     NO_DEFAULT_PATH
   )
 
diff --git a/extern/hipew/src/hiprtew.cc b/extern/hipew/src/hiprtew.cc
index 5844d6466b3..e7102f5a64b 100644
--- a/extern/hipew/src/hiprtew.cc
+++ b/extern/hipew/src/hiprtew.cc
@@ -61,7 +61,6 @@ bool hiprtewInit()
     return result;
   }
 
-#ifdef _WIN32
   initialized = true;
 
   if (atexit(hipewHipRtExit)) {
@@ -69,7 +68,11 @@ bool hiprtewInit()
   }
 
   std::string hiprt_ver(HIPRT_VERSION_STR);
+#ifdef _WIN32
   std::string hiprt_path = "hiprt" + hiprt_ver + "64.dll";
+#else
+  std::string hiprt_path = "libhiprt" + hiprt_ver + "64.so";
+#endif
 
   hiprt_lib = dynamic_library_open(hiprt_path.c_str());
 
@@ -93,7 +96,6 @@ bool hiprtewInit()
   HIPRT_LIBRARY_FIND(hiprtSetLogLevel)
 
   result = true;
-#endif
 
   return result;
 }
diff --git a/intern/cycles/device/hiprt/device_impl.cpp b/intern/cycles/device/hiprt/device_impl.cpp
index 120fd17be8f..cc41977771f 100644
--- a/intern/cycles/device/hiprt/device_impl.cpp
+++ b/intern/cycles/device/hiprt/device_impl.cpp
@@ -262,9 +262,13 @@ string HIPRTDevice::compile_kernel(const uint kernel_features, const char *name,
   linker_options.append(" --offload-arch=").append(arch);
   linker_options.append(" -fgpu-rdc --hip-link --cuda-device-only ");
   string hiprt_ver(HIPRT_VERSION_STR);
+#  ifdef _WIN32
   string hiprt_bc = hiprt_path + "\\dist\\bin\\Release\\hiprt" + hiprt_ver + "_amd_lib_win.bc";
+#  else
+  string hiprt_bc = hiprt_path + "/share/hiprt/hiprt" + hiprt_ver + "_amd_lib_linux.bc";
+#  endif
 
-  string linker_command = string_printf("clang++ %s \"%s\" %s -o \"%s\"",
+  string linker_command = string_printf("clang++-rocm %s \"%s\" %s -o \"%s\"",
                                         linker_options.c_str(),
                                         bitcode.c_str(),
                                         hiprt_bc.c_str(),
diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt
index 2f7b1e59bf4..9911aed6159 100644
--- a/intern/cycles/kernel/CMakeLists.txt
+++ b/intern/cycles/kernel/CMakeLists.txt
@@ -727,7 +727,7 @@ if(WITH_CYCLES_DEVICE_HIPRT AND WITH_CYCLES_HIP_BINARIES)
     -o ${hiprt_file})
   add_custom_command(
     OUTPUT  ${hiprt_file}
-    COMMAND ${hiprt_link_command} ${hiprt_link_flags}
+    COMMAND ${hiprt_compile_command} ${hiprt_link_command} ${hiprt_link_flags}
     DEPENDS ${bitcode_file})
   delayed_install("${CMAKE_CURRENT_BINARY_DIR}" "${hiprt_file}" ${CYCLES_INSTALL_PATH}/lib)
   add_custom_target(cycles_kernel_hiprt ALL DEPENDS ${hiprt_file})
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin