@@ -283,6 +283,7 @@ typedef enum ur_structure_type_t {
283283 UR_STRUCTURE_TYPE_EXP_WIN32_HANDLE = 0x2004, ///< ::ur_exp_win32_handle_t
284284 UR_STRUCTURE_TYPE_EXP_SAMPLER_ADDR_MODES = 0x2005, ///< ::ur_exp_sampler_addr_modes_t
285285 UR_STRUCTURE_TYPE_EXP_SAMPLER_CUBEMAP_PROPERTIES = 0x2006, ///< ::ur_exp_sampler_cubemap_properties_t
286+ UR_STRUCTURE_TYPE_EXP_IMAGE_COPY_REGION = 0x2007, ///< ::ur_exp_image_copy_region_t
286287 UR_STRUCTURE_TYPE_EXP_ENQUEUE_NATIVE_COMMAND_PROPERTIES = 0x3000, ///< ::ur_exp_enqueue_native_command_properties_t
287288 /// @cond
288289 UR_STRUCTURE_TYPE_FORCE_UINT32 = 0x7fffffff
@@ -7501,6 +7502,18 @@ typedef struct ur_exp_interop_semaphore_desc_t {
75017502
75027503} ur_exp_interop_semaphore_desc_t;
75037504
7505+ ///////////////////////////////////////////////////////////////////////////////
7506+ /// @brief Describes the (sub-)regions and the extent to be copied
7507+ typedef struct ur_exp_image_copy_region_t {
7508+ ur_structure_type_t stype; ///< [in] type of this structure, must be
7509+ ///< ::UR_STRUCTURE_TYPE_EXP_IMAGE_COPY_REGION
7510+ const void *pNext; ///< [in][optional] pointer to extension-specific structure
7511+ ur_rect_offset_t srcOffset; ///< [in] the offset into the source image
7512+ ur_rect_offset_t dstOffset; ///< [in] the offset into the destination image
7513+ ur_rect_region_t copyExtent; ///< [in] the extent (region) of the image to copy
7514+
7515+ } ur_exp_image_copy_region_t;
7516+
75047517///////////////////////////////////////////////////////////////////////////////
75057518/// @brief USM allocate pitched memory
75067519///
@@ -7740,7 +7753,7 @@ urBindlessImagesSampledImageCreateExp(
77407753);
77417754
77427755///////////////////////////////////////////////////////////////////////////////
7743- /// @brief Copy image data Host to Device or Device to Host
7756+ /// @brief Copy image data Host to Device, Device to Host, or Device to Device
77447757///
77457758/// @remarks
77467759/// _Analogues_
@@ -7757,34 +7770,34 @@ urBindlessImagesSampledImageCreateExp(
77577770/// - ::UR_RESULT_ERROR_INVALID_NULL_HANDLE
77587771/// + `NULL == hQueue`
77597772/// - ::UR_RESULT_ERROR_INVALID_NULL_POINTER
7760- /// + `NULL == pDst`
77617773/// + `NULL == pSrc`
7762- /// + `NULL == pImageFormat`
7763- /// + `NULL == pImageDesc`
7774+ /// + `NULL == pDst`
7775+ /// + `NULL == pSrcImageDesc`
7776+ /// + `NULL == pDstImageDesc`
7777+ /// + `NULL == pSrcImageFormat`
7778+ /// + `NULL == pDstImageFormat`
7779+ /// + `NULL == pCopyRegion`
77647780/// - ::UR_RESULT_ERROR_INVALID_ENUMERATION
77657781/// + `::UR_EXP_IMAGE_COPY_FLAGS_MASK & imageCopyFlags`
77667782/// - ::UR_RESULT_ERROR_INVALID_QUEUE
77677783/// - ::UR_RESULT_ERROR_INVALID_VALUE
77687784/// - ::UR_RESULT_ERROR_INVALID_IMAGE_FORMAT_DESCRIPTOR
7769- /// + `pImageDesc && UR_MEM_TYPE_IMAGE_CUBEMAP_EXP < pImageDesc->type`
7785+ /// + `pSrcImageDesc && UR_MEM_TYPE_IMAGE_CUBEMAP_EXP < pSrcImageDesc->type`
7786+ /// + `pDstImageDesc && UR_MEM_TYPE_IMAGE_CUBEMAP_EXP < pDstImageDesc->type`
77707787/// - ::UR_RESULT_ERROR_INVALID_IMAGE_SIZE
77717788/// - ::UR_RESULT_ERROR_INVALID_OPERATION
77727789UR_APIEXPORT ur_result_t UR_APICALL
77737790urBindlessImagesImageCopyExp(
77747791 ur_queue_handle_t hQueue, ///< [in] handle of the queue object
7775- void *pDst, ///< [in] location the data will be copied to
77767792 const void *pSrc, ///< [in] location the data will be copied from
7777- const ur_image_format_t *pImageFormat, ///< [in] pointer to image format specification
7778- const ur_image_desc_t *pImageDesc, ///< [in] pointer to image description
7793+ void *pDst, ///< [in] location the data will be copied to
7794+ const ur_image_desc_t *pSrcImageDesc, ///< [in] pointer to image description
7795+ const ur_image_desc_t *pDstImageDesc, ///< [in] pointer to image description
7796+ const ur_image_format_t *pSrcImageFormat, ///< [in] pointer to image format specification
7797+ const ur_image_format_t *pDstImageFormat, ///< [in] pointer to image format specification
7798+ ur_exp_image_copy_region_t *pCopyRegion, ///< [in] Pointer to structure describing the (sub-)regions of source and
7799+ ///< destination images
77797800 ur_exp_image_copy_flags_t imageCopyFlags, ///< [in] flags describing copy direction e.g. H2D or D2H
7780- ur_rect_offset_t srcOffset, ///< [in] defines the (x,y,z) source offset in pixels in the 1D, 2D, or 3D
7781- ///< image
7782- ur_rect_offset_t dstOffset, ///< [in] defines the (x,y,z) destination offset in pixels in the 1D, 2D,
7783- ///< or 3D image
7784- ur_rect_region_t copyExtent, ///< [in] defines the (width, height, depth) in pixels of the 1D, 2D, or 3D
7785- ///< region to copy
7786- ur_rect_region_t hostExtent, ///< [in] defines the (width, height, depth) in pixels of the 1D, 2D, or 3D
7787- ///< region on the host
77887801 uint32_t numEventsInWaitList, ///< [in] size of the event wait list
77897802 const ur_event_handle_t *phEventWaitList, ///< [in][optional][range(0, numEventsInWaitList)] pointer to a list of
77907803 ///< events that must be complete before this command can be executed.
@@ -11138,15 +11151,14 @@ typedef struct ur_bindless_images_sampled_image_create_exp_params_t {
1113811151/// allowing the callback the ability to modify the parameter's value
1113911152typedef struct ur_bindless_images_image_copy_exp_params_t {
1114011153 ur_queue_handle_t *phQueue;
11141- void **ppDst;
1114211154 const void **ppSrc;
11143- const ur_image_format_t **ppImageFormat;
11144- const ur_image_desc_t **ppImageDesc;
11155+ void **ppDst;
11156+ const ur_image_desc_t **ppSrcImageDesc;
11157+ const ur_image_desc_t **ppDstImageDesc;
11158+ const ur_image_format_t **ppSrcImageFormat;
11159+ const ur_image_format_t **ppDstImageFormat;
11160+ ur_exp_image_copy_region_t **ppCopyRegion;
1114511161 ur_exp_image_copy_flags_t *pimageCopyFlags;
11146- ur_rect_offset_t *psrcOffset;
11147- ur_rect_offset_t *pdstOffset;
11148- ur_rect_region_t *pcopyExtent;
11149- ur_rect_region_t *phostExtent;
1115011162 uint32_t *pnumEventsInWaitList;
1115111163 const ur_event_handle_t **pphEventWaitList;
1115211164 ur_event_handle_t **pphEvent;
0 commit comments