mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-24 21:18:24 +08:00
fix: set notify enable flag when flushing monitor fence
Related-To: NEO-13848 Signed-off-by: Szymon Morek <szymon.morek@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
245aa0cb59
commit
254e7c5c6a
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020-2024 Intel Corporation
|
||||
* Copyright (C) 2020-2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -81,7 +81,7 @@ class DirectSubmissionHw {
|
||||
|
||||
virtual ~DirectSubmissionHw();
|
||||
|
||||
bool initialize(bool submitOnInit, bool useNotify);
|
||||
bool initialize(bool submitOnInit);
|
||||
|
||||
MOCKABLE_VIRTUAL bool stopRingBuffer(bool blocking);
|
||||
|
||||
@@ -253,7 +253,6 @@ class DirectSubmissionHw {
|
||||
bool disableMonitorFence = false;
|
||||
bool partitionedMode = false;
|
||||
bool partitionConfigSet = true;
|
||||
bool useNotifyForPostSync = false;
|
||||
bool miMemFenceRequired = false;
|
||||
bool systemMemoryFenceAddressSet = false;
|
||||
bool completionFenceSupported = false;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020-2024 Intel Corporation
|
||||
* Copyright (C) 2020-2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -466,8 +466,7 @@ inline void DirectSubmissionHw<GfxFamily, Dispatcher>::cpuCachelineFlush(void *p
|
||||
}
|
||||
|
||||
template <typename GfxFamily, typename Dispatcher>
|
||||
bool DirectSubmissionHw<GfxFamily, Dispatcher>::initialize(bool submitOnInit, bool useNotify) {
|
||||
useNotifyForPostSync = useNotify;
|
||||
bool DirectSubmissionHw<GfxFamily, Dispatcher>::initialize(bool submitOnInit) {
|
||||
bool ret = allocateResources();
|
||||
|
||||
initDiagnostic(submitOnInit);
|
||||
@@ -529,8 +528,7 @@ bool DirectSubmissionHw<GfxFamily, Dispatcher>::stopRingBuffer(bool blocking) {
|
||||
if (disableMonitorFence) {
|
||||
TagData currentTagData = {};
|
||||
getTagAddressValue(currentTagData);
|
||||
Dispatcher::dispatchMonitorFence(ringCommandStream, currentTagData.tagAddress, currentTagData.tagValue, this->rootDeviceEnvironment,
|
||||
this->useNotifyForPostSync, this->partitionedMode, this->dcFlushRequired);
|
||||
Dispatcher::dispatchMonitorFence(ringCommandStream, currentTagData.tagAddress, currentTagData.tagValue, this->rootDeviceEnvironment, this->partitionedMode, this->dcFlushRequired);
|
||||
}
|
||||
Dispatcher::dispatchStopCommandBuffer(ringCommandStream);
|
||||
|
||||
@@ -617,8 +615,7 @@ inline void DirectSubmissionHw<GfxFamily, Dispatcher>::dispatchSwitchRingBufferS
|
||||
if (disableMonitorFence) {
|
||||
TagData currentTagData = {};
|
||||
getTagAddressValue(currentTagData);
|
||||
Dispatcher::dispatchMonitorFence(ringCommandStream, currentTagData.tagAddress, currentTagData.tagValue, this->rootDeviceEnvironment,
|
||||
this->useNotifyForPostSync, this->partitionedMode, this->dcFlushRequired);
|
||||
Dispatcher::dispatchMonitorFence(ringCommandStream, currentTagData.tagAddress, currentTagData.tagValue, this->rootDeviceEnvironment, this->partitionedMode, this->dcFlushRequired);
|
||||
}
|
||||
Dispatcher::dispatchStartCommandBuffer(ringCommandStream, nextBufferGpuAddress);
|
||||
}
|
||||
@@ -767,8 +764,7 @@ void *DirectSubmissionHw<GfxFamily, Dispatcher>::dispatchWorkloadSection(BatchBu
|
||||
if (dispatchMonitorFence) {
|
||||
TagData currentTagData = {};
|
||||
getTagAddressValue(currentTagData);
|
||||
Dispatcher::dispatchMonitorFence(ringCommandStream, currentTagData.tagAddress, currentTagData.tagValue, this->rootDeviceEnvironment,
|
||||
this->useNotifyForPostSync, this->partitionedMode, this->dcFlushRequired);
|
||||
Dispatcher::dispatchMonitorFence(ringCommandStream, currentTagData.tagAddress, currentTagData.tagValue, this->rootDeviceEnvironment, this->partitionedMode, this->dcFlushRequired);
|
||||
}
|
||||
|
||||
dispatchSemaphoreSection(currentQueueWorkCount + 1);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020-2024 Intel Corporation
|
||||
* Copyright (C) 2020-2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -23,7 +23,6 @@ class BlitterDispatcher : public Dispatcher<GfxFamily> {
|
||||
uint64_t gpuAddress,
|
||||
uint64_t immediateData,
|
||||
const RootDeviceEnvironment &rootDeviceEnvironment,
|
||||
bool useNotifyEnable,
|
||||
bool partitionedWorkload,
|
||||
bool dcFlushRequired);
|
||||
static size_t getSizeMonitorFence(const RootDeviceEnvironment &rootDeviceEnvironment);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020-2023 Intel Corporation
|
||||
* Copyright (C) 2020-2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -28,13 +28,12 @@ inline void BlitterDispatcher<GfxFamily>::dispatchMonitorFence(LinearStream &cmd
|
||||
uint64_t gpuAddress,
|
||||
uint64_t immediateData,
|
||||
const RootDeviceEnvironment &rootDeviceEnvironment,
|
||||
bool useNotifyEnable,
|
||||
bool partitionedWorkload,
|
||||
bool dcFlushRequired) {
|
||||
NEO::EncodeDummyBlitWaArgs waArgs{false, const_cast<RootDeviceEnvironment *>(&rootDeviceEnvironment)};
|
||||
MiFlushArgs args{waArgs};
|
||||
args.commandWithPostSync = true;
|
||||
args.notifyEnable = useNotifyEnable;
|
||||
args.notifyEnable = true;
|
||||
|
||||
EncodeMiFlushDW<GfxFamily>::programWithWa(cmdBuffer, gpuAddress, immediateData, args);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020-2024 Intel Corporation
|
||||
* Copyright (C) 2020-2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -23,7 +23,6 @@ class RenderDispatcher : public Dispatcher<GfxFamily> {
|
||||
uint64_t gpuAddress,
|
||||
uint64_t immediateData,
|
||||
const RootDeviceEnvironment &rootDeviceEnvironment,
|
||||
bool useNotifyEnable,
|
||||
bool partitionedWorkload,
|
||||
bool dcFlushRequired);
|
||||
static size_t getSizeMonitorFence(const RootDeviceEnvironment &rootDeviceEnvironment);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020-2023 Intel Corporation
|
||||
* Copyright (C) 2020-2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -29,13 +29,12 @@ inline void RenderDispatcher<GfxFamily>::dispatchMonitorFence(LinearStream &cmdB
|
||||
uint64_t gpuAddress,
|
||||
uint64_t immediateData,
|
||||
const RootDeviceEnvironment &rootDeviceEnvironment,
|
||||
bool useNotifyEnable,
|
||||
bool partitionedWorkload,
|
||||
bool dcFlushRequired) {
|
||||
PipeControlArgs args;
|
||||
args.dcFlushEnable = dcFlushRequired;
|
||||
args.workloadPartitionOffset = partitionedWorkload;
|
||||
args.notifyEnable = useNotifyEnable;
|
||||
args.notifyEnable = true;
|
||||
args.textureCacheInvalidationEnable = true;
|
||||
|
||||
MemorySynchronizationCommands<GfxFamily>::addBarrierWithPostSyncOperation(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020-2024 Intel Corporation
|
||||
* Copyright (C) 2020-2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -70,7 +70,7 @@ inline void WddmDirectSubmission<GfxFamily, Dispatcher>::flushMonitorFence() {
|
||||
|
||||
TagData currentTagData = {};
|
||||
this->getTagAddressValue(currentTagData);
|
||||
Dispatcher::dispatchMonitorFence(this->ringCommandStream, currentTagData.tagAddress, currentTagData.tagValue, this->rootDeviceEnvironment, this->useNotifyForPostSync, this->partitionedMode, this->dcFlushRequired);
|
||||
Dispatcher::dispatchMonitorFence(this->ringCommandStream, currentTagData.tagAddress, currentTagData.tagValue, this->rootDeviceEnvironment, this->partitionedMode, this->dcFlushRequired);
|
||||
|
||||
this->dispatchSemaphoreSection(this->currentQueueWorkCount + 1);
|
||||
this->submitCommandBufferToGpu(needStart, startVA, requiredMinimalSize, true);
|
||||
|
||||
Reference in New Issue
Block a user