This patch adds a new Cycles device with similar functionality to the existing GPU devices. Kernel compilation and runtime interaction happen via oneAPI DPC++ compiler and SYCL API. This implementation is primarly focusing on Intel® Arc™ GPUs and other future Intel GPUs. The first supported drivers are 101.1660 on Windows and 22.10.22597 on Linux. The necessary tools for compilation are: - A SYCL compiler such as oneAPI DPC++ compiler or https://github.com/intel/llvm - Intel® oneAPI Level Zero which is used for low level device queries: https://github.com/oneapi-src/level-zero - To optionally generate prebuilt graphics binaries: Intel® Graphics Compiler All are included in Linux precompiled libraries on svn: https://svn.blender.org/svnroot/bf-blender/trunk/lib The same goes for Windows precompiled binaries but for the graphics compiler, available as "Intel® Graphics Offline Compiler for OpenCL™ Code" from https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html, for which path can be set as OCLOC_INSTALL_DIR. Being based on the open SYCL standard, this implementation could also be extended to run on other compatible non-Intel hardware in the future. Reviewed By: sergey, brecht Differential Revision: https://developer.blender.org/D15254 Co-authored-by: Nikita Sirgienko <nikita.sirgienko@intel.com> Co-authored-by: Stefan Werner <stefan.werner@intel.com>
45 lines
1.7 KiB
Diff
45 lines
1.7 KiB
Diff
diff -Naur external_igc_opencl_clang.orig/CMakeLists.txt external_igc_opencl_clang/CMakeLists.txt
|
|
--- external_igc_opencl_clang.orig/CMakeLists.txt 2022-03-16 05:51:10 -0600
|
|
+++ external_igc_opencl_clang/CMakeLists.txt 2022-05-23 10:40:09 -0600
|
|
@@ -126,22 +126,24 @@
|
|
)
|
|
endif()
|
|
|
|
-
|
|
- set(SPIRV_BASE_REVISION llvm_release_110)
|
|
- set(TARGET_BRANCH "ocl-open-110")
|
|
- get_filename_component(LLVM_MONOREPO_DIR ${LLVM_SOURCE_DIR} DIRECTORY)
|
|
- set(LLVM_PATCHES_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/patches/llvm
|
|
- ${CMAKE_CURRENT_SOURCE_DIR}/patches/clang)
|
|
- apply_patches(${LLVM_MONOREPO_DIR}
|
|
- "${LLVM_PATCHES_DIRS}"
|
|
- ${LLVM_BASE_REVISION}
|
|
- ${TARGET_BRANCH}
|
|
- ret)
|
|
- apply_patches(${SPIRV_SOURCE_DIR}
|
|
- ${CMAKE_CURRENT_SOURCE_DIR}/patches/spirv
|
|
- ${SPIRV_BASE_REVISION}
|
|
- ${TARGET_BRANCH}
|
|
- ret)
|
|
+ #
|
|
+ # Blender: Why apply these manually in igc.cmake
|
|
+ #
|
|
+ #set(SPIRV_BASE_REVISION llvm_release_110)
|
|
+ #set(TARGET_BRANCH "ocl-open-110")
|
|
+ #get_filename_component(LLVM_MONOREPO_DIR ${LLVM_SOURCE_DIR} DIRECTORY)
|
|
+ #set(LLVM_PATCHES_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/patches/llvm
|
|
+ # ${CMAKE_CURRENT_SOURCE_DIR}/patches/clang)
|
|
+ #apply_patches(${LLVM_MONOREPO_DIR}
|
|
+ # "${LLVM_PATCHES_DIRS}"
|
|
+ # ${LLVM_BASE_REVISION}
|
|
+ # ${TARGET_BRANCH}
|
|
+ # ret)
|
|
+ #apply_patches(${SPIRV_SOURCE_DIR}
|
|
+ # ${CMAKE_CURRENT_SOURCE_DIR}/patches/spirv
|
|
+ # ${SPIRV_BASE_REVISION}
|
|
+ # ${TARGET_BRANCH}
|
|
+ # ret)
|
|
endif(NOT USE_PREBUILT_LLVM)
|
|
|
|
#
|