Use dedicated helper to detect ISA placement requirement
Change-Id: I701c64b52fddfef1e493f4adaef4edc28f5ffdf0 Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
parent
6c2fb0b25e
commit
8db8b09339
|
@ -994,6 +994,12 @@ TEST(HwInfoConfigCommonHelperTest, givenBlitterPreferenceWhenEnablingBlitterOper
|
|||
EXPECT_EQ(expectedBlitterSupport, hardwareInfo.capabilityTable.blitterOperationsSupported);
|
||||
}
|
||||
|
||||
HWTEST_F(HwHelperTest, givenHwHelperWhenAskingForIsaSystemMemoryPlacementThenReturnFalse) {
|
||||
HwHelper &hwHelper = HwHelper::get(hardwareInfo.platform.eRenderCoreFamily);
|
||||
|
||||
EXPECT_FALSE(hwHelper.useSystemMemoryPlacementForISA(hardwareInfo));
|
||||
}
|
||||
|
||||
TEST(HwInfoConfigCommonHelperTest, givenDebugFlagSetWhenEnablingBlitterOperationsSupportThenHonorTheFlag) {
|
||||
DebugManagerStateRestore restore{};
|
||||
HardwareInfo hardwareInfo = *defaultHwInfo;
|
||||
|
|
|
@ -124,6 +124,7 @@ class HwHelper {
|
|||
virtual uint32_t getDefaultThreadArbitrationPolicy() const = 0;
|
||||
virtual bool heapInLocalMem(const HardwareInfo &hwInfo) const = 0;
|
||||
virtual bool useOnlyGlobalTimestamps() const = 0;
|
||||
virtual bool useSystemMemoryPlacementForISA(const HardwareInfo &hwInfo) const = 0;
|
||||
|
||||
static uint32_t getSubDevicesCount(const HardwareInfo *pHwInfo);
|
||||
static uint32_t getEnginesCount(const HardwareInfo &hwInfo);
|
||||
|
@ -306,6 +307,8 @@ class HwHelperHw : public HwHelper {
|
|||
|
||||
bool useOnlyGlobalTimestamps() const override;
|
||||
|
||||
bool useSystemMemoryPlacementForISA(const HardwareInfo &hwInfo) const override;
|
||||
|
||||
protected:
|
||||
LocalMemoryAccessMode getDefaultLocalMemoryAccessMode(const HardwareInfo &hwInfo) const override;
|
||||
|
||||
|
|
|
@ -491,4 +491,9 @@ template <typename GfxFamily>
|
|||
bool HwHelperHw<GfxFamily>::useOnlyGlobalTimestamps() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
bool HwHelperHw<GfxFamily>::useSystemMemoryPlacementForISA(const HardwareInfo &hwInfo) const {
|
||||
return false;
|
||||
}
|
||||
} // namespace NEO
|
||||
|
|
|
@ -255,6 +255,9 @@ bool MemoryManager::getAllocationData(AllocationData &allocationData, const Allo
|
|||
UNRECOVERABLE_IF(hostPtr == nullptr && !properties.flags.allocateMemory);
|
||||
UNRECOVERABLE_IF(properties.allocationType == GraphicsAllocation::AllocationType::UNKNOWN);
|
||||
|
||||
auto hwInfo = executionEnvironment.rootDeviceEnvironments[properties.rootDeviceIndex]->getHardwareInfo();
|
||||
auto &hwHelper = HwHelper::get(hwInfo->platform.eRenderCoreFamily);
|
||||
|
||||
bool allow64KbPages = false;
|
||||
bool allow32Bit = false;
|
||||
bool forcePin = properties.flags.forcePin;
|
||||
|
@ -339,6 +342,10 @@ bool MemoryManager::getAllocationData(AllocationData &allocationData, const Allo
|
|||
break;
|
||||
}
|
||||
|
||||
if (properties.allocationType == GraphicsAllocation::AllocationType::KERNEL_ISA) {
|
||||
allocationData.flags.useSystemMemory = hwHelper.useSystemMemoryPlacementForISA(*hwInfo);
|
||||
}
|
||||
|
||||
switch (properties.allocationType) {
|
||||
case GraphicsAllocation::AllocationType::COMMAND_BUFFER:
|
||||
case GraphicsAllocation::AllocationType::DEVICE_QUEUE_BUFFER:
|
||||
|
@ -388,8 +395,7 @@ bool MemoryManager::getAllocationData(AllocationData &allocationData, const Allo
|
|||
allocationData.osContext = properties.osContext;
|
||||
allocationData.rootDeviceIndex = properties.rootDeviceIndex;
|
||||
|
||||
auto hwInfo = executionEnvironment.rootDeviceEnvironments[properties.rootDeviceIndex]->getHardwareInfo();
|
||||
HwHelper::get(hwInfo->platform.eRenderCoreFamily).setExtraAllocationData(allocationData, properties, *hwInfo);
|
||||
hwHelper.setExtraAllocationData(allocationData, properties, *hwInfo);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue