mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-08 22:12:59 +08:00
refactor: unify naming for l3 flush after post sync
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
36ded38589
commit
56415ddac7
@@ -601,7 +601,7 @@ struct CommandList : _ze_command_list_handle_t {
|
|||||||
bool scratchAddressPatchingEnabled = false;
|
bool scratchAddressPatchingEnabled = false;
|
||||||
bool taskCountUpdateFenceRequired = false;
|
bool taskCountUpdateFenceRequired = false;
|
||||||
bool statelessBuiltinsEnabled = false;
|
bool statelessBuiltinsEnabled = false;
|
||||||
bool l3FlushAfterPostSyncRequired = false;
|
bool l3FlushAfterPostSyncEnabled = false;
|
||||||
bool textureCacheFlushPending = false;
|
bool textureCacheFlushPending = false;
|
||||||
bool closedCmdList = false;
|
bool closedCmdList = false;
|
||||||
bool isWalkerWithProfilingEnqueued = false;
|
bool isWalkerWithProfilingEnqueued = false;
|
||||||
|
|||||||
@@ -262,8 +262,8 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::initialize(Device *device, NEO
|
|||||||
this->defaultPipelinedThreadArbitrationPolicy = gfxCoreHelper.getDefaultThreadArbitrationPolicy();
|
this->defaultPipelinedThreadArbitrationPolicy = gfxCoreHelper.getDefaultThreadArbitrationPolicy();
|
||||||
this->implicitSynchronizedDispatchForCooperativeKernelsAllowed = l0GfxCoreHelper.implicitSynchronizedDispatchForCooperativeKernelsAllowed();
|
this->implicitSynchronizedDispatchForCooperativeKernelsAllowed = l0GfxCoreHelper.implicitSynchronizedDispatchForCooperativeKernelsAllowed();
|
||||||
this->maxLocalSubRegionSize = productHelper.getMaxLocalSubRegionSize(hwInfo);
|
this->maxLocalSubRegionSize = productHelper.getMaxLocalSubRegionSize(hwInfo);
|
||||||
this->l3FlushAfterPostSyncRequired = productHelper.isL3FlushAfterPostSyncRequired(heaplessModeEnabled);
|
this->l3FlushAfterPostSyncEnabled = productHelper.isL3FlushAfterPostSyncSupported(heaplessModeEnabled);
|
||||||
this->compactL3FlushEventPacket = L0GfxCoreHelper::useCompactL3FlushEventPacket(hwInfo, this->l3FlushAfterPostSyncRequired);
|
this->compactL3FlushEventPacket = L0GfxCoreHelper::useCompactL3FlushEventPacket(hwInfo, this->l3FlushAfterPostSyncEnabled);
|
||||||
this->useAdditionalBlitProperties = productHelper.useAdditionalBlitProperties();
|
this->useAdditionalBlitProperties = productHelper.useAdditionalBlitProperties();
|
||||||
this->isPostImageWriteFlushRequired = releaseHelper ? releaseHelper->isPostImageWriteFlushRequired() : false;
|
this->isPostImageWriteFlushRequired = releaseHelper ? releaseHelper->isPostImageWriteFlushRequired() : false;
|
||||||
this->shouldRegisterEnqueuedWalkerWithProfiling = this->device->getNEODevice()->getProductHelper().shouldRegisterEnqueuedWalkerWithProfiling();
|
this->shouldRegisterEnqueuedWalkerWithProfiling = this->device->getNEODevice()->getProductHelper().shouldRegisterEnqueuedWalkerWithProfiling();
|
||||||
@@ -3177,7 +3177,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendWaitOnEvents(uint32_t nu
|
|||||||
if (isCopyOnly(copyOffloadOperation)) {
|
if (isCopyOnly(copyOffloadOperation)) {
|
||||||
NEO::MiFlushArgs args{this->dummyBlitWa};
|
NEO::MiFlushArgs args{this->dummyBlitWa};
|
||||||
encodeMiFlush(0, 0, args);
|
encodeMiFlush(0, 0, args);
|
||||||
} else if (!this->l3FlushAfterPostSyncRequired) {
|
} else if (!this->l3FlushAfterPostSyncEnabled) {
|
||||||
NEO::PipeControlArgs args;
|
NEO::PipeControlArgs args;
|
||||||
args.dcFlushEnable = true;
|
args.dcFlushEnable = true;
|
||||||
args.textureCacheInvalidationEnable = this->consumeTextureCacheFlushPending();
|
args.textureCacheInvalidationEnable = this->consumeTextureCacheFlushPending();
|
||||||
|
|||||||
@@ -212,9 +212,9 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelWithParams(K
|
|||||||
!launchParams.isKernelSplitOperation;
|
!launchParams.isKernelSplitOperation;
|
||||||
|
|
||||||
l3FlushInPipeControlEnable = getDcFlushRequired(flushRequired) &&
|
l3FlushInPipeControlEnable = getDcFlushRequired(flushRequired) &&
|
||||||
!this->l3FlushAfterPostSyncRequired;
|
!this->l3FlushAfterPostSyncEnabled;
|
||||||
|
|
||||||
isFlushL3AfterPostSync = isHostSignalScopeEvent && this->l3FlushAfterPostSyncRequired && !launchParams.isKernelSplitOperation;
|
isFlushL3AfterPostSync = isHostSignalScopeEvent && this->l3FlushAfterPostSyncEnabled && !launchParams.isKernelSplitOperation;
|
||||||
|
|
||||||
interruptEvent = event->isInterruptModeEnabled();
|
interruptEvent = event->isInterruptModeEnabled();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ uint32_t L0GfxCoreHelperHw<Family>::getEventBaseMaxPacketCount(const NEO::RootDe
|
|||||||
auto &productHelper = rootDeviceEnvironment.getProductHelper();
|
auto &productHelper = rootDeviceEnvironment.getProductHelper();
|
||||||
auto &hwInfo = *rootDeviceEnvironment.getHardwareInfo();
|
auto &hwInfo = *rootDeviceEnvironment.getHardwareInfo();
|
||||||
auto heaplessEnabled = compilerProductHelper.isHeaplessModeEnabled(hwInfo);
|
auto heaplessEnabled = compilerProductHelper.isHeaplessModeEnabled(hwInfo);
|
||||||
bool flushL3AfterPostSync = productHelper.isL3FlushAfterPostSyncRequired(heaplessEnabled);
|
bool flushL3AfterPostSync = productHelper.isL3FlushAfterPostSyncSupported(heaplessEnabled);
|
||||||
|
|
||||||
uint32_t basePackets = getEventMaxKernelCount(hwInfo);
|
uint32_t basePackets = getEventMaxKernelCount(hwInfo);
|
||||||
if (NEO::MemorySynchronizationCommands<Family>::getDcFlushEnable(true, rootDeviceEnvironment) && !flushL3AfterPostSync) {
|
if (NEO::MemorySynchronizationCommands<Family>::getDcFlushEnable(true, rootDeviceEnvironment) && !flushL3AfterPostSync) {
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ struct WhiteBox<::L0::CommandListCoreFamily<gfxCoreFamily>>
|
|||||||
using BaseClass::isSyncModeQueue;
|
using BaseClass::isSyncModeQueue;
|
||||||
using BaseClass::isTbxMode;
|
using BaseClass::isTbxMode;
|
||||||
using BaseClass::isTimestampEventForMultiTile;
|
using BaseClass::isTimestampEventForMultiTile;
|
||||||
using BaseClass::l3FlushAfterPostSyncRequired;
|
using BaseClass::l3FlushAfterPostSyncEnabled;
|
||||||
using BaseClass::latestOperationRequiredNonWalkerInOrderCmdsChaining;
|
using BaseClass::latestOperationRequiredNonWalkerInOrderCmdsChaining;
|
||||||
using BaseClass::maxFillPatternSizeForCopyEngine;
|
using BaseClass::maxFillPatternSizeForCopyEngine;
|
||||||
using BaseClass::obtainKernelPreemptionMode;
|
using BaseClass::obtainKernelPreemptionMode;
|
||||||
@@ -324,7 +324,7 @@ struct WhiteBox<::L0::CommandListImp> : public ::L0::CommandListImp {
|
|||||||
using BaseClass::interruptEvents;
|
using BaseClass::interruptEvents;
|
||||||
using BaseClass::isSyncModeQueue;
|
using BaseClass::isSyncModeQueue;
|
||||||
using BaseClass::isTbxMode;
|
using BaseClass::isTbxMode;
|
||||||
using BaseClass::l3FlushAfterPostSyncRequired;
|
using BaseClass::l3FlushAfterPostSyncEnabled;
|
||||||
using BaseClass::minimalSizeForBcsSplit;
|
using BaseClass::minimalSizeForBcsSplit;
|
||||||
using BaseClass::partitionCount;
|
using BaseClass::partitionCount;
|
||||||
using BaseClass::pipelineSelectStateTracking;
|
using BaseClass::pipelineSelectStateTracking;
|
||||||
|
|||||||
@@ -884,7 +884,9 @@ HWTEST_F(HostPointerManagerCommandListTest, givenCommandListWhenMemoryFillWithSi
|
|||||||
|
|
||||||
auto pc = genCmdCast<PIPE_CONTROL *>(*cmdList.rbegin());
|
auto pc = genCmdCast<PIPE_CONTROL *>(*cmdList.rbegin());
|
||||||
|
|
||||||
if (!device->getProductHelper().isL3FlushAfterPostSyncRequired(device->getCompilerProductHelper().isHeaplessModeEnabled(*defaultHwInfo)) && NEO::MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getNEODevice()->getRootDeviceEnvironment())) {
|
auto l3FlushAfterPostSupported = device->getProductHelper().isL3FlushAfterPostSyncSupported(device->getCompilerProductHelper().isHeaplessModeEnabled(*defaultHwInfo));
|
||||||
|
|
||||||
|
if (!l3FlushAfterPostSupported && NEO::MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getNEODevice()->getRootDeviceEnvironment())) {
|
||||||
EXPECT_NE(nullptr, pc);
|
EXPECT_NE(nullptr, pc);
|
||||||
EXPECT_TRUE(pc->getDcFlushEnable());
|
EXPECT_TRUE(pc->getDcFlushEnable());
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -709,7 +709,7 @@ HWTEST_F(CommandListCreate, givenCommandListWhenAppendWaitEventsWithDcFlushThenP
|
|||||||
|
|
||||||
auto whiteBoxCmdList = static_cast<CommandList *>(commandList.get());
|
auto whiteBoxCmdList = static_cast<CommandList *>(commandList.get());
|
||||||
|
|
||||||
if (NEO::MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getNEODevice()->getRootDeviceEnvironment()) && !whiteBoxCmdList->l3FlushAfterPostSyncRequired) {
|
if (NEO::MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getNEODevice()->getRootDeviceEnvironment()) && !whiteBoxCmdList->l3FlushAfterPostSyncEnabled) {
|
||||||
itor--;
|
itor--;
|
||||||
EXPECT_NE(nullptr, genCmdCast<PIPE_CONTROL *>(*itor));
|
EXPECT_NE(nullptr, genCmdCast<PIPE_CONTROL *>(*itor));
|
||||||
} else {
|
} else {
|
||||||
@@ -741,7 +741,7 @@ HWTEST_F(CommandListCreate, givenAsyncCmdQueueAndImmediateCommandListWhenAppendW
|
|||||||
EXPECT_NE(nullptr, whiteBoxCmdList->cmdQImmediate);
|
EXPECT_NE(nullptr, whiteBoxCmdList->cmdQImmediate);
|
||||||
|
|
||||||
size_t expectedUsed = 2 * NEO::EncodeSemaphore<FamilyType>::getSizeMiSemaphoreWait() + sizeof(MI_BATCH_BUFFER_END);
|
size_t expectedUsed = 2 * NEO::EncodeSemaphore<FamilyType>::getSizeMiSemaphoreWait() + sizeof(MI_BATCH_BUFFER_END);
|
||||||
if (NEO::MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getNEODevice()->getRootDeviceEnvironment()) && !whiteBoxCmdList->l3FlushAfterPostSyncRequired) {
|
if (NEO::MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getNEODevice()->getRootDeviceEnvironment()) && !whiteBoxCmdList->l3FlushAfterPostSyncEnabled) {
|
||||||
expectedUsed += sizeof(PIPE_CONTROL);
|
expectedUsed += sizeof(PIPE_CONTROL);
|
||||||
}
|
}
|
||||||
expectedUsed = alignUp(expectedUsed, 64);
|
expectedUsed = alignUp(expectedUsed, 64);
|
||||||
|
|||||||
@@ -558,7 +558,7 @@ HWTEST_F(CommandListAppendWaitOnEvent, givenEventWithWaitScopeFlagDeviceWhenAppe
|
|||||||
|
|
||||||
auto whiteBoxCmdList = static_cast<CommandList *>(commandList.get());
|
auto whiteBoxCmdList = static_cast<CommandList *>(commandList.get());
|
||||||
|
|
||||||
if (NEO::MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getNEODevice()->getRootDeviceEnvironment()) && !whiteBoxCmdList->l3FlushAfterPostSyncRequired) {
|
if (NEO::MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getNEODevice()->getRootDeviceEnvironment()) && !whiteBoxCmdList->l3FlushAfterPostSyncEnabled) {
|
||||||
itor--;
|
itor--;
|
||||||
auto cmd = genCmdCast<PIPE_CONTROL *>(*itor);
|
auto cmd = genCmdCast<PIPE_CONTROL *>(*itor);
|
||||||
|
|
||||||
@@ -755,7 +755,7 @@ HWTEST_F(CommandListAppendWaitOnSecondaryBatchBufferEvent, givenCommandBufferIsE
|
|||||||
commandList->getCmdContainer().getCommandStream()->getSpace(consumeSpace);
|
commandList->getCmdContainer().getCommandStream()->getSpace(consumeSpace);
|
||||||
|
|
||||||
size_t expectedConsumedSpace = NEO::EncodeSemaphore<FamilyType>::getSizeMiSemaphoreWait();
|
size_t expectedConsumedSpace = NEO::EncodeSemaphore<FamilyType>::getSizeMiSemaphoreWait();
|
||||||
if (MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getNEODevice()->getRootDeviceEnvironment()) && !commandList->l3FlushAfterPostSyncRequired) {
|
if (MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getNEODevice()->getRootDeviceEnvironment()) && !commandList->l3FlushAfterPostSyncEnabled) {
|
||||||
expectedConsumedSpace += sizeof(PIPE_CONTROL);
|
expectedConsumedSpace += sizeof(PIPE_CONTROL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -787,7 +787,7 @@ HWTEST_F(CommandListAppendWaitOnSecondaryBatchBufferEvent, givenCommandBufferIsE
|
|||||||
usedSpaceAfter));
|
usedSpaceAfter));
|
||||||
|
|
||||||
auto itorPC = find<PIPE_CONTROL *>(cmdList.begin(), cmdList.end());
|
auto itorPC = find<PIPE_CONTROL *>(cmdList.begin(), cmdList.end());
|
||||||
if (MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getNEODevice()->getRootDeviceEnvironment()) && !commandList->l3FlushAfterPostSyncRequired) {
|
if (MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getNEODevice()->getRootDeviceEnvironment()) && !commandList->l3FlushAfterPostSyncEnabled) {
|
||||||
ASSERT_NE(cmdList.end(), itorPC);
|
ASSERT_NE(cmdList.end(), itorPC);
|
||||||
{
|
{
|
||||||
auto cmd = genCmdCast<PIPE_CONTROL *>(*itorPC);
|
auto cmd = genCmdCast<PIPE_CONTROL *>(*itorPC);
|
||||||
|
|||||||
@@ -4412,8 +4412,8 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, InOrderCmdListTests, givenInOrderModeWhenProgrammin
|
|||||||
EXPECT_EQ(0u, postSync.getImmediateData());
|
EXPECT_EQ(0u, postSync.getImmediateData());
|
||||||
}
|
}
|
||||||
|
|
||||||
auto l3FlushAfterPostSyncRequired = this->neoDevice->getProductHelper().isL3FlushAfterPostSyncRequired(true);
|
auto l3FlushAfterPostSyncEnabled = this->neoDevice->getProductHelper().isL3FlushAfterPostSyncSupported(true);
|
||||||
if (l3FlushAfterPostSyncRequired) {
|
if (l3FlushAfterPostSyncEnabled) {
|
||||||
EXPECT_NE(0u, postSync.getDestinationAddress());
|
EXPECT_NE(0u, postSync.getDestinationAddress());
|
||||||
} else {
|
} else {
|
||||||
EXPECT_EQ(0u, postSync.getDestinationAddress());
|
EXPECT_EQ(0u, postSync.getDestinationAddress());
|
||||||
|
|||||||
@@ -1096,7 +1096,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE,
|
|||||||
using PIPE_CONTROL = typename FamilyType::PIPE_CONTROL;
|
using PIPE_CONTROL = typename FamilyType::PIPE_CONTROL;
|
||||||
|
|
||||||
auto &productHelper = this->neoDevice->getProductHelper();
|
auto &productHelper = this->neoDevice->getProductHelper();
|
||||||
if (productHelper.isL3FlushAfterPostSyncRequired(true)) {
|
if (productHelper.isL3FlushAfterPostSyncSupported(true)) {
|
||||||
GTEST_SKIP();
|
GTEST_SKIP();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1146,7 +1146,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE,
|
|||||||
using MI_STORE_REGISTER_MEM = typename FamilyType::MI_STORE_REGISTER_MEM;
|
using MI_STORE_REGISTER_MEM = typename FamilyType::MI_STORE_REGISTER_MEM;
|
||||||
|
|
||||||
auto &productHelper = this->neoDevice->getProductHelper();
|
auto &productHelper = this->neoDevice->getProductHelper();
|
||||||
if (productHelper.isL3FlushAfterPostSyncRequired(true)) {
|
if (productHelper.isL3FlushAfterPostSyncSupported(true)) {
|
||||||
GTEST_SKIP();
|
GTEST_SKIP();
|
||||||
}
|
}
|
||||||
auto mockBaseCmdList = static_cast<L0::ult::MockCommandList *>(this->mutableCommandList.get()->base);
|
auto mockBaseCmdList = static_cast<L0::ult::MockCommandList *>(this->mutableCommandList.get()->base);
|
||||||
@@ -2007,7 +2007,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE,
|
|||||||
using MI_STORE_DATA_IMM = typename FamilyType::MI_STORE_DATA_IMM;
|
using MI_STORE_DATA_IMM = typename FamilyType::MI_STORE_DATA_IMM;
|
||||||
using MI_SEMAPHORE_WAIT = typename FamilyType::MI_SEMAPHORE_WAIT;
|
using MI_SEMAPHORE_WAIT = typename FamilyType::MI_SEMAPHORE_WAIT;
|
||||||
auto &productHelper = this->neoDevice->getProductHelper();
|
auto &productHelper = this->neoDevice->getProductHelper();
|
||||||
if (productHelper.isL3FlushAfterPostSyncRequired(true)) {
|
if (productHelper.isL3FlushAfterPostSyncSupported(true)) {
|
||||||
GTEST_SKIP();
|
GTEST_SKIP();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2096,7 +2096,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE,
|
|||||||
using MI_STORE_REGISTER_MEM = typename FamilyType::MI_STORE_REGISTER_MEM;
|
using MI_STORE_REGISTER_MEM = typename FamilyType::MI_STORE_REGISTER_MEM;
|
||||||
|
|
||||||
auto &productHelper = this->neoDevice->getProductHelper();
|
auto &productHelper = this->neoDevice->getProductHelper();
|
||||||
if (productHelper.isL3FlushAfterPostSyncRequired(true)) {
|
if (productHelper.isL3FlushAfterPostSyncSupported(true)) {
|
||||||
GTEST_SKIP();
|
GTEST_SKIP();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ CommandQueue::CommandQueue(Context *context, ClDevice *device, const cl_queue_pr
|
|||||||
this->heaplessModeEnabled = compilerProductHelper.isHeaplessModeEnabled(hwInfo);
|
this->heaplessModeEnabled = compilerProductHelper.isHeaplessModeEnabled(hwInfo);
|
||||||
this->heaplessStateInitEnabled = compilerProductHelper.isHeaplessStateInitEnabled(this->heaplessModeEnabled);
|
this->heaplessStateInitEnabled = compilerProductHelper.isHeaplessStateInitEnabled(this->heaplessModeEnabled);
|
||||||
this->isForceStateless = compilerProductHelper.isForceToStatelessRequired();
|
this->isForceStateless = compilerProductHelper.isForceToStatelessRequired();
|
||||||
this->l3FlushAfterPostSyncEnabled = productHelper.isL3FlushAfterPostSyncRequired(this->heaplessModeEnabled);
|
this->l3FlushAfterPostSyncEnabled = productHelper.isL3FlushAfterPostSyncSupported(this->heaplessModeEnabled);
|
||||||
this->shouldRegisterEnqueuedWalkerWithProfiling = productHelper.shouldRegisterEnqueuedWalkerWithProfiling();
|
this->shouldRegisterEnqueuedWalkerWithProfiling = productHelper.shouldRegisterEnqueuedWalkerWithProfiling();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1361,7 +1361,7 @@ bool CommandQueue::isWaitForTimestampsEnabled() const {
|
|||||||
auto enabled = CommandQueue::isTimestampWaitEnabled();
|
auto enabled = CommandQueue::isTimestampWaitEnabled();
|
||||||
enabled &= productHelper.isTimestampWaitSupportedForQueues(this->heaplessModeEnabled);
|
enabled &= productHelper.isTimestampWaitSupportedForQueues(this->heaplessModeEnabled);
|
||||||
|
|
||||||
if (productHelper.isL3FlushAfterPostSyncRequired(this->heaplessModeEnabled)) {
|
if (productHelper.isL3FlushAfterPostSyncSupported(this->heaplessModeEnabled)) {
|
||||||
enabled &= true;
|
enabled &= true;
|
||||||
} else {
|
} else {
|
||||||
enabled &= !productHelper.isDcFlushAllowed();
|
enabled &= !productHelper.isDcFlushAllowed();
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ inline void HardwareInterface<GfxFamily>::programWalker(
|
|||||||
|
|
||||||
if constexpr (heaplessModeEnabled) {
|
if constexpr (heaplessModeEnabled) {
|
||||||
auto &productHelper = rootDeviceEnvironment.getHelper<ProductHelper>();
|
auto &productHelper = rootDeviceEnvironment.getHelper<ProductHelper>();
|
||||||
if (productHelper.isL3FlushAfterPostSyncRequired(true)) {
|
if (productHelper.isL3FlushAfterPostSyncSupported(true)) {
|
||||||
GpgpuWalkerHelper<GfxFamily>::setupTimestampPacketFlushL3(walkerCmd,
|
GpgpuWalkerHelper<GfxFamily>::setupTimestampPacketFlushL3(walkerCmd,
|
||||||
commandQueue,
|
commandQueue,
|
||||||
FlushL3Args{.containsPrintBuffer = kernel.hasPrintfOutput(),
|
FlushL3Args{.containsPrintBuffer = kernel.hasPrintfOutput(),
|
||||||
|
|||||||
@@ -201,7 +201,7 @@ TEST(CommandQueue, givenEnableTimestampWaitWhenCheckIsTimestampWaitEnabledThenRe
|
|||||||
|
|
||||||
auto enabled = productHelper.isTimestampWaitSupportedForQueues(heaplessEnabled);
|
auto enabled = productHelper.isTimestampWaitSupportedForQueues(heaplessEnabled);
|
||||||
|
|
||||||
if (productHelper.isL3FlushAfterPostSyncRequired(heaplessEnabled)) {
|
if (productHelper.isL3FlushAfterPostSyncSupported(heaplessEnabled)) {
|
||||||
enabled &= true;
|
enabled &= true;
|
||||||
} else {
|
} else {
|
||||||
enabled &= !productHelper.isDcFlushAllowed();
|
enabled &= !productHelper.isDcFlushAllowed();
|
||||||
|
|||||||
@@ -581,7 +581,7 @@ HWTEST_F(EnqueueHandlerTest, givenEnableL3FlushAfterPostSyncWithSignalingEventWh
|
|||||||
debugManager.flags.EnableL3FlushAfterPostSync.set(1);
|
debugManager.flags.EnableL3FlushAfterPostSync.set(1);
|
||||||
|
|
||||||
auto &productHelper = pClDevice->getDevice().getProductHelper();
|
auto &productHelper = pClDevice->getDevice().getProductHelper();
|
||||||
if (!productHelper.isL3FlushAfterPostSyncRequired(true)) {
|
if (!productHelper.isL3FlushAfterPostSyncSupported(true)) {
|
||||||
GTEST_SKIP();
|
GTEST_SKIP();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -614,7 +614,7 @@ HWTEST_F(EnqueueHandlerTest, givenL3FlushDeferredIfNeededWhenEnqueueWithoutKerne
|
|||||||
debugManager.flags.EnableL3FlushAfterPostSync.set(1);
|
debugManager.flags.EnableL3FlushAfterPostSync.set(1);
|
||||||
|
|
||||||
auto &productHelper = pClDevice->getDevice().getProductHelper();
|
auto &productHelper = pClDevice->getDevice().getProductHelper();
|
||||||
if (!productHelper.isL3FlushAfterPostSyncRequired(true)) {
|
if (!productHelper.isL3FlushAfterPostSyncSupported(true)) {
|
||||||
GTEST_SKIP();
|
GTEST_SKIP();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ HWTEST_F(FinishTest, givenL3FlushAfterPostSyncEnabledWhenFlushTagUpdateIsCalledT
|
|||||||
debugManager.flags.EnableL3FlushAfterPostSync.set(true);
|
debugManager.flags.EnableL3FlushAfterPostSync.set(true);
|
||||||
|
|
||||||
auto &productHelper = pClDevice->getDevice().getProductHelper();
|
auto &productHelper = pClDevice->getDevice().getProductHelper();
|
||||||
if (!productHelper.isL3FlushAfterPostSyncRequired(true)) {
|
if (!productHelper.isL3FlushAfterPostSyncSupported(true)) {
|
||||||
GTEST_SKIP();
|
GTEST_SKIP();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,7 +150,7 @@ HWTEST_F(FinishTest, givenL3FlushDeferredIfNeededAndL3FlushAfterPostSyncEnabledW
|
|||||||
debugManager.flags.EnableL3FlushAfterPostSync.set(true);
|
debugManager.flags.EnableL3FlushAfterPostSync.set(true);
|
||||||
|
|
||||||
auto &productHelper = pClDevice->getDevice().getProductHelper();
|
auto &productHelper = pClDevice->getDevice().getProductHelper();
|
||||||
if (!productHelper.isL3FlushAfterPostSyncRequired(true)) {
|
if (!productHelper.isL3FlushAfterPostSyncSupported(true)) {
|
||||||
GTEST_SKIP();
|
GTEST_SKIP();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1326,7 +1326,7 @@ inline bool CommandStreamReceiverHw<GfxFamily>::isUpdateTagFromWaitEnabled() {
|
|||||||
|
|
||||||
auto enabled = gfxCoreHelper.isUpdateTaskCountFromWaitSupported();
|
auto enabled = gfxCoreHelper.isUpdateTaskCountFromWaitSupported();
|
||||||
|
|
||||||
if (productHelper.isL3FlushAfterPostSyncRequired(this->heaplessModeEnabled) && ApiSpecificConfig::isUpdateTagFromWaitEnabledForHeapless()) {
|
if (productHelper.isL3FlushAfterPostSyncSupported(this->heaplessModeEnabled) && ApiSpecificConfig::isUpdateTagFromWaitEnabledForHeapless()) {
|
||||||
enabled &= true;
|
enabled &= true;
|
||||||
} else {
|
} else {
|
||||||
enabled &= this->isAnyDirectSubmissionEnabled();
|
enabled &= this->isAnyDirectSubmissionEnabled();
|
||||||
|
|||||||
@@ -264,7 +264,7 @@ class ProductHelper {
|
|||||||
virtual uint64_t getSharedSystemPatIndex() const = 0;
|
virtual uint64_t getSharedSystemPatIndex() const = 0;
|
||||||
virtual uint32_t getGmmResourceUsageOverride(uint32_t usageType) const = 0;
|
virtual uint32_t getGmmResourceUsageOverride(uint32_t usageType) const = 0;
|
||||||
virtual bool isSharingWith3dOrMediaAllowed() const = 0;
|
virtual bool isSharingWith3dOrMediaAllowed() const = 0;
|
||||||
virtual bool isL3FlushAfterPostSyncRequired(bool heaplessEnabled) const = 0;
|
virtual bool isL3FlushAfterPostSyncSupported(bool heaplessEnabled) const = 0;
|
||||||
virtual void overrideDirectSubmissionTimeouts(uint64_t &timeoutUs, uint64_t &maxTimeoutUs) const = 0;
|
virtual void overrideDirectSubmissionTimeouts(uint64_t &timeoutUs, uint64_t &maxTimeoutUs) const = 0;
|
||||||
virtual bool isMisalignedUserPtr2WayCoherent() const = 0;
|
virtual bool isMisalignedUserPtr2WayCoherent() const = 0;
|
||||||
virtual bool isSvmHeapReservationSupported() const = 0;
|
virtual bool isSvmHeapReservationSupported() const = 0;
|
||||||
|
|||||||
@@ -965,7 +965,7 @@ bool ProductHelperHw<gfxProduct>::isEvictionIfNecessaryFlagSupported() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <PRODUCT_FAMILY gfxProduct>
|
template <PRODUCT_FAMILY gfxProduct>
|
||||||
bool ProductHelperHw<gfxProduct>::isL3FlushAfterPostSyncRequired(bool heaplessEnabled) const {
|
bool ProductHelperHw<gfxProduct>::isL3FlushAfterPostSyncSupported(bool heaplessEnabled) const {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -201,7 +201,7 @@ class ProductHelperHw : public ProductHelper {
|
|||||||
uint64_t getSharedSystemPatIndex() const override;
|
uint64_t getSharedSystemPatIndex() const override;
|
||||||
uint32_t getGmmResourceUsageOverride(uint32_t usageType) const override;
|
uint32_t getGmmResourceUsageOverride(uint32_t usageType) const override;
|
||||||
bool isSharingWith3dOrMediaAllowed() const override;
|
bool isSharingWith3dOrMediaAllowed() const override;
|
||||||
bool isL3FlushAfterPostSyncRequired(bool heaplessEnabled) const override;
|
bool isL3FlushAfterPostSyncSupported(bool heaplessEnabled) const override;
|
||||||
void overrideDirectSubmissionTimeouts(uint64_t &timeoutUs, uint64_t &maxTimeoutUs) const override;
|
void overrideDirectSubmissionTimeouts(uint64_t &timeoutUs, uint64_t &maxTimeoutUs) const override;
|
||||||
bool isMisalignedUserPtr2WayCoherent() const override;
|
bool isMisalignedUserPtr2WayCoherent() const override;
|
||||||
bool isSvmHeapReservationSupported() const override;
|
bool isSvmHeapReservationSupported() const override;
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ struct DrmCommandStreamMultiTileMemExecTestWithCsr : public DrmCommandStreamMult
|
|||||||
HWCMDTEST_TEMPLATED_F(IGFX_XE_HP_CORE, DrmCommandStreamMultiTileMemExecTestWithCsr, GivenDrmSupportsCompletionFenceAndVmBindWhenCallingCsrExecThenMultipleTagAllocationIsPassed) {
|
HWCMDTEST_TEMPLATED_F(IGFX_XE_HP_CORE, DrmCommandStreamMultiTileMemExecTestWithCsr, GivenDrmSupportsCompletionFenceAndVmBindWhenCallingCsrExecThenMultipleTagAllocationIsPassed) {
|
||||||
|
|
||||||
auto &productHelper = device->getProductHelper();
|
auto &productHelper = device->getProductHelper();
|
||||||
if (productHelper.isL3FlushAfterPostSyncRequired(true)) {
|
if (productHelper.isL3FlushAfterPostSyncSupported(true)) {
|
||||||
GTEST_SKIP();
|
GTEST_SKIP();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user