SWDEV-290160 - Don't send notification for batch markers

Batch marker already has a barrier with HSA signal callback

Change-Id: I69fc63d72320c2e9cc2d2e59ebd3f07c0bd0e3b5
This commit is contained in:
German Andryeyev
2021-06-15 23:13:27 -04:00
committed by Maneesh Gupta
parent 83ca0821af
commit c49f1069ab
2 changed files with 5 additions and 10 deletions
+2 -1
View File
@@ -1239,7 +1239,8 @@ void VirtualGPU::profilingEnd(amd::Command& command) {
timestamp_->end();
}
command.setData(timestamp_);
if (AMD_DIRECT_DISPATCH) {
// Update HW event only for batches
if ((AMD_DIRECT_DISPATCH) && (command.GetBatchHead() != nullptr)) {
command.SetHwEvent(timestamp_->Signals().back());
}
timestamp_ = nullptr;
+3 -9
View File
@@ -259,15 +259,9 @@ bool Event::notifyCmdQueue() {
HostQueue* queue = command().queue();
if ((status() > CL_COMPLETE) && (nullptr != queue) &&
(!AMD_DIRECT_DISPATCH ||
// Don't need to notify any marker with direct dispatch,
// because all markers are blocking.
((command().type() != CL_COMMAND_MARKER) &&
(command().type() != 0)) ||
// Don't need to notify if the current batch is empty,
// because that means the command was processed and extra notification
// will cause a stall on the host.
(queue->GetSubmittionBatch() != nullptr)) &&
!notified_.test_and_set()) {
// If HW event was assigned, then notification can be ignored, since a barrier was issued
(HwEvent() == nullptr)) &&
!notified_.test_and_set()) {
// Make sure the queue is draining the enqueued commands.
amd::Command* command = new amd::Marker(*queue, false, nullWaitList, this);
if (command == NULL) {