Unify logic for programming mocs in post sync struct

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski
2022-03-25 11:24:00 +00:00
committed by Compute-Runtime-Automation
parent 41a8972772
commit e11eb46bff
5 changed files with 61 additions and 19 deletions

View File

@@ -100,24 +100,14 @@ void GpgpuWalkerHelper<GfxFamily>::setupTimestampPacket(LinearStream *cmdStream,
const RootDeviceEnvironment &rootDeviceEnvironment) {
using COMPUTE_WALKER = typename GfxFamily::COMPUTE_WALKER;
const auto &hwInfo = *rootDeviceEnvironment.getHardwareInfo();
auto &postSyncData = walkerCmd->getPostSync();
postSyncData.setDataportPipelineFlush(true);
auto gmmHelper = rootDeviceEnvironment.getGmmHelper();
const auto &hwInfo = *rootDeviceEnvironment.getHardwareInfo();
if (MemorySynchronizationCommands<GfxFamily>::getDcFlushEnable(true, hwInfo)) {
postSyncData.setMocs(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED));
} else {
postSyncData.setMocs(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER));
}
EncodeDispatchKernel<GfxFamily>::setupPostSyncMocs(*walkerCmd, rootDeviceEnvironment);
EncodeDispatchKernel<GfxFamily>::adjustTimestampPacket(*walkerCmd, hwInfo);
if (DebugManager.flags.OverridePostSyncMocs.get() != -1) {
postSyncData.setMocs(DebugManager.flags.OverridePostSyncMocs.get());
}
if (DebugManager.flags.UseImmDataWriteModeOnPostSyncOperation.get()) {
postSyncData.setOperation(GfxFamily::POSTSYNC_DATA::OPERATION::OPERATION_WRITE_IMMEDIATE_DATA);
auto contextEndAddress = TimestampPacketHelper::getContextEndGpuAddress(*timestampPacketNode);