compute-runtime/opencl/source/helpers/cl_hw_helper.cpp

42 lines
1.2 KiB
C++

/*
* Copyright (C) 2020-2023 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "opencl/source/helpers/cl_hw_helper.h"
#include "shared/source/execution_environment/root_device_environment.h"
#include "shared/source/helpers/hw_info.h"
namespace NEO {
createClGfxCoreHelperFunctionType clGfxCoreHelperFactory[IGFX_MAX_CORE] = {};
std::unique_ptr<ClGfxCoreHelper> ClGfxCoreHelper::create(GFXCORE_FAMILY gfxCore) {
auto createClGfxCoreHelperFunc = clGfxCoreHelperFactory[gfxCore];
auto clGfxCoreHelper = createClGfxCoreHelperFunc();
return clGfxCoreHelper;
}
uint8_t ClGfxCoreHelper::makeDeviceRevision(const HardwareInfo &hwInfo) {
return static_cast<uint8_t>(!hwInfo.capabilityTable.isIntegratedDevice);
}
cl_version ClGfxCoreHelper::makeDeviceIpVersion(uint16_t major, uint8_t minor, uint8_t revision) {
return (major << 16) | (minor << 8) | revision;
}
template <>
ClGfxCoreHelper &RootDeviceEnvironment::getHelper<ClGfxCoreHelper>() const {
return *static_cast<ClGfxCoreHelper *>(apiGfxCoreHelper.get());
}
void RootDeviceEnvironment::initApiGfxCoreHelper() {
apiGfxCoreHelper = ClGfxCoreHelper::create(this->getHardwareInfo()->platform.eRenderCoreFamily);
}
} // namespace NEO