SWDEV-417727 - Fix hipSignalExternalSemaphoresAsync()

This reverts commit cab71e6e00.

Implement the right way to make ExternalSemaphores be signalled
only after prior works on the stream have been finished.

Change-Id: I9d5974e05d5f229170b928db4566c14e40e3cbaa


[ROCm/clr commit: d433df4761]
This commit is contained in:
Tao Sang
2023-08-23 15:16:05 -04:00
parent d7a63b9d66
commit 3fdd346cf2
2 changed files with 2 additions and 2 deletions
@@ -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<Pal::IQueueSemaphore*>(sem),
cmd.fence());
} else {
+1 -2
View File
@@ -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);