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();