Cycles: oneAPI: use ocloc 101.5972 on Windows

This new version of the graphics compiler solves a performance
regression on Arc, adds support for Battlemage and Lunar Lake GPUs, and
allows to drop older patch to build fat binaries with broad
compatibility.
This latter change requires using -device dg2,mtl naming instead of
passing architecture ids.

Pull Request: https://projects.blender.org/blender/blender/pulls/127371
This commit is contained in:
Xavier Hallade
2024-09-09 21:34:33 +02:00
committed by Gitea
parent 473711b579
commit 56db2d393d
4 changed files with 8 additions and 9 deletions

View File

@@ -741,10 +741,9 @@ This option is only for debugging purposes."
)
# https://www.intel.com/content/www/us/en/develop/documentation/oneapi-dpcpp-cpp-compiler-dev-guide-and-reference/top/compilation/ahead-of-time-compilation.html
# The target architectures levels can be retrieved from `ocloc` output when running
# `ocloc compile -device {device_id} test.c` for given GPUs PCI device IDs.
# 12.55.8 is for Arc Alchemist GPUs. 12.70.4 for Meteor Lake iGPUs.
set(CYCLES_ONEAPI_INTEL_BINARIES_ARCH 12.55.8 12.70.4 CACHE STRING "\
# The supported devices can be retrieved from `ocloc` output when running
# `ocloc compile --help`.
set(CYCLES_ONEAPI_INTEL_BINARIES_ARCH dg2 mtl CACHE STRING "\
oneAPI Intel GPU architectures to build binaries for"
)
set(CYCLES_ONEAPI_SYCL_TARGETS spir64 spir64_gen CACHE STRING "\

View File

@@ -19,7 +19,7 @@ buildbot:
optix:
version: '7.3.0'
ocloc:
version: '101.5518p0'
version: '101.5972'
cmake:
default:
version: any

View File

@@ -1759,7 +1759,7 @@ class CyclesPreferences(bpy.types.AddonPreferences):
elif device_type == 'ONEAPI':
import sys
if sys.platform.startswith("win"):
driver_version = "XX.X.101.5518"
driver_version = "XX.X.101.5730"
col.label(text=rpt_("Requires Intel GPU with Xe-HPG architecture"), icon='BLANK1', translate=False)
col.label(text=rpt_("and Windows driver version %s or newer") % driver_version,
icon='BLANK1', translate=False)

View File

@@ -991,11 +991,11 @@ void OneapiDevice::get_adjusted_global_and_local_sizes(SyclQueue *queue,
/* Compute-runtime (ie. NEO) version is what gets returned by sycl/L0 on Windows
* since Windows driver 101.3268. */
static const int lowest_supported_driver_version_win = 1015518;
static const int lowest_supported_driver_version_win = 1015730;
# ifdef _WIN32
/* For Windows driver 101.5518, compute-runtime version is 28044.
/* For Windows driver 101.5730, compute-runtime version is 29550.
* This information is returned by `ocloc query OCL_DRIVER_VERSION`.*/
static const int lowest_supported_driver_version_neo = 29283;
static const int lowest_supported_driver_version_neo = 29550;
# else
static const int lowest_supported_driver_version_neo = 27642;
# endif