From 10357fbf22fc16a96b41f8e5e50b9ea1b1ead4c8 Mon Sep 17 00:00:00 2001 From: Katarzyna Cencelewska Date: Thu, 23 Dec 2021 14:20:41 +0000 Subject: [PATCH] Disable device enqueue on icllp, cfl, kbl, skl Resolves: NEO-6559 Signed-off-by: Katarzyna Cencelewska --- .../unit_test/device/device_caps_tests.cpp | 24 +++++++++++++++++++ shared/source/gen11/hw_info_icllp.cpp | 2 +- shared/source/gen9/hw_info_cfl.cpp | 2 +- shared/source/gen9/hw_info_kbl.cpp | 2 +- shared/source/gen9/hw_info_skl.cpp | 2 +- 5 files changed, 28 insertions(+), 4 deletions(-) diff --git a/opencl/test/unit_test/device/device_caps_tests.cpp b/opencl/test/unit_test/device/device_caps_tests.cpp index 2366218b51..62f279e977 100644 --- a/opencl/test/unit_test/device/device_caps_tests.cpp +++ b/opencl/test/unit_test/device/device_caps_tests.cpp @@ -1542,6 +1542,30 @@ TEST_F(DeviceGetCapsTest, givenDeviceEnqueueSupportForcedWhenCheckingDeviceEnque } } +TEST_F(DeviceGetCapsTest, givenDefaultFlagForceDeviceEnqueueSupportWhenCheckingDeviceEnqueueSupportThenFalseIsReported) { + DebugManagerStateRestore dbgRestorer; + auto hwInfo = *defaultHwInfo; + DebugManager.flags.ForceDeviceEnqueueSupport.set(-1); + + auto pClDevice = std::make_unique(MockDevice::createWithNewExecutionEnvironment(&hwInfo)); + auto &caps = pClDevice->getDeviceInfo(); + + size_t deviceEnqueueFeaturesCount = 0; + for (auto &openclCFeature : caps.openclCFeatures) { + if (0 == strcmp(openclCFeature.name, "__opencl_c_device_enqueue")) { + deviceEnqueueFeaturesCount++; + } + } + + EXPECT_FALSE(pClDevice->isDeviceEnqueueSupported()); + EXPECT_EQ(0u, caps.maxOnDeviceEvents); + EXPECT_EQ(0u, caps.maxOnDeviceQueues); + EXPECT_EQ(0u, caps.queueOnDeviceMaxSize); + EXPECT_EQ(0u, caps.queueOnDevicePreferredSize); + EXPECT_EQ(static_cast(0), caps.queueOnDeviceProperties); + EXPECT_EQ(0u, deviceEnqueueFeaturesCount); +} + TEST_F(DeviceGetCapsTest, givenPipeSupportForcedWhenCheckingPipeSupportThenPipeIsCorrectlyReported) { DebugManagerStateRestore dbgRestorer; int32_t forcePipeSupportValues[] = {-1, 0, 1}; diff --git a/shared/source/gen11/hw_info_icllp.cpp b/shared/source/gen11/hw_info_icllp.cpp index 9a3d972e17..46a155cbb7 100644 --- a/shared/source/gen11/hw_info_icllp.cpp +++ b/shared/source/gen11/hw_info_icllp.cpp @@ -72,7 +72,7 @@ const RuntimeCapabilityTable ICLLP::capabilityTable{ true, // supportsVme false, // supportCacheFlushAfterWalker true, // supportsImages - true, // supportsDeviceEnqueue + false, // supportsDeviceEnqueue true, // supportsPipes true, // supportsOcl21Features false, // supportsOnDemandPageFaults diff --git a/shared/source/gen9/hw_info_cfl.cpp b/shared/source/gen9/hw_info_cfl.cpp index ece52da1b1..cf60b0db5b 100644 --- a/shared/source/gen9/hw_info_cfl.cpp +++ b/shared/source/gen9/hw_info_cfl.cpp @@ -68,7 +68,7 @@ const RuntimeCapabilityTable CFL::capabilityTable{ true, // supportsVme false, // supportCacheFlushAfterWalker true, // supportsImages - true, // supportsDeviceEnqueue + false, // supportsDeviceEnqueue true, // supportsPipes true, // supportsOcl21Features false, // supportsOnDemandPageFaults diff --git a/shared/source/gen9/hw_info_kbl.cpp b/shared/source/gen9/hw_info_kbl.cpp index 9cb0441bbe..8e24e1f895 100644 --- a/shared/source/gen9/hw_info_kbl.cpp +++ b/shared/source/gen9/hw_info_kbl.cpp @@ -68,7 +68,7 @@ const RuntimeCapabilityTable KBL::capabilityTable{ true, // supportsVme false, // supportCacheFlushAfterWalker true, // supportsImages - true, // supportsDeviceEnqueue + false, // supportsDeviceEnqueue true, // supportsPipes true, // supportsOcl21Features false, // supportsOnDemandPageFaults diff --git a/shared/source/gen9/hw_info_skl.cpp b/shared/source/gen9/hw_info_skl.cpp index a48247472a..8c752916c2 100644 --- a/shared/source/gen9/hw_info_skl.cpp +++ b/shared/source/gen9/hw_info_skl.cpp @@ -76,7 +76,7 @@ const RuntimeCapabilityTable SKL::capabilityTable{ true, // supportsVme false, // supportCacheFlushAfterWalker true, // supportsImages - true, // supportsDeviceEnqueue + false, // supportsDeviceEnqueue true, // supportsPipes true, // supportsOcl21Features false, // supportsOnDemandPageFaults