mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 23:03:02 +08:00
performance: remove cache flush before stopping ULLS
Related-To: NEO-16153 Signed-off-by: Szymon Morek <szymon.morek@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
a80b6a1764
commit
9647322cbf
@@ -264,7 +264,6 @@ bool DirectSubmissionHw<GfxFamily, Dispatcher>::stopRingBuffer(bool blocking) {
|
||||
dispatchRelaxedOrderingQueueStall();
|
||||
}
|
||||
|
||||
Dispatcher::dispatchCacheFlush(ringCommandStream, this->rootDeviceEnvironment, gpuVaForMiFlush);
|
||||
dispatchStopRingBufferSection();
|
||||
Dispatcher::dispatchStopCommandBuffer(ringCommandStream);
|
||||
|
||||
@@ -360,7 +359,6 @@ inline size_t DirectSubmissionHw<GfxFamily, Dispatcher>::getSizeSwitchRingBuffer
|
||||
template <typename GfxFamily, typename Dispatcher>
|
||||
inline size_t DirectSubmissionHw<GfxFamily, Dispatcher>::getSizeEnd(bool relaxedOrderingSchedulerRequired) {
|
||||
size_t size = Dispatcher::getSizeStopCommandBuffer() +
|
||||
Dispatcher::getSizeCacheFlush(rootDeviceEnvironment) +
|
||||
(Dispatcher::getSizeStartCommandBuffer() - Dispatcher::getSizeStopCommandBuffer()) +
|
||||
MemoryConstants::cacheLineSize + dispatchStopRingBufferSectionSize();
|
||||
if (this->relaxedOrderingEnabled && relaxedOrderingSchedulerRequired) {
|
||||
|
||||
@@ -28,9 +28,7 @@ class BlitterDispatcher : public Dispatcher<GfxFamily> {
|
||||
bool notifyKmd);
|
||||
static size_t getSizeMonitorFence(const RootDeviceEnvironment &rootDeviceEnvironment);
|
||||
|
||||
static void dispatchCacheFlush(LinearStream &cmdBuffer, const RootDeviceEnvironment &rootDeviceEnvironment, uint64_t address);
|
||||
static void dispatchTlbFlush(LinearStream &cmdBuffer, uint64_t address, const RootDeviceEnvironment &rootDeviceEnvironment);
|
||||
static size_t getSizeCacheFlush(const RootDeviceEnvironment &rootDeviceEnvironment);
|
||||
static size_t getSizeTlbFlush(const RootDeviceEnvironment &rootDeviceEnvironment);
|
||||
static bool isMultiTileSynchronizationSupported() {
|
||||
return false;
|
||||
|
||||
@@ -46,11 +46,6 @@ inline size_t BlitterDispatcher<GfxFamily>::getSizeMonitorFence(const RootDevice
|
||||
return size;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
inline void BlitterDispatcher<GfxFamily>::dispatchCacheFlush(LinearStream &cmdBuffer, const RootDeviceEnvironment &rootDeviceEnvironment, uint64_t address) {
|
||||
dispatchTlbFlush(cmdBuffer, address, rootDeviceEnvironment);
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
inline void BlitterDispatcher<GfxFamily>::dispatchTlbFlush(LinearStream &cmdBuffer, uint64_t address, const RootDeviceEnvironment &rootDeviceEnvironment) {
|
||||
NEO::EncodeDummyBlitWaArgs waArgs{false, const_cast<RootDeviceEnvironment *>(&rootDeviceEnvironment)};
|
||||
@@ -60,11 +55,6 @@ inline void BlitterDispatcher<GfxFamily>::dispatchTlbFlush(LinearStream &cmdBuff
|
||||
EncodeMiFlushDW<GfxFamily>::programWithWa(cmdBuffer, address, 0ull, args);
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
inline size_t BlitterDispatcher<GfxFamily>::getSizeCacheFlush(const RootDeviceEnvironment &rootDeviceEnvironment) {
|
||||
return getSizeTlbFlush(rootDeviceEnvironment);
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
inline size_t BlitterDispatcher<GfxFamily>::getSizeTlbFlush(const RootDeviceEnvironment &rootDeviceEnvironment) {
|
||||
EncodeDummyBlitWaArgs waArgs{false, const_cast<RootDeviceEnvironment *>(&rootDeviceEnvironment)};
|
||||
|
||||
@@ -28,9 +28,7 @@ class RenderDispatcher : public Dispatcher<GfxFamily> {
|
||||
bool notifyKmd);
|
||||
static size_t getSizeMonitorFence(const RootDeviceEnvironment &rootDeviceEnvironment);
|
||||
|
||||
static void dispatchCacheFlush(LinearStream &cmdBuffer, const RootDeviceEnvironment &rootDeviceEnvironment, uint64_t address);
|
||||
static void dispatchTlbFlush(LinearStream &cmdBuffer, uint64_t address, const RootDeviceEnvironment &rootDeviceEnvironment);
|
||||
static size_t getSizeCacheFlush(const RootDeviceEnvironment &rootDeviceEnvironment);
|
||||
static size_t getSizeTlbFlush(const RootDeviceEnvironment &rootDeviceEnvironment);
|
||||
static bool isMultiTileSynchronizationSupported() {
|
||||
return true;
|
||||
|
||||
@@ -52,11 +52,6 @@ inline size_t RenderDispatcher<GfxFamily>::getSizeMonitorFence(const RootDeviceE
|
||||
return MemorySynchronizationCommands<GfxFamily>::getSizeForBarrierWithPostSyncOperation(rootDeviceEnvironment, NEO::PostSyncMode::immediateData);
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
inline void RenderDispatcher<GfxFamily>::dispatchCacheFlush(LinearStream &cmdBuffer, const RootDeviceEnvironment &rootDeviceEnvironment, uint64_t address) {
|
||||
MemorySynchronizationCommands<GfxFamily>::addFullCacheFlush(cmdBuffer, rootDeviceEnvironment);
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
inline void RenderDispatcher<GfxFamily>::dispatchTlbFlush(LinearStream &cmdBuffer, uint64_t address, const RootDeviceEnvironment &rootDeviceEnvironment) {
|
||||
PipeControlArgs args;
|
||||
@@ -67,12 +62,6 @@ inline void RenderDispatcher<GfxFamily>::dispatchTlbFlush(LinearStream &cmdBuffe
|
||||
MemorySynchronizationCommands<GfxFamily>::addSingleBarrier(cmdBuffer, args);
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
inline size_t RenderDispatcher<GfxFamily>::getSizeCacheFlush(const RootDeviceEnvironment &rootDeviceEnvironment) {
|
||||
size_t size = MemorySynchronizationCommands<GfxFamily>::getSizeForSingleBarrier();
|
||||
return size;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
inline size_t RenderDispatcher<GfxFamily>::getSizeTlbFlush(const RootDeviceEnvironment &rootDeviceEnvironment) {
|
||||
return MemorySynchronizationCommands<GfxFamily>::getSizeForSingleBarrier();
|
||||
|
||||
Reference in New Issue
Block a user