@@ -177,14 +177,16 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferReadRect(
177177 size_t hostRowPitch, size_t hostSlicePitch, void *pDst,
178178 uint32_t numEventsInWaitList, const ur_event_handle_t *phEventWaitList,
179179 ur_event_handle_t *phEvent) {
180+ const size_t BufferOrigin[3 ] = {bufferOrigin.x , bufferOrigin.y ,
181+ bufferOrigin.z };
182+ const size_t HostOrigin[3 ] = {hostOrigin.x , hostOrigin.y , hostOrigin.z };
183+ const size_t Region[3 ] = {region.width , region.height , region.depth };
180184
181185 auto ClErr = clEnqueueReadBufferRect (
182186 cl_adapter::cast<cl_command_queue>(hQueue),
183- cl_adapter::cast<cl_mem>(hBuffer), blockingRead,
184- cl_adapter::cast<const size_t *>(&bufferOrigin),
185- cl_adapter::cast<const size_t *>(&hostOrigin),
186- cl_adapter::cast<const size_t *>(®ion), bufferRowPitch,
187- bufferSlicePitch, hostRowPitch, hostSlicePitch, pDst, numEventsInWaitList,
187+ cl_adapter::cast<cl_mem>(hBuffer), blockingRead, BufferOrigin, HostOrigin,
188+ Region, bufferRowPitch, bufferSlicePitch, hostRowPitch, hostSlicePitch,
189+ pDst, numEventsInWaitList,
188190 cl_adapter::cast<const cl_event *>(phEventWaitList),
189191 cl_adapter::cast<cl_event *>(phEvent));
190192
@@ -201,14 +203,16 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferWriteRect(
201203 size_t hostRowPitch, size_t hostSlicePitch, void *pSrc,
202204 uint32_t numEventsInWaitList, const ur_event_handle_t *phEventWaitList,
203205 ur_event_handle_t *phEvent) {
206+ const size_t BufferOrigin[3 ] = {bufferOrigin.x , bufferOrigin.y ,
207+ bufferOrigin.z };
208+ const size_t HostOrigin[3 ] = {hostOrigin.x , hostOrigin.y , hostOrigin.z };
209+ const size_t Region[3 ] = {region.width , region.height , region.depth };
204210
205211 auto ClErr = clEnqueueWriteBufferRect (
206212 cl_adapter::cast<cl_command_queue>(hQueue),
207- cl_adapter::cast<cl_mem>(hBuffer), blockingWrite,
208- cl_adapter::cast<const size_t *>(&bufferOrigin),
209- cl_adapter::cast<const size_t *>(&hostOrigin),
210- cl_adapter::cast<const size_t *>(®ion), bufferRowPitch,
211- bufferSlicePitch, hostRowPitch, hostSlicePitch, pSrc, numEventsInWaitList,
213+ cl_adapter::cast<cl_mem>(hBuffer), blockingWrite, BufferOrigin,
214+ HostOrigin, Region, bufferRowPitch, bufferSlicePitch, hostRowPitch,
215+ hostSlicePitch, pSrc, numEventsInWaitList,
212216 cl_adapter::cast<const cl_event *>(phEventWaitList),
213217 cl_adapter::cast<cl_event *>(phEvent));
214218
@@ -245,16 +249,16 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferCopyRect(
245249 size_t srcSlicePitch, size_t dstRowPitch, size_t dstSlicePitch,
246250 uint32_t numEventsInWaitList, const ur_event_handle_t *phEventWaitList,
247251 ur_event_handle_t *phEvent) {
252+ const size_t SrcOrigin[3 ] = {srcOrigin.x , srcOrigin.y , srcOrigin.z };
253+ const size_t DstOrigin[3 ] = {dstOrigin.x , dstOrigin.y , dstOrigin.z };
254+ const size_t Region[3 ] = {region.width , region.height , region.depth };
248255
249256 auto ClErr = clEnqueueCopyBufferRect (
250257 cl_adapter::cast<cl_command_queue>(hQueue),
251258 cl_adapter::cast<cl_mem>(hBufferSrc),
252- cl_adapter::cast<cl_mem>(hBufferDst),
253- cl_adapter::cast<const size_t *>(&srcOrigin),
254- cl_adapter::cast<const size_t *>(&dstOrigin),
255- cl_adapter::cast<const size_t *>(®ion), srcRowPitch, srcSlicePitch,
256- dstRowPitch, dstSlicePitch, numEventsInWaitList,
257- cl_adapter::cast<const cl_event *>(phEventWaitList),
259+ cl_adapter::cast<cl_mem>(hBufferDst), SrcOrigin, DstOrigin, Region,
260+ srcRowPitch, srcSlicePitch, dstRowPitch, dstSlicePitch,
261+ numEventsInWaitList, cl_adapter::cast<const cl_event *>(phEventWaitList),
258262 cl_adapter::cast<cl_event *>(phEvent));
259263
260264 if (ClErr == CL_INVALID_VALUE) {
@@ -331,13 +335,14 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemImageRead(
331335 ur_rect_offset_t origin, ur_rect_region_t region, size_t rowPitch,
332336 size_t slicePitch, void *pDst, uint32_t numEventsInWaitList,
333337 const ur_event_handle_t *phEventWaitList, ur_event_handle_t *phEvent) {
338+ const size_t Origin[3 ] = {origin.x , origin.y , origin.z };
339+ const size_t Region[3 ] = {region.width , region.height , region.depth };
334340
335341 auto ClErr = clEnqueueReadImage (
336342 cl_adapter::cast<cl_command_queue>(hQueue),
337- cl_adapter::cast<cl_mem>(hImage), blockingRead,
338- cl_adapter::cast<const size_t *>(&origin),
339- cl_adapter::cast<const size_t *>(®ion), rowPitch, slicePitch, pDst,
340- numEventsInWaitList, cl_adapter::cast<const cl_event *>(phEventWaitList),
343+ cl_adapter::cast<cl_mem>(hImage), blockingRead, Origin, Region, rowPitch,
344+ slicePitch, pDst, numEventsInWaitList,
345+ cl_adapter::cast<const cl_event *>(phEventWaitList),
341346 cl_adapter::cast<cl_event *>(phEvent));
342347
343348 if (ClErr == CL_INVALID_VALUE) {
@@ -351,13 +356,14 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemImageWrite(
351356 ur_rect_offset_t origin, ur_rect_region_t region, size_t rowPitch,
352357 size_t slicePitch, void *pSrc, uint32_t numEventsInWaitList,
353358 const ur_event_handle_t *phEventWaitList, ur_event_handle_t *phEvent) {
359+ const size_t Origin[3 ] = {origin.x , origin.y , origin.z };
360+ const size_t Region[3 ] = {region.width , region.height , region.depth };
354361
355362 auto ClErr = clEnqueueWriteImage (
356363 cl_adapter::cast<cl_command_queue>(hQueue),
357- cl_adapter::cast<cl_mem>(hImage), blockingWrite,
358- cl_adapter::cast<const size_t *>(&origin),
359- cl_adapter::cast<const size_t *>(®ion), rowPitch, slicePitch, pSrc,
360- numEventsInWaitList, cl_adapter::cast<const cl_event *>(phEventWaitList),
364+ cl_adapter::cast<cl_mem>(hImage), blockingWrite, Origin, Region, rowPitch,
365+ slicePitch, pSrc, numEventsInWaitList,
366+ cl_adapter::cast<const cl_event *>(phEventWaitList),
361367 cl_adapter::cast<cl_event *>(phEvent));
362368
363369 if (ClErr == CL_INVALID_VALUE) {
@@ -372,13 +378,14 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemImageCopy(
372378 ur_rect_offset_t dstOrigin, ur_rect_region_t region,
373379 uint32_t numEventsInWaitList, const ur_event_handle_t *phEventWaitList,
374380 ur_event_handle_t *phEvent) {
381+ const size_t SrcOrigin[3 ] = {srcOrigin.x , srcOrigin.y , srcOrigin.z };
382+ const size_t DstOrigin[3 ] = {dstOrigin.x , dstOrigin.y , dstOrigin.z };
383+ const size_t Region[3 ] = {region.width , region.height , region.depth };
375384
376385 auto ClErr = clEnqueueCopyImage (
377386 cl_adapter::cast<cl_command_queue>(hQueue),
378387 cl_adapter::cast<cl_mem>(hImageSrc), cl_adapter::cast<cl_mem>(hImageDst),
379- cl_adapter::cast<const size_t *>(&srcOrigin),
380- cl_adapter::cast<const size_t *>(&dstOrigin),
381- cl_adapter::cast<const size_t *>(®ion), numEventsInWaitList,
388+ SrcOrigin, DstOrigin, Region, numEventsInWaitList,
382389 cl_adapter::cast<const cl_event *>(phEventWaitList),
383390 cl_adapter::cast<cl_event *>(phEvent));
384391
0 commit comments