fix: flush l3 if print buffer is present

Related-To: NEO-13163
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
This commit is contained in:
Kamil Kopryk
2025-08-06 12:40:53 +00:00
committed by Compute-Runtime-Automation
parent 86d270633c
commit 1d45562fe3

View File

@@ -106,7 +106,8 @@ inline void HardwareInterface<GfxFamily>::programWalker(
if constexpr (heaplessModeEnabled) {
auto &productHelper = rootDeviceEnvironment.getHelper<ProductHelper>();
bool flushL3AfterPostSyncForHostUsm = kernelSystemAllocation || kernel.hasPrintfOutput();
auto containsPrintBuffer = kernel.hasPrintfOutput();
bool flushL3AfterPostSyncForHostUsm = kernelSystemAllocation || containsPrintBuffer;
bool flushL3AfterPostSyncForExternalAllocation = kernel.isUsingSharedObjArgs();
if (debugManager.flags.RedirectFlushL3HostUsmToExternal.get() && flushL3AfterPostSyncForHostUsm) {
@@ -114,7 +115,7 @@ inline void HardwareInterface<GfxFamily>::programWalker(
flushL3AfterPostSyncForExternalAllocation = true;
}
if (walkerArgs.event != nullptr || walkerArgs.blocking) {
if (walkerArgs.event != nullptr || walkerArgs.blocking || containsPrintBuffer) {
GpgpuWalkerHelper<GfxFamily>::template setupTimestampPacketFlushL3<WalkerType>(&walkerCmd, productHelper, flushL3AfterPostSyncForHostUsm, flushL3AfterPostSyncForExternalAllocation);
}
}