Add flag to emit pipe control prior to walker.

Change-Id: Ief410664b09d758394744ebdf011923556864035
This commit is contained in:
Sebastian Luzynski
2020-07-06 09:34:15 +02:00
committed by sys_ocldev
parent 8324317f90
commit 49a7fb4b19
8 changed files with 96 additions and 1 deletions

View File

@@ -315,6 +315,7 @@ struct MemorySynchronizationCommands {
static void addAdditionalSynchronization(LinearStream &commandStream, uint64_t gpuAddress, const HardwareInfo &hwInfo);
static void addPipeControl(LinearStream &commandStream, PipeControlArgs &args);
static void addPipeControlWithCSStallOnly(LinearStream &commandStream, PipeControlArgs &args);
static void addFullCacheFlush(LinearStream &commandStream);
static void setCacheFlushExtraProperties(PIPE_CONTROL &pipeControl);

View File

@@ -234,7 +234,6 @@ void MemorySynchronizationCommands<GfxFamily>::setPipeControl(typename GfxFamily
pipeControl.setStateCacheInvalidationEnable(args.stateCacheInvalidationEnable);
pipeControl.setTextureCacheInvalidationEnable(args.textureCacheInvalidationEnable);
pipeControl.setVfCacheInvalidationEnable(args.vfCacheInvalidationEnable);
pipeControl.setVfCacheInvalidationEnable(args.vfCacheInvalidationEnable);
pipeControl.setGenericMediaStateClear(args.genericMediaStateClear);
setPipeControlExtraProperties(pipeControl, args);
@@ -260,6 +259,15 @@ void MemorySynchronizationCommands<GfxFamily>::addPipeControl(LinearStream &comm
*pipeControl = cmd;
}
template <typename GfxFamily>
void MemorySynchronizationCommands<GfxFamily>::addPipeControlWithCSStallOnly(LinearStream &commandStream, PipeControlArgs &args) {
using PIPE_CONTROL = typename GfxFamily::PIPE_CONTROL;
PIPE_CONTROL cmd = GfxFamily::cmdInitPipeControl;
cmd.setCommandStreamerStallEnable(true);
auto pipeControl = commandStream.getSpaceForCmd<PIPE_CONTROL>();
*pipeControl = cmd;
}
template <typename GfxFamily>
size_t MemorySynchronizationCommands<GfxFamily>::getSizeForSinglePipeControl() {
return sizeof(typename GfxFamily::PIPE_CONTROL);