mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-21 01:04:57 +08:00
Reduce usage of global gfx core helper getter [1/n]
Related-To: NEO-6853 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
637c4e5621
commit
8f308f24e5
@@ -80,7 +80,7 @@ std::string createBuiltinResourceName(EBuiltInOps::Type builtin, const std::stri
|
||||
|
||||
StackVec<std::string, 3> getBuiltinResourceNames(EBuiltInOps::Type builtin, BuiltinCode::ECodeType type, const Device &device) {
|
||||
auto &hwInfo = device.getHardwareInfo();
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = device.getGfxCoreHelper();
|
||||
auto &productHelper = device.getRootDeviceEnvironment().getHelper<ProductHelper>();
|
||||
|
||||
const auto platformName = getFamilyNameWithType(hwInfo);
|
||||
|
||||
@@ -73,7 +73,7 @@ const std::vector<char> &SipKernel::getStateSaveAreaHeader() const {
|
||||
|
||||
size_t SipKernel::getStateSaveAreaSize(Device *device) const {
|
||||
auto &hwInfo = device->getHardwareInfo();
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = device->getGfxCoreHelper();
|
||||
auto maxDbgSurfaceSize = gfxCoreHelper.getSipKernelMaxDbgSurfaceSize(hwInfo);
|
||||
const auto &stateSaveAreaHeader = getStateSaveAreaHeader();
|
||||
if (stateSaveAreaHeader.empty()) {
|
||||
@@ -105,7 +105,7 @@ SipKernelType SipKernel::getSipKernelType(Device &device) {
|
||||
}
|
||||
|
||||
SipKernelType SipKernel::getSipKernelType(Device &device, bool debuggingEnabled) {
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(device.getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = device.getGfxCoreHelper();
|
||||
return gfxCoreHelper.getSipKernelType(debuggingEnabled);
|
||||
}
|
||||
|
||||
@@ -191,7 +191,7 @@ bool SipKernel::initHexadecimalArraySipKernel(SipKernelType type, Device &device
|
||||
uint32_t *sipKernelBinary = nullptr;
|
||||
size_t kernelBinarySize = 0u;
|
||||
auto &hwInfo = device.getHardwareInfo();
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = device.getGfxCoreHelper();
|
||||
|
||||
gfxCoreHelper.setSipKernelData(sipKernelBinary, kernelBinarySize);
|
||||
const auto allocType = AllocationType::KERNEL_ISA_INTERNAL;
|
||||
|
||||
@@ -77,7 +77,7 @@ CommandContainer::ErrorCode CommandContainer::initialize(Device *device, Allocat
|
||||
cmdBufferAllocations.push_back(cmdBufferAllocation);
|
||||
|
||||
const auto &hardwareInfo = device->getHardwareInfo();
|
||||
auto &gfxCoreHelper = NEO::GfxCoreHelper::get(hardwareInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = device->getGfxCoreHelper();
|
||||
commandStream = std::make_unique<LinearStream>(cmdBufferAllocation->getUnderlyingBuffer(),
|
||||
alignedSize - cmdBufferReservedSize, this, gfxCoreHelper.getBatchBufferEndSize());
|
||||
|
||||
@@ -296,7 +296,7 @@ void CommandContainer::allocateNextCommandBuffer() {
|
||||
}
|
||||
|
||||
void CommandContainer::closeAndAllocateNextCommandBuffer() {
|
||||
auto &gfxCoreHelper = NEO::GfxCoreHelper::get(device->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = device->getGfxCoreHelper();
|
||||
auto bbEndSize = gfxCoreHelper.getBatchBufferEndSize();
|
||||
auto ptr = commandStream->getSpace(0u);
|
||||
memcpy_s(ptr, bbEndSize, gfxCoreHelper.getBatchBufferEndReference(), bbEndSize);
|
||||
@@ -383,7 +383,7 @@ GraphicsAllocation *CommandContainer::allocateCommandBuffer() {
|
||||
void CommandContainer::fillReusableAllocationLists() {
|
||||
this->immediateReusableAllocationList = std::make_unique<NEO::AllocationsList>();
|
||||
const auto &hardwareInfo = device->getHardwareInfo();
|
||||
auto &gfxCoreHelper = NEO::GfxCoreHelper::get(hardwareInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = device->getGfxCoreHelper();
|
||||
auto amountToFill = gfxCoreHelper.getAmountOfAllocationsToFill();
|
||||
if (amountToFill == 0u) {
|
||||
return;
|
||||
|
||||
@@ -60,7 +60,7 @@ CommandStreamReceiverHw<GfxFamily>::CommandStreamReceiverHw(ExecutionEnvironment
|
||||
: CommandStreamReceiver(executionEnvironment, rootDeviceIndex, deviceBitfield) {
|
||||
|
||||
const auto &hwInfo = peekHwInfo();
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = getGfxCoreHelper();
|
||||
localMemoryEnabled = gfxCoreHelper.getEnableLocalMemory(hwInfo);
|
||||
|
||||
resetKmdNotifyHelper(new KmdNotifyHelper(&hwInfo.capabilityTable.kmdNotifyProperties));
|
||||
@@ -292,7 +292,7 @@ CompletionStamp CommandStreamReceiverHw<GfxFamily>::flushTask(
|
||||
}
|
||||
|
||||
const auto &hwInfo = peekHwInfo();
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = getGfxCoreHelper();
|
||||
|
||||
if (dispatchFlags.blocking || dispatchFlags.dcFlush || dispatchFlags.guardCommandBufferWithPipeControl || this->heapStorageReqiuresRecyclingTag) {
|
||||
if (this->dispatchMode == DispatchMode::ImmediateDispatch) {
|
||||
@@ -1082,7 +1082,7 @@ inline void CommandStreamReceiverHw<GfxFamily>::programVFEState(LinearStream &cs
|
||||
auto disableOverdispatch = (dispatchFlags.additionalKernelExecInfo != AdditionalKernelExecInfo::NotSet);
|
||||
streamProperties.frontEndState.setProperties(isCooperative, dispatchFlags.disableEUFusion, disableOverdispatch, osContext->isEngineInstanced(), hwInfo);
|
||||
|
||||
auto &gfxCoreHelper = NEO::GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = getGfxCoreHelper();
|
||||
auto engineGroupType = gfxCoreHelper.getEngineGroupType(getOsContext().getEngineType(), getOsContext().getEngineUsage(), hwInfo);
|
||||
auto pVfeState = PreambleHelper<GfxFamily>::getSpaceForVfeState(&csr, hwInfo, engineGroupType);
|
||||
PreambleHelper<GfxFamily>::programVfeState(
|
||||
@@ -1394,7 +1394,7 @@ inline SubmissionStatus CommandStreamReceiverHw<GfxFamily>::flushHandler(BatchBu
|
||||
|
||||
template <typename GfxFamily>
|
||||
inline bool CommandStreamReceiverHw<GfxFamily>::isUpdateTagFromWaitEnabled() {
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(peekHwInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = getGfxCoreHelper();
|
||||
auto enabled = gfxCoreHelper.isUpdateTaskCountFromWaitSupported();
|
||||
enabled &= this->isAnyDirectSubmissionEnabled();
|
||||
|
||||
@@ -1514,7 +1514,7 @@ inline bool CommandStreamReceiverHw<GfxFamily>::initDirectSubmission() {
|
||||
template <typename GfxFamily>
|
||||
TagAllocatorBase *CommandStreamReceiverHw<GfxFamily>::getTimestampPacketAllocator() {
|
||||
if (timestampPacketAllocator.get() == nullptr) {
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(peekHwInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = getGfxCoreHelper();
|
||||
const RootDeviceIndicesContainer rootDeviceIndices = {rootDeviceIndex};
|
||||
|
||||
timestampPacketAllocator = gfxCoreHelper.createTimestampPacketAllocator(rootDeviceIndices, getMemoryManager(), getPreferredTagPoolSize(), getType(), osContext->getDeviceBitfield());
|
||||
|
||||
@@ -139,7 +139,7 @@ inline void CommandStreamReceiverHw<GfxFamily>::programActivePartitionConfig(Lin
|
||||
template <typename GfxFamily>
|
||||
inline void CommandStreamReceiverHw<GfxFamily>::addPipeControlBeforeStateSip(LinearStream &commandStream, Device &device) {
|
||||
auto &hwInfo = peekHwInfo();
|
||||
GfxCoreHelper &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = getGfxCoreHelper();
|
||||
auto hwInfoConfig = HwInfoConfig::get(hwInfo.platform.eProductFamily);
|
||||
bool debuggingEnabled = device.getDebugger() != nullptr;
|
||||
PipeControlArgs args;
|
||||
|
||||
@@ -18,7 +18,7 @@ void PreemptionHelper::programStateSip<GfxFamily>(LinearStream &preambleCmdStrea
|
||||
bool debuggingEnabled = device.getDebugger() != nullptr;
|
||||
|
||||
if (debuggingEnabled) {
|
||||
GfxCoreHelper &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = device.getGfxCoreHelper();
|
||||
auto sipAllocation = SipKernel::getSipKernel(device).getSipAllocation();
|
||||
|
||||
if (gfxCoreHelper.isSipWANeeded(hwInfo)) {
|
||||
@@ -75,7 +75,7 @@ size_t PreemptionHelper::getRequiredStateSipCmdSize<GfxFamily>(Device &device, b
|
||||
auto &hwInfo = device.getHardwareInfo();
|
||||
|
||||
if (debuggingEnabled) {
|
||||
GfxCoreHelper &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = device.getGfxCoreHelper();
|
||||
|
||||
if (gfxCoreHelper.isSipWANeeded(hwInfo)) {
|
||||
size += MemorySynchronizationCommands<GfxFamily>::getSizeForSingleBarrier(false);
|
||||
|
||||
@@ -76,7 +76,7 @@ uint64_t ScratchSpaceControllerBase::getScratchPatchAddress() {
|
||||
|
||||
void ScratchSpaceControllerBase::reserveHeap(IndirectHeap::Type heapType, IndirectHeap *&indirectHeap) {
|
||||
if (heapType == IndirectHeap::Type::SURFACE_STATE) {
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(executionEnvironment.rootDeviceEnvironments[rootDeviceIndex]->getHardwareInfo()->platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = executionEnvironment.rootDeviceEnvironments[rootDeviceIndex]->getHelper<GfxCoreHelper>();
|
||||
auto surfaceStateSize = gfxCoreHelper.getRenderSurfaceStateSize();
|
||||
indirectHeap->getSpace(surfaceStateSize);
|
||||
}
|
||||
|
||||
@@ -165,8 +165,9 @@ CommandStreamReceiver *TbxCommandStreamReceiverHw<GfxFamily>::create(const std::
|
||||
uint32_t rootDeviceIndex,
|
||||
const DeviceBitfield deviceBitfield) {
|
||||
TbxCommandStreamReceiverHw<GfxFamily> *csr;
|
||||
auto &hwInfo = *(executionEnvironment.rootDeviceEnvironments[rootDeviceIndex]->getHardwareInfo());
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto &rootDeviceEnvironment = *executionEnvironment.rootDeviceEnvironments[rootDeviceIndex];
|
||||
auto &hwInfo = *rootDeviceEnvironment.getHardwareInfo();
|
||||
auto &gfxCoreHelper = rootDeviceEnvironment.getHelper<GfxCoreHelper>();
|
||||
const auto &hwInfoConfig = *HwInfoConfig::get(hwInfo.platform.eProductFamily);
|
||||
if (withAubDump) {
|
||||
auto localMemoryEnabled = gfxCoreHelper.getEnableLocalMemory(hwInfo);
|
||||
@@ -174,11 +175,11 @@ CommandStreamReceiver *TbxCommandStreamReceiverHw<GfxFamily>::create(const std::
|
||||
if (DebugManager.flags.AUBDumpCaptureFileName.get() != "unk") {
|
||||
fullName.assign(DebugManager.flags.AUBDumpCaptureFileName.get());
|
||||
}
|
||||
executionEnvironment.rootDeviceEnvironments[rootDeviceIndex]->initAubCenter(localMemoryEnabled, fullName, CommandStreamReceiverType::CSR_TBX_WITH_AUB);
|
||||
rootDeviceEnvironment.initAubCenter(localMemoryEnabled, fullName, CommandStreamReceiverType::CSR_TBX_WITH_AUB);
|
||||
|
||||
csr = new CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<GfxFamily>>(baseName, executionEnvironment, rootDeviceIndex, deviceBitfield);
|
||||
|
||||
auto aubCenter = executionEnvironment.rootDeviceEnvironments[rootDeviceIndex]->aubCenter.get();
|
||||
auto aubCenter = rootDeviceEnvironment.aubCenter.get();
|
||||
UNRECOVERABLE_IF(nullptr == aubCenter);
|
||||
|
||||
auto subCaptureCommon = aubCenter->getSubCaptureCommon();
|
||||
|
||||
@@ -97,7 +97,7 @@ class GfxCoreHelper {
|
||||
virtual uint32_t getMocsIndex(const GmmHelper &gmmHelper, bool l3enabled, bool l1enabled) const = 0;
|
||||
virtual bool isLinearStoragePreferred(bool isSharedContext, bool isImage1d, bool forceLinearStorage) = 0;
|
||||
virtual uint8_t getBarriersCountFromHasBarriers(uint8_t hasBarriers) const = 0;
|
||||
virtual uint32_t calculateAvailableThreadCount(const HardwareInfo &hwInfo, uint32_t grfCount) = 0;
|
||||
virtual uint32_t calculateAvailableThreadCount(const HardwareInfo &hwInfo, uint32_t grfCount) const = 0;
|
||||
virtual uint32_t alignSlmSize(uint32_t slmSize) = 0;
|
||||
virtual uint32_t computeSlmValues(const HardwareInfo &hwInfo, uint32_t slmSize) = 0;
|
||||
|
||||
@@ -277,7 +277,7 @@ class GfxCoreHelperHw : public GfxCoreHelper {
|
||||
|
||||
uint8_t getBarriersCountFromHasBarriers(uint8_t hasBarriers) const override;
|
||||
|
||||
uint32_t calculateAvailableThreadCount(const HardwareInfo &hwInfo, uint32_t grfCount) override;
|
||||
uint32_t calculateAvailableThreadCount(const HardwareInfo &hwInfo, uint32_t grfCount) const override;
|
||||
|
||||
uint32_t alignSlmSize(uint32_t slmSize) override;
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ uint32_t GfxCoreHelperHw<GfxFamily>::getMocsIndex(const GmmHelper &gmmHelper, bo
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
uint32_t GfxCoreHelperHw<GfxFamily>::calculateAvailableThreadCount(const HardwareInfo &hwInfo, uint32_t grfCount) {
|
||||
uint32_t GfxCoreHelperHw<GfxFamily>::calculateAvailableThreadCount(const HardwareInfo &hwInfo, uint32_t grfCount) const {
|
||||
return hwInfo.gtSystemInfo.ThreadCount;
|
||||
}
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ size_t GfxCoreHelperHw<Family>::getPaddingForISAAllocation() const {
|
||||
}
|
||||
|
||||
template <>
|
||||
uint32_t GfxCoreHelperHw<Family>::calculateAvailableThreadCount(const HardwareInfo &hwInfo, uint32_t grfCount) {
|
||||
uint32_t GfxCoreHelperHw<Family>::calculateAvailableThreadCount(const HardwareInfo &hwInfo, uint32_t grfCount) const {
|
||||
auto maxThreadsPerEuCount = 1024u / grfCount;
|
||||
return maxThreadsPerEuCount * hwInfo.gtSystemInfo.EUCount;
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@ uint32_t GfxCoreHelperHw<GfxFamily>::getMocsIndex(const GmmHelper &gmmHelper, bo
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
uint32_t GfxCoreHelperHw<GfxFamily>::calculateAvailableThreadCount(const HardwareInfo &hwInfo, uint32_t grfCount) {
|
||||
uint32_t GfxCoreHelperHw<GfxFamily>::calculateAvailableThreadCount(const HardwareInfo &hwInfo, uint32_t grfCount) const {
|
||||
if (grfCount > GrfConfig::DefaultGrfNumber) {
|
||||
return hwInfo.gtSystemInfo.ThreadCount / 2u;
|
||||
}
|
||||
|
||||
@@ -925,7 +925,7 @@ void Drm::setupSystemInfo(HardwareInfo *hwInfo, SystemInfo *sysInfo) {
|
||||
}
|
||||
|
||||
void Drm::setupCacheInfo(const HardwareInfo &hwInfo) {
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = rootDeviceEnvironment.getHelper<GfxCoreHelper>();
|
||||
|
||||
if (DebugManager.flags.ClosEnabled.get() == 0 || gfxCoreHelper.getNumCacheRegions() == 0) {
|
||||
this->cacheInfo.reset(new CacheInfo(*this, 0, 0, 0));
|
||||
@@ -1335,7 +1335,7 @@ uint64_t Drm::getPatIndex(Gmm *gmm, AllocationType allocationType, CacheRegion c
|
||||
return CommonConstants::unsupportedPatIndex;
|
||||
}
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(hwInfo->platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = rootDeviceEnvironment.getHelper<GfxCoreHelper>();
|
||||
|
||||
GMM_RESOURCE_INFO *resourceInfo = nullptr;
|
||||
GMM_RESOURCE_USAGE_TYPE usageType = CacheSettingsHelper::getGmmUsageType(allocationType, false, *hwInfo);
|
||||
@@ -1486,7 +1486,7 @@ int Drm::createDrmVirtualMemory(uint32_t &drmVmId) {
|
||||
auto hwInfo = this->getRootDeviceEnvironment().getHardwareInfo();
|
||||
auto memInfo = this->getMemoryInfo();
|
||||
if (DebugManager.flags.UseTileMemoryBankInVirtualMemoryCreation.get() != 0) {
|
||||
if (memInfo && GfxCoreHelper::get(hwInfo->platform.eRenderCoreFamily).getEnableLocalMemory(*hwInfo)) {
|
||||
if (memInfo && rootDeviceEnvironment.getHelper<GfxCoreHelper>().getEnableLocalMemory(*hwInfo)) {
|
||||
regionInstanceClass = memInfo->getMemoryRegionClassAndInstance(memoryBank, *this->rootDeviceEnvironment.getHardwareInfo());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,8 +20,7 @@ namespace NEO {
|
||||
std::unique_ptr<PerformanceCounters> PerformanceCounters::create(Device *device) {
|
||||
auto counter = std::make_unique<PerformanceCountersLinux>();
|
||||
auto drm = device->getOSTime()->getOSInterface()->getDriverModel()->as<Drm>();
|
||||
auto gen = device->getHardwareInfo().platform.eRenderCoreFamily;
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(gen);
|
||||
auto &gfxCoreHelper = device->getGfxCoreHelper();
|
||||
UNRECOVERABLE_IF(counter == nullptr);
|
||||
|
||||
if (!device->isSubDevice()) {
|
||||
|
||||
@@ -20,8 +20,7 @@ namespace NEO {
|
||||
std::unique_ptr<PerformanceCounters> PerformanceCounters::create(Device *device) {
|
||||
auto counter = std::make_unique<PerformanceCountersWin>();
|
||||
auto wddm = device->getOSTime()->getOSInterface()->getDriverModel()->as<Wddm>();
|
||||
auto gen = device->getHardwareInfo().platform.eRenderCoreFamily;
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(gen);
|
||||
auto &gfxCoreHelper = device->getGfxCoreHelper();
|
||||
UNRECOVERABLE_IF(counter == nullptr);
|
||||
|
||||
counter->clientData.Windows.Adapter = reinterpret_cast<void *>(static_cast<UINT_PTR>(wddm->getAdapter()));
|
||||
|
||||
@@ -45,7 +45,7 @@ void EncodeDispatchKernel<Family>::adjustInterfaceDescriptorData(INTERFACE_DESCR
|
||||
|
||||
constexpr uint32_t maxThreadsInTGForTGDispatchSize8 = 16u;
|
||||
constexpr uint32_t maxThreadsInTGForTGDispatchSize4 = 32u;
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = device.getGfxCoreHelper();
|
||||
uint32_t availableThreadCount = gfxCoreHelper.calculateAvailableThreadCount(hwInfo, numGrf);
|
||||
if (ImplicitScalingHelper::isImplicitScalingEnabled(device.getDeviceBitfield(), true)) {
|
||||
const uint32_t tilesCount = device.getNumSubDevices();
|
||||
|
||||
Reference in New Issue
Block a user