diff --git a/opencl/source/cl_device/cl_device.cpp b/opencl/source/cl_device/cl_device.cpp index 6453f1bacf..867c35c1a3 100644 --- a/opencl/source/cl_device/cl_device.cpp +++ b/opencl/source/cl_device/cl_device.cpp @@ -93,8 +93,8 @@ unique_ptr_if_unused ClDevice::decRefInternal() { bool ClDevice::isOcl21Conformant() const { auto &hwInfo = device.getHardwareInfo(); - return (hwInfo.capabilityTable.supportsOcl21Features && hwInfo.capabilityTable.supportsDeviceEnqueue && - hwInfo.capabilityTable.supportsPipes && hwInfo.capabilityTable.supportsIndependentForwardProgress); + return (hwInfo.capabilityTable.supportsOcl21Features && hwInfo.capabilityTable.supportsPipes && + hwInfo.capabilityTable.supportsIndependentForwardProgress); } void ClDevice::retainApi() { diff --git a/opencl/test/unit_test/device/device_tests.cpp b/opencl/test/unit_test/device/device_tests.cpp index 2c821693de..6de55f4891 100644 --- a/opencl/test/unit_test/device/device_tests.cpp +++ b/opencl/test/unit_test/device/device_tests.cpp @@ -54,6 +54,24 @@ TEST_F(DeviceTest, WhenDeviceIsCreatedThenEnabledClVersionMatchesHardwareInfo) { EXPECT_EQ(version, version2); } +TEST_F(DeviceTest, WhenDeviceIsCheckedForOcl21ConformanceThenCorrectValueIsReturned) { + auto hwInfo = pClDevice->getHardwareInfo(); + for (auto supportsOcl21Features : ::testing::Bool()) { + hwInfo.capabilityTable.supportsOcl21Features = supportsOcl21Features; + for (auto supportsIfp : ::testing::Bool()) { + hwInfo.capabilityTable.supportsIndependentForwardProgress = supportsIfp; + for (auto supportsPipes : ::testing::Bool()) { + hwInfo.capabilityTable.supportsPipes = supportsPipes; + + auto pClDevice = std::make_unique(MockDevice::createWithNewExecutionEnvironment(&hwInfo)); + + auto expectedOcl21Conformance = (supportsOcl21Features && supportsIfp && supportsPipes); + EXPECT_EQ(expectedOcl21Conformance, pClDevice->isOcl21Conformant()); + } + } + } +} + TEST_F(DeviceTest, givenDeviceWhenEngineIsCreatedThenSetInitialValueForTag) { for (auto &engine : pDevice->allEngines) { auto tagAddress = engine.commandStreamReceiver->getTagAddress(); diff --git a/opencl/test/unit_test/test_macros/test_checks_ocl.cpp b/opencl/test/unit_test/test_macros/test_checks_ocl.cpp index 60b915e01b..a98ee1dac3 100644 --- a/opencl/test/unit_test/test_macros/test_checks_ocl.cpp +++ b/opencl/test/unit_test/test_macros/test_checks_ocl.cpp @@ -31,8 +31,8 @@ bool TestChecks::supportsOcl21(const Context *pContext) { } bool TestChecks::supportsOcl21(const std::unique_ptr &pHardwareInfo) { - return (pHardwareInfo->capabilityTable.supportsOcl21Features && pHardwareInfo->capabilityTable.supportsDeviceEnqueue && - pHardwareInfo->capabilityTable.supportsPipes && pHardwareInfo->capabilityTable.supportsIndependentForwardProgress); + return (pHardwareInfo->capabilityTable.supportsOcl21Features && pHardwareInfo->capabilityTable.supportsPipes && + pHardwareInfo->capabilityTable.supportsIndependentForwardProgress); } bool TestChecks::supportsAuxResolves() {