@@ -283,6 +283,7 @@ typedef enum ur_structure_type_t {
283
283
UR_STRUCTURE_TYPE_EXP_WIN32_HANDLE = 0x2004, ///< ::ur_exp_win32_handle_t
284
284
UR_STRUCTURE_TYPE_EXP_SAMPLER_ADDR_MODES = 0x2005, ///< ::ur_exp_sampler_addr_modes_t
285
285
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
286
287
UR_STRUCTURE_TYPE_EXP_ENQUEUE_NATIVE_COMMAND_PROPERTIES = 0x3000, ///< ::ur_exp_enqueue_native_command_properties_t
287
288
/// @cond
288
289
UR_STRUCTURE_TYPE_FORCE_UINT32 = 0x7fffffff
@@ -7501,6 +7502,18 @@ typedef struct ur_exp_interop_semaphore_desc_t {
7501
7502
7502
7503
} ur_exp_interop_semaphore_desc_t;
7503
7504
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
+
7504
7517
///////////////////////////////////////////////////////////////////////////////
7505
7518
/// @brief USM allocate pitched memory
7506
7519
///
@@ -7740,7 +7753,7 @@ urBindlessImagesSampledImageCreateExp(
7740
7753
);
7741
7754
7742
7755
///////////////////////////////////////////////////////////////////////////////
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
7744
7757
///
7745
7758
/// @remarks
7746
7759
/// _Analogues_
@@ -7757,34 +7770,34 @@ urBindlessImagesSampledImageCreateExp(
7757
7770
/// - ::UR_RESULT_ERROR_INVALID_NULL_HANDLE
7758
7771
/// + `NULL == hQueue`
7759
7772
/// - ::UR_RESULT_ERROR_INVALID_NULL_POINTER
7760
- /// + `NULL == pDst`
7761
7773
/// + `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`
7764
7780
/// - ::UR_RESULT_ERROR_INVALID_ENUMERATION
7765
7781
/// + `::UR_EXP_IMAGE_COPY_FLAGS_MASK & imageCopyFlags`
7766
7782
/// - ::UR_RESULT_ERROR_INVALID_QUEUE
7767
7783
/// - ::UR_RESULT_ERROR_INVALID_VALUE
7768
7784
/// - ::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`
7770
7787
/// - ::UR_RESULT_ERROR_INVALID_IMAGE_SIZE
7771
7788
/// - ::UR_RESULT_ERROR_INVALID_OPERATION
7772
7789
UR_APIEXPORT ur_result_t UR_APICALL
7773
7790
urBindlessImagesImageCopyExp(
7774
7791
ur_queue_handle_t hQueue, ///< [in] handle of the queue object
7775
- void *pDst, ///< [in] location the data will be copied to
7776
7792
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
7779
7800
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
7788
7801
uint32_t numEventsInWaitList, ///< [in] size of the event wait list
7789
7802
const ur_event_handle_t *phEventWaitList, ///< [in][optional][range(0, numEventsInWaitList)] pointer to a list of
7790
7803
///< 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 {
11138
11151
/// allowing the callback the ability to modify the parameter's value
11139
11152
typedef struct ur_bindless_images_image_copy_exp_params_t {
11140
11153
ur_queue_handle_t *phQueue;
11141
- void **ppDst;
11142
11154
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;
11145
11161
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;
11150
11162
uint32_t *pnumEventsInWaitList;
11151
11163
const ur_event_handle_t **pphEventWaitList;
11152
11164
ur_event_handle_t **pphEvent;
0 commit comments