Skip to content

Commit 3341f1a

Browse files
committed
Check ol* results
1 parent b533588 commit 3341f1a

File tree

2 files changed

+29
-9
lines changed

2 files changed

+29
-9
lines changed

unified-runtime/source/adapters/offload/enqueue.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -137,12 +137,19 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferWrite(
137137
void *DevPtr = std::get<BufferMem>(hBuffer->Mem).Ptr;
138138

139139
// TODO: olMemcpy src should be const
140-
olMemcpy(hQueue->OffloadQueue, DevPtr + offset, hQueue->OffloadDevice,
141-
const_cast<void *>(pSrc), hQueue->Context->OffloadHost, size,
142-
phEvent ? &EventOut : nullptr);
140+
auto Res =
141+
olMemcpy(hQueue->OffloadQueue, DevPtr + offset, hQueue->OffloadDevice,
142+
const_cast<void *>(pSrc), hQueue->Context->OffloadHost, size,
143+
phEvent ? &EventOut : nullptr);
144+
if (Res) {
145+
return offloadResultToUR(Res);
146+
}
143147

144148
if (blockingWrite) {
145-
olWaitQueue(hQueue->OffloadQueue);
149+
auto Res = olWaitQueue(hQueue->OffloadQueue);
150+
if (Res) {
151+
return offloadResultToUR(Res);
152+
}
146153
}
147154

148155
if (phEvent) {

unified-runtime/source/adapters/offload/memory.cpp

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "context.hpp"
1717
#include "device.hpp"
1818
#include "memory.hpp"
19+
#include "ur2offload.hpp"
1920

2021
UR_APIEXPORT ur_result_t UR_APICALL urMemBufferCreate(
2122
ur_context_handle_t hContext, ur_mem_flags_t flags, size_t size,
@@ -33,14 +34,20 @@ UR_APIEXPORT ur_result_t UR_APICALL urMemBufferCreate(
3334
auto AllocMode = BufferMem::AllocMode::Default;
3435

3536
if (flags & UR_MEM_FLAG_ALLOC_HOST_POINTER) {
36-
olMemAlloc(OffloadDevice, OL_ALLOC_TYPE_HOST, size, &HostPtr);
37+
auto Res = olMemAlloc(OffloadDevice, OL_ALLOC_TYPE_HOST, size, &HostPtr);
38+
if (Res) {
39+
return offloadResultToUR(Res);
40+
}
3741
// TODO: We (probably) need something like cuMemHostGetDevicePointer
3842
// for this to work everywhere. For now assume the managed host pointer is
3943
// device-accessible.
4044
Ptr = HostPtr;
4145
AllocMode = BufferMem::AllocMode::AllocHostPtr;
4246
} else {
43-
olMemAlloc(OffloadDevice, OL_ALLOC_TYPE_DEVICE, size, &Ptr);
47+
auto Res = olMemAlloc(OffloadDevice, OL_ALLOC_TYPE_DEVICE, size, &Ptr);
48+
if (Res) {
49+
return offloadResultToUR(Res);
50+
}
4451
if (flags & UR_MEM_FLAG_ALLOC_COPY_HOST_POINTER) {
4552
AllocMode = BufferMem::AllocMode::CopyIn;
4653
}
@@ -51,8 +58,11 @@ UR_APIEXPORT ur_result_t UR_APICALL urMemBufferCreate(
5158
hContext, ParentBuffer, flags, AllocMode, Ptr, HostPtr, size});
5259

5360
if (PerformInitialCopy) {
54-
olMemcpy(nullptr, Ptr, OffloadDevice, HostPtr, hContext->OffloadHost, size,
55-
nullptr);
61+
auto Res = olMemcpy(nullptr, Ptr, OffloadDevice, HostPtr,
62+
hContext->OffloadHost, size, nullptr);
63+
if (Res) {
64+
return offloadResultToUR(Res);
65+
}
5666
}
5767

5868
*phBuffer = URMemObj.release();
@@ -74,7 +84,10 @@ UR_APIEXPORT ur_result_t UR_APICALL urMemRelease(ur_mem_handle_t hMem) {
7484
if (hMem->MemType == ur_mem_handle_t_::Type::Buffer) {
7585
// TODO: Handle registered host memory
7686
auto &BufferImpl = std::get<BufferMem>(MemObjPtr->Mem);
77-
olMemFree(BufferImpl.Ptr);
87+
auto Res = olMemFree(BufferImpl.Ptr);
88+
if (Res) {
89+
return offloadResultToUR(Res);
90+
}
7891
}
7992

8093
return UR_RESULT_SUCCESS;

0 commit comments

Comments
 (0)