Date: Sunday, March 5, 2023 @ 02:54:37
  Author: svenstaro
Revision: 1412594

upgpkg: blender 17:3.4.1-15: Enable OneAPI acceleration support for Intel 
devices

Modified:
  blender/trunk/PKGBUILD

----------+
 PKGBUILD |   20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2023-03-05 01:22:28 UTC (rev 1412593)
+++ PKGBUILD    2023-03-05 02:54:37 UTC (rev 1412594)
@@ -21,9 +21,9 @@
          'jemalloc' 'libspnav' 'ptex' 'opensubdiv' 'openvdb' 'log4cplus' 
'sdl2' 'embree' 'libharu'
          'draco' 'openpgl' 'level-zero-loader' 
'intel-oneapi-compiler-shared-runtime'
          'level-zero-loader')
-# 'intel-compute-runtime'
 makedepends=('cmake' 'boost' 'mesa' 'git' 'llvm' 'cuda' 'ninja' 
'wayland-protocols' 'libxkbcommon'
-             'libdecor' 'hip-runtime-amd' 'level-zero-headers' 
'intel-oneapi-dpcpp-cpp')
+             'libdecor' 'hip-runtime-amd' 'level-zero-headers' 
'intel-oneapi-dpcpp-cpp'
+             'intel-compute-runtime')
 optdepends=('cuda: cycles renderer cuda support'
             'libdecor: wayland support')
 source=("git+https://git.blender.org/blender.git#tag=v$pkgver";
@@ -84,8 +84,12 @@
   echo 'set(CYCLES_CUDA_BINARIES_ARCH sm_52 sm_53 sm_60 sm_61 sm_62 sm_70 
sm_72 sm_75 sm_80 sm_86 sm_87 sm_89 compute_89 CACHE STRING "CUDA architectures 
to build binaries for" FORCE)' > precache
   echo 'mark_as_advanced(CYCLES_CUDA_BINARIES_ARCH)' >> precache
 
-
-    #-DSYCL_ROOT_DIR=/opt/intel/oneapi/compiler/latest/linux \
+  # If we enable the following flag, Blender will try to build prebuilt Intel
+  # OneAPI binaries using ocloc during the build process. However, this
+  # currently fails as the flags for ocloc are weird and it will crash when
+  # trying to build it. I asked Intel and Blender about it and am waiting on a
+  # response.
+  # -DOCLOC_INSTALL_DIR=/usr/ \
   cmake \
     -Bbuild \
     -GNinja \
@@ -92,12 +96,13 @@
     -Cbuild_files/cmake/config/blender_release.cmake \
     -C precache \
     -DHIP_ROOT_DIR=/opt/rocm \
-    -DOCLOC_INSTALL_DIR=/usr/ \
     -DOPTIX_ROOT_DIR="$srcdir" \
     -DCMAKE_INSTALL_PREFIX=/usr \
     -DCMAKE_BUILD_TYPE=Release \
     -DWITH_INSTALL_PORTABLE=OFF \
-    -DWITH_PYTHON_INSTALL=OFF
+    -DWITH_PYTHON_INSTALL=OFF \
+    -DSYCL_CPP_FLAGS=--verbose \
+    -DCYCLES_ONEAPI_SYCL_OPTIONS_spir64="-options 
'-ze-opt-large-register-file\ -ze-intel-enable-auto-large-GRF-mode'"
   cmake --build build
 }
 
@@ -118,4 +123,7 @@
   mkdir -p "${pkgdir}/usr/lib/python$(get_pyver)"/
   mv "${pkgdir}"/usr/share/blender/3*/python/lib/* "${pkgdir}"/usr/lib/
   rm -r "${pkgdir}"/usr/share/blender/3*/python
+
+  # Move OneAPI JIT lib to proper place. No idea why it's not just statically 
linked into Blender.
+  mv "${pkgdir}"/usr/share/blender/lib/libcycles_kernel_oneapi_jit.so 
"${pkgdir}"/usr/lib/
 }

Reply via email to