File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed
unified-runtime/source/adapters/level_zero Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -1512,12 +1512,23 @@ ur_device_handle_t_::useImmediateCommandLists() {
1512
1512
bool isDG2OrNewer = this ->isIntelDG2OrNewer ();
1513
1513
bool isDG2SupportedDriver =
1514
1514
this ->Platform ->isDriverVersionNewerOrSimilar (1 , 5 , 30820 );
1515
- if ((isDG2SupportedDriver && isDG2OrNewer) || isPVC ()) {
1515
+ // Disable immediate command lists for DG2 devices on Windows due to driver
1516
+ // limitations.
1517
+ bool isLinux = true ;
1518
+ #ifdef _WIN32
1519
+ isLinux = false ;
1520
+ #endif
1521
+ if ((isDG2SupportedDriver && isDG2OrNewer && isLinux) || isPVC () ||
1522
+ isNewerThanIntelDG2 ()) {
1516
1523
return PerQueue;
1517
1524
} else {
1518
1525
return NotUsed;
1519
1526
}
1520
1527
}
1528
+
1529
+ logger::info (" NOTE: L0 Immediate CommandList Setting: {}" ,
1530
+ ImmediateCommandlistsSetting);
1531
+
1521
1532
switch (ImmediateCommandlistsSetting) {
1522
1533
case 0 :
1523
1534
return NotUsed;
Original file line number Diff line number Diff line change @@ -195,6 +195,11 @@ struct ur_device_handle_t_ : _ur_object {
195
195
ZeDeviceIpVersionExt->ipVersion >= 0x030dc000 );
196
196
}
197
197
198
+ bool isNewerThanIntelDG2 () {
199
+ return (ZeDeviceProperties->vendorId == 0x8086 &&
200
+ ZeDeviceIpVersionExt->ipVersion >= 0x030f0000 );
201
+ }
202
+
198
203
bool isIntegrated () {
199
204
return (ZeDeviceProperties->flags & ZE_DEVICE_PROPERTY_FLAG_INTEGRATED);
200
205
}
You can’t perform that action at this time.
0 commit comments