Program PIPE CONTROL before SBA

Related-To: NEO-6056

Signed-off-by: Krzysztof Gibala <krzysztof.gibala@intel.com>
This commit is contained in:
Krzysztof Gibala
2021-09-29 16:07:23 +00:00
committed by Compute-Runtime-Automation
parent 27bf56ee5a
commit 8482eb6a5f
5 changed files with 53 additions and 1 deletions

View File

@@ -61,6 +61,19 @@ inline void CommandStreamReceiverHw<Family>::addPipeControlBeforeStateBaseAddres
PipeControlArgs args(true);
args.textureCacheInvalidationEnable = true;
args.hdcPipelineFlush = true;
auto hwInfo = peekHwInfo();
auto hwInfoConfig = HwInfoConfig::get(hwInfo.platform.eProductFamily);
if (hwInfoConfig->isPipeControlPriorToNonPipelinedStateCommandsWARequired(hwInfo)) {
args.hdcPipelineFlush = true;
args.amfsFlushEnable = true;
args.instructionCacheInvalidateEnable = true;
args.dcFlushEnable = true;
args.constantCacheInvalidationEnable = true;
args.stateCacheInvalidationEnable = true;
}
addPipeControlCmd(commandStream, args);
}
} // namespace NEO

View File

@@ -22,6 +22,7 @@ struct PipeControlArgsBase {
bool compressionControlSurfaceCcsFlush = false;
bool notifyEnable = false;
bool workloadPartitionOffset = false;
bool amfsFlushEnable = false;
protected:
PipeControlArgsBase() = default;

View File

@@ -143,6 +143,7 @@ void MemorySynchronizationCommands<Family>::setPipeControlExtraProperties(PIPE_C
pipeControl.setHdcPipelineFlush(args.hdcPipelineFlush);
pipeControl.setCompressionControlSurfaceCcsFlush(args.compressionControlSurfaceCcsFlush);
pipeControl.setWorkloadPartitionIdOffsetEnable(args.workloadPartitionOffset);
pipeControl.setAmfsFlushEnable(args.amfsFlushEnable);
if (DebugManager.flags.FlushAllCaches.get()) {
pipeControl.setHdcPipelineFlush(true);