From ccd7799adadf7fd8d80bbaa1a0f3057136e92f78 Mon Sep 17 00:00:00 2001 From: foreman Date: Fri, 28 Jun 2019 12:09:09 -0400 Subject: [PATCH] P4 to Git Change 1917740 by cpaquot@cpaquot-ocl-lc-lnx on 2019/06/28 12:03:07 SWDEV-193938 - [HIP] RCCL test fails Set default stream to null-stream In hipStreamWaitEvent if event_ is null, get the last queued command instead. Affected files ... ... //depot/stg/opencl/drivers/opencl/api/hip/hip_event.cpp#12 edit ... //depot/stg/opencl/drivers/opencl/api/hip/hip_event.hpp#4 edit --- hipamd/api/hip/hip_event.cpp | 11 +++++++++++ hipamd/api/hip/hip_event.hpp | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/hipamd/api/hip/hip_event.cpp b/hipamd/api/hip/hip_event.cpp index 1507629321..4d2eea3985 100644 --- a/hipamd/api/hip/hip_event.cpp +++ b/hipamd/api/hip/hip_event.cpp @@ -100,6 +100,12 @@ hipError_t Event::streamWait(hipStream_t stream, uint flags) { if (stream_ == hostQueue) return hipSuccess; amd::ScopedLock lock(lock_); + bool retain = false; + + if (event_ == nullptr) { + event_ = stream_->getLastQueuedCommand(true); + retain = true; + } if (!event_->notifyCmdQueue()) { return hipErrorUnknown; @@ -114,6 +120,11 @@ hipError_t Event::streamWait(hipStream_t stream, uint flags) { command->enqueue(); command->release(); + if (retain) { + event_->release(); + event_ = nullptr; + } + return hipSuccess; } diff --git a/hipamd/api/hip/hip_event.hpp b/hipamd/api/hip/hip_event.hpp index 953665ed5b..4c6fb132e8 100644 --- a/hipamd/api/hip/hip_event.hpp +++ b/hipamd/api/hip/hip_event.hpp @@ -39,7 +39,7 @@ public: class Event { public: - Event(unsigned int flags) : flags(flags), lock_("hipEvent_t"), stream_(nullptr), event_(nullptr) {} + Event(unsigned int flags) : flags(flags), lock_("hipEvent_t"), stream_(getNullStream()), event_(nullptr) {} ~Event() { if (event_ != nullptr) { event_->release();