Move ClCoreHelper ownership to RootDeviceEnvironment 5/n

Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>

Use RootDeviceEnvironment getHelper<ClCoreHelper> for
- getDeviceIpVersion
- getSupportedDeviceFeatureCapabilities
This commit is contained in:
Kamil Kopryk
2022-11-17 02:27:29 +00:00
committed by Compute-Runtime-Automation
parent 89b96e5e8f
commit 7a9450b0a3
10 changed files with 82 additions and 55 deletions

View File

@ -245,8 +245,8 @@ cl_int ClDevice::getDeviceInfo(cl_device_info paramName,
retSize = srcSize = deviceInfo.supportedThreadArbitrationPolicies.size() * sizeof(cl_uint);
break;
case CL_DEVICE_IP_VERSION_INTEL: {
auto &clHwHelper = ClHwHelper::get(getHardwareInfo().platform.eRenderCoreFamily);
param.uint = clHwHelper.getDeviceIpVersion(getHardwareInfo());
auto &clCoreHelper = this->getRootDeviceEnvironment().getHelper<ClCoreHelper>();
param.uint = clCoreHelper.getDeviceIpVersion(getHardwareInfo());
src = &param.uint;
retSize = srcSize = sizeof(cl_version);
break;
@ -282,8 +282,8 @@ cl_int ClDevice::getDeviceInfo(cl_device_info paramName,
}
case CL_DEVICE_FEATURE_CAPABILITIES_INTEL: {
auto &hwInfo = getHardwareInfo();
auto &clHwHelper = ClHwHelper::get(hwInfo.platform.eRenderCoreFamily);
param.bitfield = clHwHelper.getSupportedDeviceFeatureCapabilities(hwInfo);
auto &clCoreHelper = this->getRootDeviceEnvironment().getHelper<ClCoreHelper>();
param.bitfield = clCoreHelper.getSupportedDeviceFeatureCapabilities(hwInfo);
src = &param.bitfield;
retSize = srcSize = sizeof(cl_device_feature_capabilities_intel);
break;

View File

@ -1084,8 +1084,8 @@ struct DeviceAttributeQueryTest : public ::testing::TestWithParam<uint32_t /*cl_
case CL_DEVICE_IP_VERSION_INTEL: {
auto pDeviceIpVersion = reinterpret_cast<cl_version *>(object.get());
auto &hwInfo = device.getHardwareInfo();
auto &clHwHelper = NEO::ClHwHelper::get(hwInfo.platform.eRenderCoreFamily);
EXPECT_EQ(clHwHelper.getDeviceIpVersion(hwInfo), *pDeviceIpVersion);
auto &clCoreHelper = device.getRootDeviceEnvironment().getHelper<ClCoreHelper>();
EXPECT_EQ(clCoreHelper.getDeviceIpVersion(hwInfo), *pDeviceIpVersion);
EXPECT_EQ(sizeof(cl_version), sizeReturned);
break;
}
@ -1126,8 +1126,8 @@ struct DeviceAttributeQueryTest : public ::testing::TestWithParam<uint32_t /*cl_
case CL_DEVICE_FEATURE_CAPABILITIES_INTEL: {
auto pCapabilities = reinterpret_cast<cl_device_feature_capabilities_intel *>(object.get());
auto &hwInfo = device.getHardwareInfo();
auto &clHwHelper = ClHwHelper::get(hwInfo.platform.eRenderCoreFamily);
EXPECT_EQ(clHwHelper.getSupportedDeviceFeatureCapabilities(hwInfo), *pCapabilities);
auto &clCoreHelper = device.getRootDeviceEnvironment().getHelper<ClCoreHelper>();
EXPECT_EQ(clCoreHelper.getSupportedDeviceFeatureCapabilities(hwInfo), *pCapabilities);
EXPECT_EQ(sizeof(cl_device_feature_capabilities_intel), sizeReturned);
break;
}

View File

@ -10,14 +10,17 @@
#include "shared/test/common/test_macros/header/per_product_test_definitions.h"
#include "opencl/source/helpers/cl_hw_helper.h"
#include "opencl/test/unit_test/fixtures/cl_device_fixture.h"
#include "opencl/test/unit_test/mocks/mock_cl_hw_helper.h"
using HwHelperTestGen11 = HwHelperTest;
using ClHwHelperTestGen11 = Test<ClDeviceFixture>;
GEN11TEST_F(HwHelperTestGen11, WhenGettingDeviceIpVersionThenMakeCorrectDeviceIpVersion) {
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(11, 0, 0), ClHwHelper::get(renderCoreFamily).getDeviceIpVersion(*defaultHwInfo));
GEN11TEST_F(ClHwHelperTestGen11, WhenGettingDeviceIpVersionThenMakeCorrectDeviceIpVersion) {
auto &clCoreHelper = getHelper<ClCoreHelper>();
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(11, 0, 0), clCoreHelper.getDeviceIpVersion(*defaultHwInfo));
}
GEN11TEST_F(HwHelperTestGen11, WhenGettingSupportedDeviceFeatureCapabilitiesThenReturnCorrectValue) {
EXPECT_EQ(0u, ClHwHelper::get(renderCoreFamily).getSupportedDeviceFeatureCapabilities(hardwareInfo));
GEN11TEST_F(ClHwHelperTestGen11, WhenGettingSupportedDeviceFeatureCapabilitiesThenReturnCorrectValue) {
auto &clCoreHelper = getHelper<ClCoreHelper>();
EXPECT_EQ(0u, clCoreHelper.getSupportedDeviceFeatureCapabilities(*defaultHwInfo));
}

View File

@ -35,6 +35,36 @@ GEN12LPTEST_F(ClHwHelperTestsGen12Lp, givenTglLpThenAuxTranslationIsRequired) {
}
}
HWTEST2_F(ClHwHelperTestsGen12Lp, WhenGettingDeviceIpVersionThenMakeCorrectDeviceIpVersion, IsTGLLP) {
auto &clCoreHelper = getHelper<ClCoreHelper>();
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(12, 0, 0), clCoreHelper.getDeviceIpVersion(*defaultHwInfo));
}
HWTEST2_F(ClHwHelperTestsGen12Lp, WhenGettingDeviceIpVersionThenMakeCorrectDeviceIpVersion, IsRKL) {
auto &clCoreHelper = getHelper<ClCoreHelper>();
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(12, 0, 0), clCoreHelper.getDeviceIpVersion(*defaultHwInfo));
}
HWTEST2_F(ClHwHelperTestsGen12Lp, WhenGettingDeviceIpVersionThenMakeCorrectDeviceIpVersion, IsADLS) {
auto &clCoreHelper = getHelper<ClCoreHelper>();
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(12, 0, 0), clCoreHelper.getDeviceIpVersion(*defaultHwInfo));
}
HWTEST2_F(ClHwHelperTestsGen12Lp, WhenGettingDeviceIpVersionThenMakeCorrectDeviceIpVersion, IsADLP) {
auto &clCoreHelper = getHelper<ClCoreHelper>();
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(12, 0, 0), clCoreHelper.getDeviceIpVersion(*defaultHwInfo));
}
HWTEST2_F(ClHwHelperTestsGen12Lp, WhenGettingDeviceIpVersionThenMakeCorrectDeviceIpVersion, IsDG1) {
auto &clCoreHelper = getHelper<ClCoreHelper>();
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(12, 0, 1), clCoreHelper.getDeviceIpVersion(*defaultHwInfo));
}
GEN12LPTEST_F(ClHwHelperTestsGen12Lp, WhenGettingSupportedDeviceFeatureCapabilitiesThenReturnCorrectValue) {
cl_device_feature_capabilities_intel expectedCapabilities = CL_DEVICE_FEATURE_FLAG_DP4A_INTEL;
EXPECT_EQ(expectedCapabilities, ClHwHelper::get(renderCoreFamily).getSupportedDeviceFeatureCapabilities(hardwareInfo));
}
using HwHelperTestGen12Lp = HwHelperTest;
GEN12LPTEST_F(HwHelperTestGen12Lp, WhenGettingMaxBarriersPerSliceThenCorrectSizeIsReturned) {
@ -402,23 +432,6 @@ HWTEST2_F(HwHelperTestGen12Lp, givenRevisionEnumThenProperValueForIsWorkaroundRe
}
}
HWTEST2_F(HwHelperTestGen12Lp, WhenGettingDeviceIpVersionThenMakeCorrectDeviceIpVersion, IsTGLLP) {
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(12, 0, 0), ClHwHelper::get(renderCoreFamily).getDeviceIpVersion(*defaultHwInfo));
}
HWTEST2_F(HwHelperTestGen12Lp, WhenGettingDeviceIpVersionThenMakeCorrectDeviceIpVersion, IsRKL) {
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(12, 0, 0), ClHwHelper::get(renderCoreFamily).getDeviceIpVersion(*defaultHwInfo));
}
HWTEST2_F(HwHelperTestGen12Lp, WhenGettingDeviceIpVersionThenMakeCorrectDeviceIpVersion, IsADLS) {
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(12, 0, 0), ClHwHelper::get(renderCoreFamily).getDeviceIpVersion(*defaultHwInfo));
}
GEN12LPTEST_F(HwHelperTestGen12Lp, WhenGettingSupportedDeviceFeatureCapabilitiesThenReturnCorrectValue) {
cl_device_feature_capabilities_intel expectedCapabilities = CL_DEVICE_FEATURE_FLAG_DP4A_INTEL;
EXPECT_EQ(expectedCapabilities, ClHwHelper::get(renderCoreFamily).getSupportedDeviceFeatureCapabilities(hardwareInfo));
}
GEN12LPTEST_F(HwHelperTestGen12Lp, givenLocalMemoryFeatureDisabledWhenIsLocalMemoryEnabledIsCalledThenTrueIsReturned) {
hardwareInfo.featureTable.flags.ftrLocalMemory = true;

View File

@ -7,19 +7,23 @@
#include "shared/source/gen8/hw_cmds.h"
#include "shared/test/common/helpers/default_hw_info.h"
#include "shared/test/common/helpers/hw_helper_tests.h"
#include "shared/test/common/test_macros/header/per_product_test_definitions.h"
#include "shared/test/common/test_macros/test.h"
#include "opencl/source/helpers/cl_hw_helper.h"
#include "opencl/test/unit_test/fixtures/cl_device_fixture.h"
#include "opencl/test/unit_test/mocks/mock_cl_hw_helper.h"
using namespace NEO;
using ClHwHelperTestGen8 = ::testing::Test;
using ClHwHelperTestGen8 = Test<ClDeviceFixture>;
GEN8TEST_F(ClHwHelperTestGen8, WhenGettingDeviceIpVersionThenMakeCorrectDeviceIpVersion) {
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(8, 0, 0), ClHwHelper::get(renderCoreFamily).getDeviceIpVersion(*defaultHwInfo));
auto &clCoreHelper = getHelper<ClCoreHelper>();
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(8, 0, 0), clCoreHelper.getDeviceIpVersion(*defaultHwInfo));
}
GEN8TEST_F(ClHwHelperTestGen8, WhenGettingSupportedDeviceFeatureCapabilitiesThenReturnCorrectValue) {
EXPECT_EQ(0u, ClHwHelper::get(renderCoreFamily).getSupportedDeviceFeatureCapabilities(*defaultHwInfo));
auto &clCoreHelper = getHelper<ClCoreHelper>();
EXPECT_EQ(0u, clCoreHelper.getSupportedDeviceFeatureCapabilities(*defaultHwInfo));
}

View File

@ -9,14 +9,17 @@
#include "shared/test/common/helpers/hw_helper_tests.h"
#include "shared/test/common/test_macros/header/per_product_test_definitions.h"
#include "opencl/test/unit_test/fixtures/cl_device_fixture.h"
#include "opencl/test/unit_test/mocks/mock_cl_hw_helper.h"
using HwHelperTestGen9 = HwHelperTest;
using ClHwHelperTestGen9 = Test<ClDeviceFixture>;
GEN9TEST_F(HwHelperTestGen9, WhenGettingDeviceIpVersionThenMakeCorrectDeviceIpVersion) {
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(9, 0, 0), ClHwHelper::get(renderCoreFamily).getDeviceIpVersion(*defaultHwInfo));
GEN9TEST_F(ClHwHelperTestGen9, WhenGettingDeviceIpVersionThenMakeCorrectDeviceIpVersion) {
auto &clCoreHelper = getHelper<ClCoreHelper>();
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(9, 0, 0), clCoreHelper.getDeviceIpVersion(*defaultHwInfo));
}
GEN9TEST_F(HwHelperTestGen9, WhenGettingSupportedDeviceFeatureCapabilitiesThenReturnCorrectValue) {
EXPECT_EQ(0u, ClHwHelper::get(renderCoreFamily).getSupportedDeviceFeatureCapabilities(*defaultHwInfo));
GEN9TEST_F(ClHwHelperTestGen9, WhenGettingSupportedDeviceFeatureCapabilitiesThenReturnCorrectValue) {
auto &clCoreHelper = getHelper<ClCoreHelper>();
EXPECT_EQ(0u, clCoreHelper.getSupportedDeviceFeatureCapabilities(*defaultHwInfo));
}

View File

@ -12,7 +12,7 @@
#include "opencl/test/unit_test/fixtures/cl_device_fixture.h"
#include "opencl/test/unit_test/mocks/mock_context.h"
using ClHwHelperTestXeHpAndLater = ::testing::Test;
using ClHwHelperTestXeHpAndLater = Test<ClDeviceFixture>;
HWCMDTEST_F(IGFX_XE_HP_CORE, ClHwHelperTestXeHpAndLater, givenCLImageFormatsWhenCallingIsFormatRedescribableThenFalseIsReturned) {
static const cl_image_format redescribeFormats[] = {
@ -23,9 +23,14 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ClHwHelperTestXeHpAndLater, givenCLImageFormatsWhen
{CL_RGBA, CL_UNSIGNED_INT32},
};
MockContext context;
auto &clHwHelper = ClHwHelper::get(context.getDevice(0)->getHardwareInfo().platform.eRenderCoreFamily);
auto &clCoreHelper = getHelper<ClCoreHelper>();
for (const auto &format : redescribeFormats) {
EXPECT_EQ(false, clHwHelper.isFormatRedescribable(format));
EXPECT_EQ(false, clCoreHelper.isFormatRedescribable(format));
}
}
HWTEST2_F(ClHwHelperTestXeHpAndLater, WhenGettingSupportedDeviceFeatureCapabilitiesThenReturnCorrectValue, IsAtLeastXeHpCore) {
cl_device_feature_capabilities_intel expectedCapabilities = CL_DEVICE_FEATURE_FLAG_DPAS_INTEL | CL_DEVICE_FEATURE_FLAG_DP4A_INTEL;
auto &clCoreHelper = getHelper<ClCoreHelper>();
EXPECT_EQ(expectedCapabilities, clCoreHelper.getSupportedDeviceFeatureCapabilities(*defaultHwInfo));
}

View File

@ -69,6 +69,11 @@ XE_HP_CORE_TEST_F(ClHwHelperTestsXeHpCore, givenXE_HP_COREWhenEnableStatelessCom
EXPECT_FALSE(clCoreHelper.requiresAuxResolves(kernelInfo, getRootDeviceEnvironment()));
}
XE_HP_CORE_TEST_F(ClHwHelperTestsXeHpCore, WhenGettingDeviceIpVersionThenMakeCorrectDeviceIpVersion) {
auto &clCoreHelper = getHelper<ClCoreHelper>();
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(12, 5, 1), clCoreHelper.getDeviceIpVersion(*defaultHwInfo));
}
using HwHelperTestXE_HP_CORE = HwHelperTest;
XE_HP_CORE_TEST_F(HwHelperTestXE_HP_CORE, givenDifferentBufferSizesWhenEnableStatelessCompressionThenEveryBufferSizeIsSuitableForCompression) {
@ -285,10 +290,6 @@ XE_HP_CORE_TEST_F(HwHelperTestXE_HP_CORE, givenHwHelperWhenGettingThreadsPerEUCo
EXPECT_EQ(8U, configs[1]);
}
XE_HP_CORE_TEST_F(HwHelperTestXE_HP_CORE, WhenGettingDeviceIpVersionThenMakeCorrectDeviceIpVersion) {
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(12, 5, 1), ClHwHelper::get(renderCoreFamily).getDeviceIpVersion(*defaultHwInfo));
}
XE_HP_CORE_TEST_F(HwHelperTestXE_HP_CORE, whenGettingDefaultRevisionThenB0IsReturned) {
EXPECT_EQ(HwInfoConfigHw<IGFX_XE_HP_SDV>::get()->getHwRevIdFromStepping(REVISION_B, *defaultHwInfo), HwHelperHw<FamilyType>::get().getDefaultRevisionId(*defaultHwInfo));
}
@ -374,9 +375,3 @@ XE_HP_CORE_TEST_F(HwHelperTestXE_HP_CORE,
EXPECT_EQ(gpuAddress, UnitTestHelper<FamilyType>::getPipeControlPostSyncAddress(*pipeControl));
EXPECT_EQ(immediateValue, pipeControl->getImmediateData());
}
using HwHelperTestXeHpCoreAndLater = HwHelperTest;
HWTEST2_F(HwHelperTestXeHpCoreAndLater, WhenGettingSupportedDeviceFeatureCapabilitiesThenReturnCorrectValue, IsAtLeastXeHpCore) {
cl_device_feature_capabilities_intel expectedCapabilities = CL_DEVICE_FEATURE_FLAG_DPAS_INTEL | CL_DEVICE_FEATURE_FLAG_DP4A_INTEL;
EXPECT_EQ(expectedCapabilities, ClHwHelper::get(renderCoreFamily).getSupportedDeviceFeatureCapabilities(hardwareInfo));
}

View File

@ -828,5 +828,7 @@ XE_HPC_CORETEST_F(HwHelperTestsXeHpcCore, givenCommandBufferAllocationWhenSetExt
}
XE_HPC_CORETEST_F(HwHelperTestsXeHpcCore, WhenGettingDeviceIpVersionThenMakeCorrectDeviceIpVersion) {
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(12, 8, 1), ClHwHelper::get(renderCoreFamily).getDeviceIpVersion(*defaultHwInfo));
auto &clCoreHelper = getHelper<ClCoreHelper>();
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(12, 8, 1), clCoreHelper.getDeviceIpVersion(*defaultHwInfo));
}

View File

@ -23,10 +23,12 @@ using ClHwHelperTestsXeHpgCore = Test<ClDeviceFixture>;
using namespace NEO;
XE_HPG_CORETEST_F(ClHwHelperTestsXeHpgCore, WhenGettingDeviceIpVersionThenMakeCorrectDeviceIpVersion) {
auto &clCoreHelper = getHelper<ClCoreHelper>();
if (defaultHwInfo->capabilityTable.isIntegratedDevice) {
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(12, 7, 0), ClHwHelper::get(renderCoreFamily).getDeviceIpVersion(*defaultHwInfo));
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(12, 7, 0), clCoreHelper.getDeviceIpVersion(*defaultHwInfo));
} else {
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(12, 7, 1), ClHwHelper::get(renderCoreFamily).getDeviceIpVersion(*defaultHwInfo));
EXPECT_EQ(ClHwHelperMock::makeDeviceIpVersion(12, 7, 1), clCoreHelper.getDeviceIpVersion(*defaultHwInfo));
}
}