SWDEV-417727 - Fix hipSignalExternalSemaphoresAsync()
This reverts commitcab71e6e00. 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:
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user