SWDEV-240806 - [hip-graph] Added functions updateEventWaitList and resetStatus
Change-Id: I6a753e9584bdacd39ee676466a884ec6b7859879
[ROCm/clr commit: c9c6bed022]
This commit is contained in:
committad av
Anusha Godavarthy Surya
förälder
823c7c456a
incheckning
44e600b701
@@ -157,6 +157,19 @@ bool Event::setStatus(int32_t status, uint64_t timeStamp) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Event::resetStatus(int32_t status) {
|
||||||
|
int32_t currentStatus = this->status();
|
||||||
|
if (currentStatus != CL_COMPLETE) {
|
||||||
|
ClPrint(LOG_ERROR, LOG_CMD, "command is reset before complete current status :%d",
|
||||||
|
currentStatus);
|
||||||
|
}
|
||||||
|
if (!status_.compare_exchange_strong(currentStatus, status, std::memory_order_relaxed)) {
|
||||||
|
ClPrint(LOG_ERROR, LOG_CMD, "Failed to reset command status");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
notified_.clear();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool Event::setCallback(int32_t status, Event::CallBackFunction callback, void* data) {
|
bool Event::setCallback(int32_t status, Event::CallBackFunction callback, void* data) {
|
||||||
assert(status >= CL_COMPLETE && status <= CL_QUEUED && "invalid status");
|
assert(status >= CL_COMPLETE && status <= CL_QUEUED && "invalid status");
|
||||||
|
|||||||
@@ -186,6 +186,9 @@ class Event : public RuntimeObject {
|
|||||||
*/
|
*/
|
||||||
bool setStatus(int32_t status, uint64_t timeStamp = 0);
|
bool setStatus(int32_t status, uint64_t timeStamp = 0);
|
||||||
|
|
||||||
|
//! Reset the status of the command for reuse
|
||||||
|
bool resetStatus(int32_t status);
|
||||||
|
|
||||||
//! Signal all threads waiting on this event.
|
//! Signal all threads waiting on this event.
|
||||||
void signal() {
|
void signal() {
|
||||||
ScopedLock lock(lock_);
|
ScopedLock lock(lock_);
|
||||||
@@ -269,6 +272,13 @@ class Command : public Event {
|
|||||||
//! Return the list of events this command needs to wait on before dispatch
|
//! Return the list of events this command needs to wait on before dispatch
|
||||||
const EventWaitList& eventWaitList() const { return eventWaitList_; }
|
const EventWaitList& eventWaitList() const { return eventWaitList_; }
|
||||||
|
|
||||||
|
//! Update with the list of events this command needs to wait on before dispatch
|
||||||
|
void updateEventWaitList(const EventWaitList& waitList) {
|
||||||
|
for (auto event : waitList) {
|
||||||
|
eventWaitList_.push_back(event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//! Return this command's OpenCL type.
|
//! Return this command's OpenCL type.
|
||||||
cl_command_type type() const { return type_; }
|
cl_command_type type() const { return type_; }
|
||||||
|
|
||||||
|
|||||||
Referens i nytt ärende
Block a user