From 0f50ae131f54d51f778424d4c9655128cafbbefc Mon Sep 17 00:00:00 2001 From: Xavier Hallade Date: Fri, 8 Jul 2022 15:33:44 +0200 Subject: [PATCH] Cycles: enable oneAPI in Linux release builds with a very high min-driver version requirement, placeholder until JIT CentOS runtime compilation issue gets fixed in a defined version. min-driver version check can be worked around by setting CYCLES_ONEAPI_ALL_DEVICES environment variable. --- build_files/cmake/config/blender_release.cmake | 2 +- intern/cycles/blender/addon/properties.py | 2 +- intern/cycles/kernel/device/oneapi/kernel.cpp | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/build_files/cmake/config/blender_release.cmake b/build_files/cmake/config/blender_release.cmake index 42759fec7cc..b4609426069 100644 --- a/build_files/cmake/config/blender_release.cmake +++ b/build_files/cmake/config/blender_release.cmake @@ -71,7 +71,6 @@ if(NOT WIN32) endif() if(WIN32) set(WITH_WASAPI ON CACHE BOOL "" FORCE) - set(WITH_CYCLES_DEVICE_ONEAPI ON CACHE BOOL "" FORCE) endif() if(UNIX AND NOT APPLE) set(WITH_DOC_MANPAGE ON CACHE BOOL "" FORCE) @@ -92,6 +91,7 @@ if(NOT APPLE) set(WITH_CYCLES_CUDA_BINARIES ON CACHE BOOL "" FORCE) set(WITH_CYCLES_CUBIN_COMPILER OFF CACHE BOOL "" FORCE) set(WITH_CYCLES_HIP_BINARIES ON CACHE BOOL "" FORCE) + set(WITH_CYCLES_DEVICE_ONEAPI ON CACHE BOOL "" FORCE) # Disable AoT kernels compilations until buildbot can deliver them in a reasonabel time. set(WITH_CYCLES_ONEAPI_BINARIES OFF CACHE BOOL "" FORCE) diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index c41e1f02b75..e88b65b5119 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -1560,7 +1560,7 @@ class CyclesPreferences(bpy.types.AddonPreferences): if sys.platform.startswith("win"): col.label(text="and Windows driver version 101.1660 or newer", icon='BLANK1') elif sys.platform.startswith("linux"): - col.label(text="and Linux driver version xx.xx.20066 or newer", icon='BLANK1') + col.label(text="and Linux driver version xx.xx.28000 or newer", icon='BLANK1') elif device_type == 'METAL': col.label(text="Requires Apple Silicon with macOS 12.2 or newer", icon='BLANK1') col.label(text="or AMD with macOS 12.3 or newer", icon='BLANK1') diff --git a/intern/cycles/kernel/device/oneapi/kernel.cpp b/intern/cycles/kernel/device/oneapi/kernel.cpp index 9b9c046de4c..82910d72105 100644 --- a/intern/cycles/kernel/device/oneapi/kernel.cpp +++ b/intern/cycles/kernel/device/oneapi/kernel.cpp @@ -670,7 +670,10 @@ bool oneapi_enqueue_kernel(KernelContext *kernel_context, } static const int lowest_supported_driver_version_win = 1011660; -static const int lowest_supported_driver_version_neo = 20066; +/* TODO: once Linux JIT compilation crash from CentOS generated spv is fixed, adjust version below. + * Until then, set CYCLES_ONEAPI_ALL_DEVICES environment variable to avoid getting it filtered out. + */ +static const int lowest_supported_driver_version_neo = 28000; static int parse_driver_build_version(const sycl::device &device) {