performance: Limit tlb flush in state cache flush to wddm

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
Lukasz Jobczyk
2024-05-06 09:27:41 +00:00
committed by Compute-Runtime-Automation
parent 0a59a26a2c
commit c1004b77bf
9 changed files with 21 additions and 10 deletions

View File

@@ -625,6 +625,10 @@ AubSubCaptureStatus CommandStreamReceiver::checkAndActivateAubSubCapture(const s
void CommandStreamReceiver::addAubComment(const char *comment) {}
bool CommandStreamReceiver::isTlbFlushRequiredForStateCacheFlush() {
return false;
}
void CommandStreamReceiver::downloadAllocation(GraphicsAllocation &gfxAllocation) {
if (this->downloadAllocationImpl) {
this->downloadAllocationImpl(gfxAllocation);

View File

@@ -275,6 +275,7 @@ class CommandStreamReceiver {
virtual void updateTagFromWait() = 0;
virtual bool isUpdateTagFromWaitEnabled() = 0;
virtual void flushMonitorFence(){};
virtual bool isTlbFlushRequiredForStateCacheFlush();
ScratchSpaceController *getScratchSpaceController() const {
return scratchSpaceController.get();

View File

@@ -1220,7 +1220,7 @@ SubmissionStatus CommandStreamReceiverHw<GfxFamily>::flushPipeControl(bool state
args.textureCacheInvalidationEnable = true;
args.renderTargetCacheFlushEnable = true;
args.stateCacheInvalidationEnable = true;
args.tlbInvalidation = true;
args.tlbInvalidation = this->isTlbFlushRequiredForStateCacheFlush();
}
auto dispatchSize = MemorySynchronizationCommands<GfxFamily>::getSizeForBarrierWithPostSyncOperation(peekRootDeviceEnvironment(), args.tlbInvalidation) + this->getCmdSizeForPrologue();