performance: Improve dispatch monitor fence from wait

-update last submitted value while flush monitor fence
-dispatch monitor fence with workload when stalling cmds present

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
Lukasz Jobczyk
2023-08-30 10:05:58 +00:00
committed by Compute-Runtime-Automation
parent 54fce64583
commit d3355411b8
9 changed files with 55 additions and 21 deletions

View File

@@ -31,7 +31,7 @@ class DrmDirectSubmission : public DirectSubmissionHw<GfxFamily, Dispatcher> {
void ensureRingCompletion() override;
void handleSwitchRingBuffers() override;
uint64_t updateTagValue() override;
uint64_t updateTagValue(bool hasStallingCmds) override;
void getTagAddressValue(TagData &tagData) override;
bool isCompleted(uint32_t ringBufferIndex) override;
bool isCompletionFenceSupported();

View File

@@ -217,7 +217,7 @@ void DrmDirectSubmission<GfxFamily, Dispatcher>::handleSwitchRingBuffers() {
}
template <typename GfxFamily, typename Dispatcher>
uint64_t DrmDirectSubmission<GfxFamily, Dispatcher>::updateTagValue() {
uint64_t DrmDirectSubmission<GfxFamily, Dispatcher>::updateTagValue(bool hasStallingCmds) {
if (!this->disableMonitorFence) {
this->currentTagData.tagValue++;
this->ringBuffers[this->currentRingBuffer].completionFence = this->currentTagData.tagValue;