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
This commit is contained in:
Xavier Hallade 2022-08-31 15:24:14 +02:00
parent 24fe659224
commit b1231e616a
2 changed files with 7 additions and 4 deletions

View File

@ -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':

View File

@ -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;
}
}