From d433df47616612b3c39560987fbcb1b651c71136 Mon Sep 17 00:00:00 2001 From: Tao Sang Date: Wed, 23 Aug 2023 15:16:05 -0400 Subject: [PATCH] SWDEV-417727 - Fix hipSignalExternalSemaphoresAsync() This reverts commit 44a3935cda85757c032e17c24cd92a69008e9e7b. Implement the right way to make ExternalSemaphores be signalled only after prior works on the stream have been finished. Change-Id: I9d5974e05d5f229170b928db4566c14e40e3cbaa --- rocclr/device/pal/palvirtual.cpp | 1 + rocclr/platform/command.hpp | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rocclr/device/pal/palvirtual.cpp b/rocclr/device/pal/palvirtual.cpp index a9a05d0e25..234ef67882 100644 --- a/rocclr/device/pal/palvirtual.cpp +++ b/rocclr/device/pal/palvirtual.cpp @@ -2812,6 +2812,7 @@ void VirtualGPU::submitExternalSemaphoreCmd(amd::ExternalSemaphoreCmd& cmd) { if (cmd.semaphoreCmd() == amd::ExternalSemaphoreCmd::COMMAND_SIGNAL_EXTSEMAPHORE) { + flushDMA(MainEngine); queues_[MainEngine]->iQueue_->SignalQueueSemaphore(const_cast(sem), cmd.fence()); } else { diff --git a/rocclr/platform/command.hpp b/rocclr/platform/command.hpp index 6409fc08b7..b45c9067ae 100644 --- a/rocclr/platform/command.hpp +++ b/rocclr/platform/command.hpp @@ -1223,8 +1223,7 @@ class ExternalSemaphoreCmd : public Command { public: ExternalSemaphoreCmd(HostQueue& queue, const void* sem_ptr, uint64_t fence, ExternalSemaphoreCmdType cmd_type) - : Command::Command(queue, CL_COMMAND_USER, nullWaitList, cmd_type == COMMAND_SIGNAL_EXTSEMAPHORE ? 1 : 0), - sem_ptr_(sem_ptr), fence_(fence), cmd_type_(cmd_type) {} + : Command::Command(queue, CL_COMMAND_USER), sem_ptr_(sem_ptr), fence_(fence), cmd_type_(cmd_type) {} virtual void submit(device::VirtualDevice& device) { device.submitExternalSemaphoreCmd(*this);