diff options
author | Xavier Hallade <xavier.hallade@intel.com> | 2022-08-31 16:24:14 +0300 |
---|---|---|
committer | Xavier Hallade <xavier.hallade@intel.com> | 2022-08-31 16:33:16 +0300 |
commit | b1231e616a1ce9c52291ffd9a09ed77631e4d837 (patch) | |
tree | d57261ac06947bb4ab7a75d53dcda6726fc3e08b | |
parent | 24fe659224b281ceca64f71f372f12f5905f6a77 (diff) |
Cycles: Enforce Windows driver version requirements for sycl
sycl/L0 runtime reports compute-runtime version since Intel graphics
driver 101.3268 on Windows, when querying driver version from sycl.
Prior to this driver, it was 0. Now we can bump minimum requirement to
this one and filter-out devices returning 0.
Maniphest Tasks: T100648
-rw-r--r-- | intern/cycles/blender/addon/properties.py | 2 | ||||
-rw-r--r-- | intern/cycles/kernel/device/oneapi/kernel.cpp | 9 |
2 files changed, 7 insertions, 4 deletions
diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index 592e875ad0f..f9d05cb0d5b 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -1558,7 +1558,7 @@ class CyclesPreferences(bpy.types.AddonPreferences): import sys col.label(text="Requires Intel GPU with Xe-HPG architecture", icon='BLANK1') if sys.platform.startswith("win"): - col.label(text="and Windows driver version 101.3259 or newer", icon='BLANK1') + col.label(text="and Windows driver version 101.3268 or newer", icon='BLANK1') elif sys.platform.startswith("linux"): col.label(text="and Linux driver version xx.xx.23570 or newer", icon='BLANK1') elif device_type == 'METAL': diff --git a/intern/cycles/kernel/device/oneapi/kernel.cpp b/intern/cycles/kernel/device/oneapi/kernel.cpp index 332ad430f20..097d21b963f 100644 --- a/intern/cycles/kernel/device/oneapi/kernel.cpp +++ b/intern/cycles/kernel/device/oneapi/kernel.cpp @@ -665,7 +665,11 @@ bool oneapi_enqueue_kernel(KernelContext *kernel_context, return success; } -static const int lowest_supported_driver_version_win = 1013259; +/* Compute-runtime (ie. NEO) version is what gets returned by sycl/L0 on Windows + * since Windows driver 101.3268. */ +/* The same min compute-runtime version is currently required across Windows and Linux. + * For Windows driver 101.3268, compute-runtime version is 23570. */ +static const int lowest_supported_driver_version_win = 1013268; static const int lowest_supported_driver_version_neo = 23570; static int parse_driver_build_version(const sycl::device &device) @@ -769,8 +773,7 @@ static std::vector<sycl::device> oneapi_available_devices() int driver_build_version = parse_driver_build_version(device); if ((driver_build_version > 100000 && driver_build_version < lowest_supported_driver_version_win) || - (driver_build_version > 0 && - driver_build_version < lowest_supported_driver_version_neo)) { + driver_build_version < lowest_supported_driver_version_neo) { filter_out = true; } } |