DPC++ Runtime
Runtime libraries for oneAPI DPC++
pi_native_cpu.cpp
Go to the documentation of this file.
1 //==---------- pi_native_cpu.cpp - Native CPU Plugin -----------------------==//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include "pi_native_cpu.hpp"
10 
11 extern "C" {
12 
13 #define EXPORT_PI_API_SYMBOLS
14 // TODO: consider undefining EXPORT_PI_API_SYMBOLS because exporting these
15 // symbols does not appear to be needed at the moment. Undefining
16 // EXPORT_PI_API_SYMBOLS will initialize the function table directly with pi2ur
17 // functions instead of stubs that call the corresponding pi2ur functions. While
18 // this no longer exports the PI API names (and therefore prevents symbol
19 // checking using the abi_check.py scripts), it's less code/symbols, likely more
20 // efficient and since the table is initialized using <sycl/detail/pi.def> all
21 // of the PI API should already be covered assuming pi.def is kept up to date.
22 
23 #ifdef EXPORT_PI_API_SYMBOLS
24 // define stubs and export them with the PI API names to enable symbol checking.
25 
26 // First, forward-declare stubs to enable checking that they match the pi2ur
27 // decls.
28 #define _PI_API(api) decltype(pi2ur::api) api;
29 #include <sycl/detail/pi.def>
30 #undef _PI_API
31 
32 // stubs taken from LevelZero
34  pi_uint32 *NumPlatforms) {
35  return pi2ur::piPlatformsGet(NumEntries, Platforms, NumPlatforms);
36 }
37 
39  size_t ParamValueSize, void *ParamValue,
40  size_t *ParamValueSizeRet) {
41  return pi2ur::piPlatformGetInfo(Platform, ParamName, ParamValueSize,
42  ParamValue, ParamValueSizeRet);
43 }
44 
46  pi_native_handle *NativeHandle) {
47 
48  return pi2ur::piextPlatformGetNativeHandle(Platform, NativeHandle);
49 }
50 
52  pi_platform *Platform) {
53 
54  return pi2ur::piextPlatformCreateWithNativeHandle(NativeHandle, Platform);
55 }
56 
58  return pi2ur::piPluginGetLastError(message);
59 }
60 
62  const char *frontend_option,
63  const char **backend_option) {
64  return pi2ur::piPluginGetBackendOption(platform, frontend_option,
65  backend_option);
66 }
67 
69  pi_uint32 NumEntries, pi_device *Devices,
70  pi_uint32 *NumDevices) {
71  return pi2ur::piDevicesGet(Platform, DeviceType, NumEntries, Devices,
72  NumDevices);
73 }
74 
76  return pi2ur::piDeviceRetain(Device);
77 }
78 
80  return pi2ur::piDeviceRelease(Device);
81 }
82 
84  size_t ParamValueSize, void *ParamValue,
85  size_t *ParamValueSizeRet) {
86  return pi2ur::piDeviceGetInfo(Device, ParamName, ParamValueSize, ParamValue,
87  ParamValueSizeRet);
88 }
89 
91  const pi_device_partition_property *Properties,
92  pi_uint32 NumDevices, pi_device *OutDevices,
93  pi_uint32 *OutNumDevices) {
94  return pi2ur::piDevicePartition(Device, Properties, NumDevices, OutDevices,
95  OutNumDevices);
96 }
97 
99 piextDeviceSelectBinary(pi_device Device, // TODO: does this need to be context?
100  pi_device_binary *Binaries, pi_uint32 NumBinaries,
101  pi_uint32 *SelectedBinaryInd) {
102  return pi2ur::piextDeviceSelectBinary(Device, Binaries, NumBinaries,
103  SelectedBinaryInd);
104 }
105 
107  pi_native_handle *NativeHandle) {
108 
109  return pi2ur::piextDeviceGetNativeHandle(Device, NativeHandle);
110 }
111 
113  pi_platform Platform,
114  pi_device *Device) {
115 
116  return pi2ur::piextDeviceCreateWithNativeHandle(NativeHandle, Platform,
117  Device);
118 }
119 
121  pi_uint32 NumDevices, const pi_device *Devices,
122  void (*PFnNotify)(const char *ErrInfo,
123  const void *PrivateInfo, size_t CB,
124  void *UserData),
125  void *UserData, pi_context *RetContext) {
126  return pi2ur::piContextCreate(Properties, NumDevices, Devices, PFnNotify,
127  UserData, RetContext);
128 }
129 
131  size_t ParamValueSize, void *ParamValue,
132  size_t *ParamValueSizeRet) {
133 
134  return pi2ur::piContextGetInfo(Context, ParamName, ParamValueSize, ParamValue,
135  ParamValueSizeRet);
136 }
137 
138 // FIXME: Dummy implementation to prevent link fail
141  void *UserData) {
142  return pi2ur::piextContextSetExtendedDeleter(Context, Function, UserData);
143 }
144 
146  pi_native_handle *NativeHandle) {
147  return pi2ur::piextContextGetNativeHandle(Context, NativeHandle);
148 }
149 
151  pi_uint32 NumDevices,
152  const pi_device *Devices,
153  bool OwnNativeHandle,
154  pi_context *RetContext) {
156  NativeHandle, NumDevices, Devices, OwnNativeHandle, RetContext);
157 }
158 
160 
161  return pi2ur::piContextRetain(Context);
162 }
163 
165  return pi2ur::piContextRelease(Context);
166 }
167 
169  pi_queue_properties Flags, pi_queue *Queue) {
170  pi_queue_properties Properties[] = {PI_QUEUE_FLAGS, Flags, 0};
171  return piextQueueCreate(Context, Device, Properties, Queue);
172 }
173 
175  pi_queue_properties *Properties, pi_queue *Queue) {
176  return pi2ur::piextQueueCreate(Context, Device, Properties, Queue);
177 }
178 
180  size_t ParamValueSize, void *ParamValue,
181  size_t *ParamValueSizeRet) {
182 
183  return pi2ur::piQueueGetInfo(Queue, ParamName, ParamValueSize, ParamValue,
184  ParamValueSizeRet);
185 }
186 
188 
190  return pi2ur::piQueueRelease(Queue);
191 }
192 
194 
196 
198  pi_native_handle *NativeHandle,
199  int32_t *NativeHandleDesc) {
200 
201  return pi2ur::piextQueueGetNativeHandle(Queue, NativeHandle,
202  NativeHandleDesc);
203 }
204 
206  int32_t NativeHandleDesc,
207  pi_context Context, pi_device Device,
208  bool OwnNativeHandle,
209  pi_queue_properties *Properties,
210  pi_queue *Queue) {
211 
213  NativeHandle, NativeHandleDesc, Context, Device, OwnNativeHandle,
214  Properties, Queue);
215 }
216 
218  void *HostPtr, pi_mem *RetMem,
219  const pi_mem_properties *properties) {
220  return pi2ur::piMemBufferCreate(Context, Flags, Size, HostPtr, RetMem,
221  properties);
222 }
223 
224 pi_result piMemGetInfo(pi_mem Mem, pi_mem_info ParamName, size_t ParamValueSize,
225  void *ParamValue, size_t *ParamValueSizeRet) {
226  return pi2ur::piMemGetInfo(Mem, ParamName, ParamValueSize, ParamValue,
227  ParamValueSizeRet);
228 }
229 
231 
233 
235  const pi_image_format *ImageFormat,
236  const pi_image_desc *ImageDesc, void *HostPtr,
237  pi_mem *RetImage) {
238 
239  return pi2ur::piMemImageCreate(Context, Flags, ImageFormat, ImageDesc,
240  HostPtr, RetImage);
241 }
242 
244  pi_native_handle *NativeHandle) {
245  return pi2ur::piextMemGetNativeHandle(Mem, Dev, NativeHandle);
246 }
247 
249  pi_context Context,
250  bool ownNativeHandle, pi_mem *Mem) {
251  return pi2ur::piextMemCreateWithNativeHandle(NativeHandle, Context,
252  ownNativeHandle, Mem);
253 }
254 
255 pi_result piProgramCreate(pi_context Context, const void *ILBytes,
256  size_t Length, pi_program *Program) {
257  return pi2ur::piProgramCreate(Context, ILBytes, Length, Program);
258 }
259 
261  pi_context Context, pi_uint32 NumDevices, const pi_device *DeviceList,
262  const size_t *Lengths, const unsigned char **Binaries,
263  size_t NumMetadataEntries, const pi_device_binary_property *Metadata,
264  pi_int32 *BinaryStatus, pi_program *Program) {
265 
266  return pi2ur::piProgramCreateWithBinary(Context, NumDevices, DeviceList,
267  Lengths, Binaries, NumMetadataEntries,
268  Metadata, BinaryStatus, Program);
269 }
270 
272  pi_native_handle NativeHandle, pi_context Context, bool OwnNativeHandle,
273  const pi_image_format *ImageFormat, const pi_image_desc *ImageDesc,
274  pi_mem *Img) {
276  NativeHandle, Context, OwnNativeHandle, ImageFormat, ImageDesc, Img);
277 }
278 
280  size_t ParamValueSize, void *ParamValue,
281  size_t *ParamValueSizeRet) {
282 
283  return pi2ur::piProgramGetInfo(Program, ParamName, ParamValueSize, ParamValue,
284  ParamValueSizeRet);
285 }
286 
288  const pi_device *DeviceList, const char *Options,
289  pi_uint32 NumInputPrograms,
290  const pi_program *InputPrograms,
291  void (*PFnNotify)(pi_program Program, void *UserData),
292  void *UserData, pi_program *RetProgram) {
293  return pi2ur::piProgramLink(Context, NumDevices, DeviceList, Options,
294  NumInputPrograms, InputPrograms, PFnNotify,
295  UserData, RetProgram);
296 }
297 
299  pi_program Program, pi_uint32 NumDevices, const pi_device *DeviceList,
300  const char *Options, pi_uint32 NumInputHeaders,
301  const pi_program *InputHeaders, const char **HeaderIncludeNames,
302  void (*PFnNotify)(pi_program Program, void *UserData), void *UserData) {
303 
304  return pi2ur::piProgramCompile(Program, NumDevices, DeviceList, Options,
305  NumInputHeaders, InputHeaders,
306  HeaderIncludeNames, PFnNotify, UserData);
307 }
308 
310  const pi_device *DeviceList, const char *Options,
311  void (*PFnNotify)(pi_program Program, void *UserData),
312  void *UserData) {
313  return pi2ur::piProgramBuild(Program, NumDevices, DeviceList, Options,
314  PFnNotify, UserData);
315 }
316 
318  pi_program_build_info ParamName,
319  size_t ParamValueSize, void *ParamValue,
320  size_t *ParamValueSizeRet) {
321 
322  return pi2ur::piProgramGetBuildInfo(Program, Device, ParamName,
323  ParamValueSize, ParamValue,
324  ParamValueSizeRet);
325 }
326 
328  return pi2ur::piProgramRetain(Program);
329 }
330 
332  return pi2ur::piProgramRelease(Program);
333 }
334 
336  pi_native_handle *NativeHandle) {
337  return pi2ur::piextProgramGetNativeHandle(Program, NativeHandle);
338 }
339 
341  pi_context Context,
342  bool OwnNativeHandle,
343  pi_program *Program) {
344  return pi2ur::piextProgramCreateWithNativeHandle(NativeHandle, Context,
345  OwnNativeHandle, Program);
346 }
347 
348 pi_result piKernelCreate(pi_program Program, const char *KernelName,
349  pi_kernel *RetKernel) {
350 
351  return pi2ur::piKernelCreate(Program, KernelName, RetKernel);
352 }
353 
354 pi_result piKernelSetArg(pi_kernel Kernel, pi_uint32 ArgIndex, size_t ArgSize,
355  const void *ArgValue) {
356 
357  return pi2ur::piKernelSetArg(Kernel, ArgIndex, ArgSize, ArgValue);
358 }
359 
361  const pi_mem_obj_property *ArgProperties,
362  const pi_mem *ArgValue) {
363  return pi2ur::piextKernelSetArgMemObj(Kernel, ArgIndex, ArgProperties,
364  ArgValue);
365 }
366 
368  const pi_sampler *ArgValue) {
369 
370  return pi2ur::piextKernelSetArgSampler(Kernel, ArgIndex, ArgValue);
371 }
372 
374  size_t ParamValueSize, void *ParamValue,
375  size_t *ParamValueSizeRet) {
376 
377  return pi2ur::piKernelGetInfo(Kernel, ParamName, ParamValueSize, ParamValue,
378  ParamValueSizeRet);
379 }
380 
382  pi_device Device,
383  pi_image_format *ImageFormat,
384  pi_image_desc *ImageDesc,
385  pi_image_mem_handle *RetMem) {
386  return pi2ur::piextMemImageAllocate(Context, Device, ImageFormat, ImageDesc,
387  RetMem);
388 }
389 
391  pi_context Context, pi_device Device, pi_image_mem_handle ImgMem,
392  pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_mem *RetMem,
393  pi_image_handle *RetHandle) {
395  Context, Device, ImgMem, ImageFormat, ImageDesc, RetMem, RetHandle);
396 }
397 
399  pi_context Context, pi_device Device, pi_image_mem_handle ImgMem,
400  pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_sampler Sampler,
401  pi_mem *RetMem, pi_image_handle *RetHandle) {
402  return pi2ur::piextMemSampledImageCreate(Context, Device, ImgMem, ImageFormat,
403  ImageDesc, Sampler, RetMem,
404  RetHandle);
405 }
406 
408  pi_context Context, const pi_sampler_properties *SamplerProperties,
409  float MinMipmapLevelClamp, float MaxMipmapLevelClamp, float MaxAnisotropy,
410  pi_sampler *RetSampler) {
412  Context, SamplerProperties, MinMipmapLevelClamp, MaxMipmapLevelClamp,
413  MaxAnisotropy, RetSampler);
414 }
415 
417  pi_device Device,
418  pi_image_mem_handle MipMem,
419  unsigned int Level,
420  pi_image_mem_handle *RetMem) {
421  return pi2ur::piextMemMipmapGetLevel(Context, Device, MipMem, Level, RetMem);
422 }
423 
424 __SYCL_EXPORT pi_result piextMemImageFree(pi_context Context, pi_device Device,
425  pi_image_mem_handle MemoryHandle) {
426  return pi2ur::piextMemImageFree(Context, Device, MemoryHandle);
427 }
428 
429 __SYCL_EXPORT pi_result piextMemMipmapFree(pi_context Context, pi_device Device,
430  pi_image_mem_handle MemoryHandle) {
431  return pi2ur::piextMemMipmapFree(Context, Device, MemoryHandle);
432 }
433 
435  pi_queue Queue, void *DstPtr, void *SrcPtr,
436  const pi_image_format *ImageFormat, const pi_image_desc *ImageDesc,
437  const pi_image_copy_flags Flags, pi_image_offset SrcOffset,
438  pi_image_offset DstOffset, pi_image_region CopyExtent,
439  pi_image_region HostExtent, pi_uint32 NumEventsInWaitList,
440  const pi_event *EventWaitList, pi_event *Event) {
441  return pi2ur::piextMemImageCopy(Queue, DstPtr, SrcPtr, ImageFormat, ImageDesc,
442  Flags, SrcOffset, DstOffset, CopyExtent,
443  HostExtent, NumEventsInWaitList,
444  EventWaitList, Event);
445 }
446 
448  pi_context Context, pi_device Device, pi_image_handle Handle) {
449  return pi2ur::piextMemUnsampledImageHandleDestroy(Context, Device, Handle);
450 }
451 
453  pi_context Context, pi_device Device, pi_image_handle Handle) {
454  return pi2ur::piextMemSampledImageHandleDestroy(Context, Device, Handle);
455 }
456 
458  pi_image_info ParamName,
459  void *ParamValue,
460  size_t *ParamValueSizeRet) {
461  return pi2ur::piextMemImageGetInfo(MemHandle, ParamName, ParamValue,
462  ParamValueSizeRet);
463 }
464 
465 __SYCL_EXPORT pi_result
466 piextMemImportOpaqueFD(pi_context Context, pi_device Device, size_t Size,
467  int FileDescriptor, pi_interop_mem_handle *RetHandle) {
468  return pi2ur::piextMemImportOpaqueFD(Context, Device, Size, FileDescriptor,
469  RetHandle);
470 }
471 
473  pi_context Context, pi_device Device, pi_image_format *ImageFormat,
474  pi_image_desc *ImageDesc, pi_interop_mem_handle MemHandle,
475  pi_image_mem_handle *RetMem) {
476  return pi2ur::piextMemMapExternalArray(Context, Device, ImageFormat,
477  ImageDesc, MemHandle, RetMem);
478 }
479 
481  pi_device Device,
482  pi_interop_mem_handle ExtMem) {
483  return pi2ur::piextMemReleaseInterop(Context, Device, ExtMem);
484 }
485 
487  pi_context Context, pi_device Device, int FileDescriptor,
488  pi_interop_semaphore_handle *RetHandle) {
489  return pi2ur::piextImportExternalSemaphoreOpaqueFD(Context, Device,
490  FileDescriptor, RetHandle);
491 }
492 
493 __SYCL_EXPORT pi_result
495  pi_interop_semaphore_handle SemHandle) {
496  return pi2ur::piextDestroyExternalSemaphore(Context, Device, SemHandle);
497 }
498 
500  pi_queue Queue, pi_interop_semaphore_handle SemHandle,
501  pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList,
502  pi_event *Event) {
504  Queue, SemHandle, NumEventsInWaitList, EventWaitList, Event);
505 }
506 
508  pi_queue Queue, pi_interop_semaphore_handle SemHandle,
509  pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList,
510  pi_event *Event) {
512  Queue, SemHandle, NumEventsInWaitList, EventWaitList, Event);
513 }
514 
516  pi_kernel_group_info ParamName,
517  size_t ParamValueSize, void *ParamValue,
518  size_t *ParamValueSizeRet) {
519 
520  return pi2ur::piKernelGetGroupInfo(Kernel, Device, ParamName, ParamValueSize,
521  ParamValue, ParamValueSizeRet);
522 }
523 
525  pi_kernel_sub_group_info ParamName,
526  size_t InputValueSize, const void *InputValue,
527  size_t ParamValueSize, void *ParamValue,
528  size_t *ParamValueSizeRet) {
529 
531  Kernel, Device, ParamName, InputValueSize, InputValue, ParamValueSize,
532  ParamValue, ParamValueSizeRet);
533 }
534 
536 
537  return pi2ur::piKernelRetain(Kernel);
538 }
539 
541 
542  return pi2ur::piKernelRelease(Kernel);
543 }
544 
545 pi_result
547  const size_t *GlobalWorkOffset,
548  const size_t *GlobalWorkSize, const size_t *LocalWorkSize,
549  pi_uint32 NumEventsInWaitList,
550  const pi_event *EventWaitList, pi_event *OutEvent) {
552  Queue, Kernel, WorkDim, GlobalWorkOffset, GlobalWorkSize, LocalWorkSize,
553  NumEventsInWaitList, EventWaitList, OutEvent);
554 }
555 
557  pi_context Context,
558  pi_program Program,
559  bool OwnNativeHandle,
560  pi_kernel *Kernel) {
561 
563  NativeHandle, Context, Program, OwnNativeHandle, Kernel);
564 }
565 
567  pi_native_handle *NativeHandle) {
568  return pi2ur::piextKernelGetNativeHandle(Kernel, NativeHandle);
569 }
570 
571 //
572 // Events
573 //
574 
575 // External PI API entry
577  return pi2ur::piEventCreate(Context, RetEvent);
578 }
579 
581  size_t ParamValueSize, void *ParamValue,
582  size_t *ParamValueSizeRet) {
583  return pi2ur::piEventGetInfo(Event, ParamName, ParamValueSize, ParamValue,
584  ParamValueSizeRet);
585 }
586 
588  size_t ParamValueSize, void *ParamValue,
589  size_t *ParamValueSizeRet) {
590 
591  return pi2ur::piEventGetProfilingInfo(Event, ParamName, ParamValueSize,
592  ParamValue, ParamValueSizeRet);
593 }
594 
595 pi_result piEventsWait(pi_uint32 NumEvents, const pi_event *EventList) {
596  return pi2ur::piEventsWait(NumEvents, EventList);
597 }
598 
599 pi_result piEventSetCallback(pi_event Event, pi_int32 CommandExecCallbackType,
600  void (*PFnNotify)(pi_event Event,
601  pi_int32 EventCommandStatus,
602  void *UserData),
603  void *UserData) {
604  return pi2ur::piEventSetCallback(Event, CommandExecCallbackType, PFnNotify,
605  UserData);
606 }
607 
608 pi_result piEventSetStatus(pi_event Event, pi_int32 ExecutionStatus) {
609  return pi2ur::piEventSetStatus(Event, ExecutionStatus);
610 }
611 
613 
615  return pi2ur::piEventRelease(Event);
616 }
617 
619  pi_native_handle *NativeHandle) {
620 
621  return pi2ur::piextEventGetNativeHandle(Event, NativeHandle);
622 }
623 
625  pi_context Context,
626  bool OwnNativeHandle,
627  pi_event *Event) {
628  return pi2ur::piextEventCreateWithNativeHandle(NativeHandle, Context,
629  OwnNativeHandle, Event);
630 }
631 
632 //
633 // Sampler
634 //
636  const pi_sampler_properties *SamplerProperties,
637  pi_sampler *RetSampler) {
638  return pi2ur::piSamplerCreate(Context, SamplerProperties, RetSampler);
639 }
640 
642  size_t ParamValueSize, void *ParamValue,
643  size_t *ParamValueSizeRet) {
644 
645  return pi2ur::piSamplerGetInfo(Sampler, ParamName, ParamValueSize, ParamValue,
646  ParamValueSizeRet);
647 }
648 
650  return pi2ur::piSamplerRetain(Sampler);
651 }
652 
654  return pi2ur::piSamplerRelease(Sampler);
655 }
656 
657 //
658 // Queue Commands
659 //
660 pi_result piEnqueueEventsWait(pi_queue Queue, pi_uint32 NumEventsInWaitList,
661  const pi_event *EventWaitList,
662  pi_event *OutEvent) {
663 
664  return pi2ur::piEnqueueEventsWait(Queue, NumEventsInWaitList, EventWaitList,
665  OutEvent);
666 }
667 
669  pi_uint32 NumEventsInWaitList,
670  const pi_event *EventWaitList,
671  pi_event *OutEvent) {
672 
673  return pi2ur::piEnqueueEventsWaitWithBarrier(Queue, NumEventsInWaitList,
674  EventWaitList, OutEvent);
675 }
676 
678  pi_bool BlockingRead, size_t Offset,
679  size_t Size, void *Dst,
680  pi_uint32 NumEventsInWaitList,
681  const pi_event *EventWaitList,
682  pi_event *Event) {
683 
684  return pi2ur::piEnqueueMemBufferRead(Queue, Src, BlockingRead, Offset, Size,
685  Dst, NumEventsInWaitList, EventWaitList,
686  Event);
687 }
688 
690  pi_queue Queue, pi_mem Buffer, pi_bool BlockingRead,
691  pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset,
692  pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch,
693  size_t HostRowPitch, size_t HostSlicePitch, void *Ptr,
694  pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList,
695  pi_event *Event) {
696 
698  Queue, Buffer, BlockingRead, BufferOffset, HostOffset, Region,
699  BufferRowPitch, BufferSlicePitch, HostRowPitch, HostSlicePitch, Ptr,
700  NumEventsInWaitList, EventWaitList, Event);
701 }
702 
704  pi_bool BlockingWrite, size_t Offset,
705  size_t Size, const void *Ptr,
706  pi_uint32 NumEventsInWaitList,
707  const pi_event *EventWaitList,
708  pi_event *Event) {
709 
710  return pi2ur::piEnqueueMemBufferWrite(Queue, Buffer, BlockingWrite, Offset,
711  Size, Ptr, NumEventsInWaitList,
712  EventWaitList, Event);
713 }
714 
716  pi_queue Queue, pi_mem Buffer, pi_bool BlockingWrite,
717  pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset,
718  pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch,
719  size_t HostRowPitch, size_t HostSlicePitch, const void *Ptr,
720  pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList,
721  pi_event *Event) {
722 
724  Queue, Buffer, BlockingWrite, BufferOffset, HostOffset, Region,
725  BufferRowPitch, BufferSlicePitch, HostRowPitch, HostSlicePitch, Ptr,
726  NumEventsInWaitList, EventWaitList, Event);
727 }
728 
730  size_t SrcOffset, size_t DstOffset,
731  size_t Size, pi_uint32 NumEventsInWaitList,
732  const pi_event *EventWaitList,
733  pi_event *Event) {
734 
735  return pi2ur::piEnqueueMemBufferCopy(Queue, SrcMem, DstMem, SrcOffset,
736  DstOffset, Size, NumEventsInWaitList,
737  EventWaitList, Event);
738 }
739 
741  pi_queue Queue, pi_mem SrcMem, pi_mem DstMem, pi_buff_rect_offset SrcOrigin,
742  pi_buff_rect_offset DstOrigin, pi_buff_rect_region Region,
743  size_t SrcRowPitch, size_t SrcSlicePitch, size_t DstRowPitch,
744  size_t DstSlicePitch, pi_uint32 NumEventsInWaitList,
745  const pi_event *EventWaitList, pi_event *Event) {
746 
748  Queue, SrcMem, DstMem, SrcOrigin, DstOrigin, Region, SrcRowPitch,
749  SrcSlicePitch, DstRowPitch, DstSlicePitch, NumEventsInWaitList,
750  EventWaitList, Event);
751 }
752 
754  const void *Pattern, size_t PatternSize,
755  size_t Offset, size_t Size,
756  pi_uint32 NumEventsInWaitList,
757  const pi_event *EventWaitList,
758  pi_event *Event) {
759 
760  return pi2ur::piEnqueueMemBufferFill(Queue, Buffer, Pattern, PatternSize,
761  Offset, Size, NumEventsInWaitList,
762  EventWaitList, Event);
763 }
764 
766  pi_map_flags MapFlags, size_t Offset,
767  size_t Size, pi_uint32 NumEventsInWaitList,
768  const pi_event *EventWaitList,
769  pi_event *OutEvent, void **RetMap) {
770 
771  return pi2ur::piEnqueueMemBufferMap(Queue, Mem, BlockingMap, MapFlags, Offset,
772  Size, NumEventsInWaitList, EventWaitList,
773  OutEvent, RetMap);
774 }
775 
776 pi_result piEnqueueMemUnmap(pi_queue Queue, pi_mem Mem, void *MappedPtr,
777  pi_uint32 NumEventsInWaitList,
778  const pi_event *EventWaitList, pi_event *OutEvent) {
779 
780  return pi2ur::piEnqueueMemUnmap(Queue, Mem, MappedPtr, NumEventsInWaitList,
781  EventWaitList, OutEvent);
782 }
783 
785  size_t ParamValueSize, void *ParamValue,
786  size_t *ParamValueSizeRet) {
787 
788  return pi2ur::piMemImageGetInfo(Image, ParamName, ParamValueSize, ParamValue,
789  ParamValueSizeRet);
790 }
791 
793  pi_bool BlockingRead, pi_image_offset Origin,
794  pi_image_region Region, size_t RowPitch,
795  size_t SlicePitch, void *Ptr,
796  pi_uint32 NumEventsInWaitList,
797  const pi_event *EventWaitList,
798  pi_event *Event) {
800  Queue, Image, BlockingRead, Origin, Region, RowPitch, SlicePitch, Ptr,
801  NumEventsInWaitList, EventWaitList, Event);
802 }
803 
805  pi_bool BlockingWrite, pi_image_offset Origin,
806  pi_image_region Region, size_t InputRowPitch,
807  size_t InputSlicePitch, const void *Ptr,
808  pi_uint32 NumEventsInWaitList,
809  const pi_event *EventWaitList,
810  pi_event *Event) {
811 
813  Queue, Image, BlockingWrite, Origin, Region, InputRowPitch,
814  InputSlicePitch, Ptr, NumEventsInWaitList, EventWaitList, Event);
815 }
816 
817 pi_result
818 piEnqueueMemImageCopy(pi_queue Queue, pi_mem SrcImage, pi_mem DstImage,
819  pi_image_offset SrcOrigin, pi_image_offset DstOrigin,
820  pi_image_region Region, pi_uint32 NumEventsInWaitList,
821  const pi_event *EventWaitList, pi_event *Event) {
822  return pi2ur::piEnqueueMemImageCopy(Queue, SrcImage, DstImage, SrcOrigin,
823  DstOrigin, Region, NumEventsInWaitList,
824  EventWaitList, Event);
825 }
826 
828  const void *FillColor, const size_t *Origin,
829  const size_t *Region,
830  pi_uint32 NumEventsInWaitList,
831  const pi_event *EventWaitList,
832  pi_event *Event) {
833 
834  return pi2ur::piEnqueueMemImageFill(Queue, Image, FillColor, Origin, Region,
835  NumEventsInWaitList, EventWaitList,
836  Event);
837 }
838 
840  pi_buffer_create_type BufferCreateType,
841  void *BufferCreateInfo, pi_mem *RetMem) {
842 
843  return pi2ur::piMemBufferPartition(Buffer, Flags, BufferCreateType,
844  BufferCreateInfo, RetMem);
845 }
846 
848  const char *FunctionName,
849  pi_uint64 *FunctionPointerRet) {
850 
851  return pi2ur::piextGetDeviceFunctionPointer(Device, Program, FunctionName,
852  FunctionPointerRet);
853 }
854 
856  const char *GlobalVariableName,
857  size_t *GlobalVariableSize,
858  void **GlobalVariablePointerRet) {
860  Device, Program, GlobalVariableName, GlobalVariableSize,
861  GlobalVariablePointerRet);
862 }
863 
864 pi_result piextUSMDeviceAlloc(void **ResultPtr, pi_context Context,
865  pi_device Device,
866  pi_usm_mem_properties *Properties, size_t Size,
868 
869  return pi2ur::piextUSMDeviceAlloc(ResultPtr, Context, Device, Properties,
870  Size, Alignment);
871 }
872 
873 pi_result piextUSMSharedAlloc(void **ResultPtr, pi_context Context,
874  pi_device Device,
875  pi_usm_mem_properties *Properties, size_t Size,
877 
878  return pi2ur::piextUSMSharedAlloc(ResultPtr, Context, Device, Properties,
879  Size, Alignment);
880 }
881 
883  void **ResultPtr, size_t *ResultPitch, pi_context Context, pi_device Device,
884  pi_usm_mem_properties *Properties, size_t WidthInBytes, size_t Height,
885  unsigned int ElementSizeBytes) {
886  return pi2ur::piextUSMPitchedAlloc(ResultPtr, ResultPitch, Context, Device,
887  Properties, WidthInBytes, Height,
888  ElementSizeBytes);
889 }
890 
891 pi_result piextUSMHostAlloc(void **ResultPtr, pi_context Context,
892  pi_usm_mem_properties *Properties, size_t Size,
894  return pi2ur::piextUSMHostAlloc(ResultPtr, Context, Properties, Size,
895  Alignment);
896 }
897 
898 pi_result piextUSMFree(pi_context Context, void *Ptr) {
899 
900  return pi2ur::piextUSMFree(Context, Ptr);
901 }
902 
904  size_t ArgSize, const void *ArgValue) {
905  return pi2ur::piextKernelSetArgPointer(Kernel, ArgIndex, ArgSize, ArgValue);
906 }
907 
909  size_t Count, pi_uint32 NumEventsInWaitlist,
910  const pi_event *EventsWaitlist,
911  pi_event *Event) {
913  Queue, Ptr, Value, Count, NumEventsInWaitlist, EventsWaitlist, Event);
914 }
915 
916 pi_result piextUSMEnqueueMemcpy(pi_queue Queue, pi_bool Blocking, void *DstPtr,
917  const void *SrcPtr, size_t Size,
918  pi_uint32 NumEventsInWaitlist,
919  const pi_event *EventsWaitlist,
920  pi_event *Event) {
921 
922  return pi2ur::piextUSMEnqueueMemcpy(Queue, Blocking, DstPtr, SrcPtr, Size,
923  NumEventsInWaitlist, EventsWaitlist,
924  Event);
925 }
926 
927 pi_result piextUSMEnqueuePrefetch(pi_queue Queue, const void *Ptr, size_t Size,
929  pi_uint32 NumEventsInWaitList,
930  const pi_event *EventWaitList,
931  pi_event *OutEvent) {
932 
934  Queue, Ptr, Size, Flags, NumEventsInWaitList, EventWaitList, OutEvent);
935 }
936 
938  size_t Length, pi_mem_advice Advice,
939  pi_event *OutEvent) {
940 
941  return pi2ur::piextUSMEnqueueMemAdvise(Queue, Ptr, Length, Advice, OutEvent);
942 }
943 
944 __SYCL_EXPORT pi_result piextUSMEnqueueFill2D(pi_queue Queue, void *Ptr,
945  size_t Pitch, size_t PatternSize,
946  const void *Pattern, size_t Width,
947  size_t Height,
948  pi_uint32 NumEventsWaitList,
949  const pi_event *EventsWaitList,
950  pi_event *Event) {
951 
952  return pi2ur::piextUSMEnqueueFill2D(Queue, Ptr, Pitch, PatternSize, Pattern,
953  Width, Height, NumEventsWaitList,
954  EventsWaitList, Event);
955 }
956 
957 __SYCL_EXPORT pi_result piextUSMEnqueueMemset2D(pi_queue Queue, void *Ptr,
958  size_t Pitch, int Value,
959  size_t Width, size_t Height,
960  pi_uint32 NumEventsWaitList,
961  const pi_event *EventsWaitlist,
962  pi_event *Event) {
963 
964  return pi2ur::piextUSMEnqueueMemset2D(Queue, Ptr, Pitch, Value, Width, Height,
965  NumEventsWaitList, EventsWaitlist,
966  Event);
967 }
968 
970  pi_queue Queue, pi_bool Blocking, void *DstPtr, size_t DstPitch,
971  const void *SrcPtr, size_t SrcPitch, size_t Width, size_t Height,
972  pi_uint32 NumEventsInWaitlist, const pi_event *EventWaitlist,
973  pi_event *Event) {
974 
976  Queue, Blocking, DstPtr, DstPitch, SrcPtr, SrcPitch, Width, Height,
977  NumEventsInWaitlist, EventWaitlist, Event);
978 }
979 
981  pi_mem_alloc_info ParamName,
982  size_t ParamValueSize, void *ParamValue,
983  size_t *ParamValueSizeRet) {
984  return pi2ur::piextUSMGetMemAllocInfo(Context, Ptr, ParamName, ParamValueSize,
985  ParamValue, ParamValueSizeRet);
986 }
987 
988 pi_result piextUSMImport(const void *HostPtr, size_t Size, pi_context Context) {
989  return pi2ur::piextUSMImport(HostPtr, Size, Context);
990 }
991 
992 pi_result piextUSMRelease(const void *HostPtr, pi_context Context) {
993  return pi2ur::piextUSMRelease(HostPtr, Context);
994 }
995 
997  pi_queue Queue, pi_program Program, const char *Name, pi_bool BlockingWrite,
998  size_t Count, size_t Offset, const void *Src, pi_uint32 NumEventsInWaitList,
999  const pi_event *EventsWaitList, pi_event *Event) {
1001  Queue, Program, Name, BlockingWrite, Count, Offset, Src,
1002  NumEventsInWaitList, EventsWaitList, Event);
1003 }
1004 
1006  pi_queue Queue, pi_program Program, const char *Name, pi_bool BlockingRead,
1007  size_t Count, size_t Offset, void *Dst, pi_uint32 NumEventsInWaitList,
1008  const pi_event *EventsWaitList, pi_event *Event) {
1009 
1011  Queue, Program, Name, BlockingRead, Count, Offset, Dst,
1012  NumEventsInWaitList, EventsWaitList, Event);
1013 
1014  return PI_SUCCESS;
1015 }
1016 
1018  const char *PipeSymbol, pi_bool Blocking,
1019  void *Ptr, size_t Size,
1020  pi_uint32 NumEventsInWaitList,
1021  const pi_event *EventsWaitList,
1022  pi_event *Event) {
1023  (void)Queue;
1024  (void)Program;
1025  (void)PipeSymbol;
1026  (void)Blocking;
1027  (void)Ptr;
1028  (void)Size;
1029  (void)NumEventsInWaitList;
1030  (void)EventsWaitList;
1031  (void)Event;
1032 
1033  PI_ASSERT(Queue, PI_ERROR_INVALID_QUEUE);
1034 
1035  die("piextEnqueueReadHostPipe: not implemented");
1036  return {};
1037 }
1038 
1040  const char *PipeSymbol, pi_bool Blocking,
1041  void *Ptr, size_t Size,
1042  pi_uint32 NumEventsInWaitList,
1043  const pi_event *EventsWaitList,
1044  pi_event *Event) {
1045  (void)Queue;
1046  (void)Program;
1047  (void)PipeSymbol;
1048  (void)Blocking;
1049  (void)Ptr;
1050  (void)Size;
1051  (void)NumEventsInWaitList;
1052  (void)EventsWaitList;
1053  (void)Event;
1054 
1055  PI_ASSERT(Queue, PI_ERROR_INVALID_QUEUE);
1056 
1057  die("piextEnqueueWriteHostPipe: not implemented");
1058  return {};
1059 }
1060 
1062  size_t ParamValueSize, const void *ParamValue) {
1063 
1064  return pi2ur::piKernelSetExecInfo(Kernel, ParamName, ParamValueSize,
1065  ParamValue);
1066 }
1067 
1069  pi_uint32 SpecID, size_t Size,
1070  const void *SpecValue) {
1071  return pi2ur::piextProgramSetSpecializationConstant(Prog, SpecID, Size,
1072  SpecValue);
1073 }
1074 
1075 // Command buffer extension
1077  const pi_ext_command_buffer_desc *Desc,
1078  pi_ext_command_buffer *RetCommandBuffer) {
1079  return pi2ur::piextCommandBufferCreate(Context, Device, Desc,
1080  RetCommandBuffer);
1081 }
1082 
1084  return pi2ur::piextCommandBufferRetain(CommandBuffer);
1085 }
1086 
1088  return pi2ur::piextCommandBufferRelease(CommandBuffer);
1089 }
1090 
1092  return pi2ur::piextCommandBufferFinalize(CommandBuffer);
1093 }
1094 
1096  pi_ext_command_buffer CommandBuffer, pi_kernel Kernel, pi_uint32 WorkDim,
1097  const size_t *GlobalWorkOffset, const size_t *GlobalWorkSize,
1098  const size_t *LocalWorkSize, pi_uint32 NumSyncPointsInWaitList,
1099  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint,
1100  pi_ext_command_buffer_command *Command) {
1102  CommandBuffer, Kernel, WorkDim, GlobalWorkOffset, GlobalWorkSize,
1103  LocalWorkSize, NumSyncPointsInWaitList, SyncPointWaitList, SyncPoint,
1104  Command);
1105 }
1106 
1108  pi_ext_command_buffer CommandBuffer, void *DstPtr, const void *SrcPtr,
1109  size_t Size, pi_uint32 NumSyncPointsInWaitList,
1110  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1111  return pi2ur::piextCommandBufferMemcpyUSM(CommandBuffer, DstPtr, SrcPtr, Size,
1112  NumSyncPointsInWaitList,
1113  SyncPointWaitList, SyncPoint);
1114 }
1115 
1117  pi_ext_command_buffer CommandBuffer, pi_mem SrcMem, pi_mem DstMem,
1118  size_t SrcOffset, size_t DstOffset, size_t Size,
1119  pi_uint32 NumSyncPointsInWaitList,
1120  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1122  CommandBuffer, SrcMem, DstMem, SrcOffset, DstOffset, Size,
1123  NumSyncPointsInWaitList, SyncPointWaitList, SyncPoint);
1124 }
1125 
1127  pi_ext_command_buffer CommandBuffer, pi_mem SrcMem, pi_mem DstMem,
1128  pi_buff_rect_offset SrcOrigin, pi_buff_rect_offset DstOrigin,
1129  pi_buff_rect_region Region, size_t SrcRowPitch, size_t SrcSlicePitch,
1130  size_t DstRowPitch, size_t DstSlicePitch, pi_uint32 NumSyncPointsInWaitList,
1131  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1133  CommandBuffer, SrcMem, DstMem, SrcOrigin, DstOrigin, Region, SrcRowPitch,
1134  SrcSlicePitch, DstRowPitch, DstSlicePitch, NumSyncPointsInWaitList,
1135  SyncPointWaitList, SyncPoint);
1136 }
1137 
1139  pi_ext_command_buffer CommandBuffer, pi_mem Buffer, size_t Offset,
1140  size_t Size, void *Dst, pi_uint32 NumSyncPointsInWaitList,
1141  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1143  CommandBuffer, Buffer, Offset, Size, Dst, NumSyncPointsInWaitList,
1144  SyncPointWaitList, SyncPoint);
1145 }
1146 
1148  pi_ext_command_buffer CommandBuffer, pi_mem Buffer,
1149  pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset,
1150  pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch,
1151  size_t HostRowPitch, size_t HostSlicePitch, void *Ptr,
1152  pi_uint32 NumSyncPointsInWaitList,
1153  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1155  CommandBuffer, Buffer, BufferOffset, HostOffset, Region, BufferRowPitch,
1156  BufferSlicePitch, HostRowPitch, HostSlicePitch, Ptr,
1157  NumSyncPointsInWaitList, SyncPointWaitList, SyncPoint);
1158 }
1159 
1161  pi_ext_command_buffer CommandBuffer, pi_mem Buffer, size_t Offset,
1162  size_t Size, const void *Ptr, pi_uint32 NumSyncPointsInWaitList,
1163  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1165  CommandBuffer, Buffer, Offset, Size, Ptr, NumSyncPointsInWaitList,
1166  SyncPointWaitList, SyncPoint);
1167 }
1168 
1170  pi_ext_command_buffer CommandBuffer, pi_mem Buffer,
1171  pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset,
1172  pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch,
1173  size_t HostRowPitch, size_t HostSlicePitch, const void *Ptr,
1174  pi_uint32 NumSyncPointsInWaitList,
1175  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1177  CommandBuffer, Buffer, BufferOffset, HostOffset, Region, BufferRowPitch,
1178  BufferSlicePitch, HostRowPitch, HostSlicePitch, Ptr,
1179  NumSyncPointsInWaitList, SyncPointWaitList, SyncPoint);
1180 }
1181 
1183  pi_queue Queue,
1184  pi_uint32 NumEventsInWaitList,
1185  const pi_event *EventWaitList,
1186  pi_event *Event) {
1188  CommandBuffer, Queue, NumEventsInWaitList, EventWaitList, Event);
1189 }
1190 
1194  return pi2ur::piextCommandBufferUpdateKernelLaunch(Command, Desc);
1195 }
1196 
1197 pi_result
1200 }
1201 
1202 pi_result
1205 }
1206 
1207 pi_result piextPluginGetOpaqueData(void *opaque_data_param,
1208  void **opaque_data_return) {
1209  return pi2ur::piextPluginGetOpaqueData(opaque_data_param, opaque_data_return);
1210 }
1211 
1212 pi_result piTearDown(void *PluginParameter) {
1213  return pi2ur::piTearDown(PluginParameter);
1214 }
1215 
1216 pi_result piGetDeviceAndHostTimer(pi_device Device, uint64_t *DeviceTime,
1217  uint64_t *HostTime) {
1218  return pi2ur::piGetDeviceAndHostTimer(Device, DeviceTime, HostTime);
1219 }
1220 
1222  pi_device peer_device) {
1223 
1224  return pi2ur::piextEnablePeerAccess(command_device, peer_device);
1225 }
1226 
1228  pi_device peer_device) {
1229 
1230  return pi2ur::piextDisablePeerAccess(command_device, peer_device);
1231 }
1232 
1234  pi_device peer_device, pi_peer_attr attr,
1235  size_t ParamValueSize, void *ParamValue,
1236  size_t *ParamValueSizeRet) {
1237 
1238  return pi2ur::piextPeerAccessGetInfo(command_device, peer_device, attr,
1239  ParamValueSize, ParamValue,
1240  ParamValueSizeRet);
1241 }
1242 
1244  pi_ext_command_buffer CommandBuffer, pi_mem Buffer, const void *Pattern,
1245  size_t PatternSize, size_t Offset, size_t Size,
1246  pi_uint32 NumSyncPointsInWaitList,
1247  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1249  CommandBuffer, Buffer, Pattern, PatternSize, Offset, Size,
1250  NumSyncPointsInWaitList, SyncPointWaitList, SyncPoint);
1251 }
1252 
1254  void *Ptr, const void *Pattern,
1255  size_t PatternSize, size_t Size,
1256  pi_uint32 NumSyncPointsInWaitList,
1257  const pi_ext_sync_point *SyncPointWaitList,
1258  pi_ext_sync_point *SyncPoint) {
1260  CommandBuffer, Ptr, Pattern, PatternSize, Size, NumSyncPointsInWaitList,
1261  SyncPointWaitList, SyncPoint);
1262 }
1263 
1265  pi_ext_command_buffer CommandBuffer, const void *Ptr, size_t Size,
1266  pi_usm_migration_flags Flags, pi_uint32 NumSyncPointsInWaitList,
1267  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1268  return pi2ur::piextCommandBufferPrefetchUSM(CommandBuffer, Ptr, Size, Flags,
1269  NumSyncPointsInWaitList,
1270  SyncPointWaitList, SyncPoint);
1271 }
1272 
1274  pi_ext_command_buffer CommandBuffer, const void *Ptr, size_t Length,
1275  pi_mem_advice Advice, pi_uint32 NumSyncPointsInWaitList,
1276  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1277  return pi2ur::piextCommandBufferAdviseUSM(CommandBuffer, Ptr, Length, Advice,
1278  NumSyncPointsInWaitList,
1279  SyncPointWaitList, SyncPoint);
1280 }
1281 
1284  const size_t *, const size_t *,
1285  const size_t *, pi_uint32 ,
1286  const pi_event *, pi_event *) {
1287  return PI_ERROR_UNSUPPORTED_FEATURE;
1288 }
1289 
1291  pi_kernel , size_t , size_t ,
1292  pi_uint32 *) {
1293  return PI_ERROR_UNSUPPORTED_FEATURE;
1294 }
1295 
1296 // Initialize function table with stubs.
1297 #define _PI_API(api) \
1298  (PluginInit->PiFunctionTable).api = (decltype(&::api))(&api);
1299 #else
1300 // Initialize function table directly with pi2ur functions.
1301 #define _PI_API(api) \
1302  (PluginInit->PiFunctionTable).api = (decltype(&::api))(&pi2ur::api);
1303 #endif
1304 
1306 
1307 #include <sycl/detail/pi.def>
1308 #undef _PI_API
1309 
1310  return PI_SUCCESS;
1311 }
1312 }
pi_result piextUSMEnqueueMemset(pi_queue Queue, void *Ptr, pi_int32 Value, size_t Count, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3892
pi_result piEnqueueMemImageFill(pi_queue Queue, pi_mem Image, const void *FillColor, const size_t *Origin, const size_t *Region, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *Event)
Definition: pi2ur.hpp:2159
pi_result piextCommandBufferMemBufferWriteRect(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset, pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch, size_t HostRowPitch, size_t HostSlicePitch, const void *Ptr, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4686
pi_result piProgramGetInfo(pi_program Program, pi_program_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:1966
pi_result piextUSMEnqueueFill2D(pi_queue Queue, void *Ptr, size_t Pitch, size_t PatternSize, const void *Pattern, size_t Width, size_t Height, pi_uint32 NumEventsWaitList, const pi_event *EventsWaitList, pi_event *Event)
USM 2D Fill API.
Definition: pi2ur.hpp:3516
pi_result piKernelSetExecInfo(pi_kernel Kernel, pi_kernel_exec_info ParamName, size_t ParamValueSize, const void *ParamValue)
Definition: pi2ur.hpp:2328
pi_result piPlatformGetInfo(pi_platform Platform, pi_platform_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:878
pi_result piextUSMEnqueuePrefetch(pi_queue Queue, const void *Ptr, size_t Size, pi_usm_migration_flags Flags, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Hint to migrate memory to the device.
Definition: pi2ur.hpp:3417
pi_result piextUSMGetMemAllocInfo(pi_context Context, const void *Ptr, pi_mem_alloc_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:3554
pi_result piextSignalExternalSemaphore(pi_queue Queue, pi_interop_semaphore_handle SemHandle, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi2ur.hpp:5489
pi_result piKernelGetGroupInfo(pi_kernel Kernel, pi_device Device, pi_kernel_group_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:2461
pi_result piQueueGetInfo(pi_queue Queue, pi_queue_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:1823
pi_result piMemRetain(pi_mem Mem)
Definition: pi2ur.hpp:3388
pi_result piPlatformsGet(pi_uint32 NumEntries, pi_platform *Platforms, pi_uint32 *NumPlatforms)
Definition: pi2ur.hpp:825
pi_result piEnqueueEventsWait(pi_queue Queue, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:4130
pi_result piextDestroyExternalSemaphore(pi_context Context, pi_device Device, pi_interop_semaphore_handle SemHandle)
Definition: pi2ur.hpp:5452
pi_result piEnqueueMemUnmap(pi_queue Queue, pi_mem Mem, void *MappedPtr, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3848
pi_result piextDeviceGetNativeHandle(pi_device Device, pi_native_handle *NativeHandle)
Definition: pi2ur.hpp:1336
pi_result piextCommandBufferUpdateKernelLaunch(pi_ext_command_buffer_command command, pi_ext_command_buffer_update_kernel_launch_desc *desc)
Definition: pi2ur.hpp:4850
pi_result piProgramRelease(pi_program Program)
Definition: pi2ur.hpp:2539
pi_result piextCommandBufferPrefetchUSM(pi_ext_command_buffer CommandBuffer, const void *Ptr, size_t Size, pi_usm_migration_flags Flags, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4766
pi_result piEnqueueMemImageWrite(pi_queue Queue, pi_mem Image, pi_bool BlockingWrite, pi_image_offset Origin, pi_image_region Region, size_t InputRowPitch, size_t InputSlicePitch, const void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3760
pi_result piPluginGetBackendOption(pi_platform Platform, const char *FrontendOption, const char **PlatformOption)
Definition: pi2ur.hpp:938
pi_result piextCommandBufferNDRangeKernel(pi_ext_command_buffer CommandBuffer, pi_kernel Kernel, pi_uint32 WorkDim, const size_t *GlobalWorkOffset, const size_t *GlobalWorkSize, const size_t *LocalWorkSize, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint, pi_ext_command_buffer_command *Command)
Definition: pi2ur.hpp:4558
pi_result piextPluginGetOpaqueData(void *opaque_data_param, void **opaque_data_return)
Definition: pi2ur.hpp:931
pi_result piKernelCreate(pi_program Program, const char *KernelName, pi_kernel *RetKernel)
Definition: pi2ur.hpp:2142
pi_result piextUSMImport(const void *HostPtr, size_t Size, pi_context Context)
Definition: pi2ur.hpp:3596
pi_result piEnqueueKernelLaunch(pi_queue Queue, pi_kernel Kernel, pi_uint32 WorkDim, const size_t *GlobalWorkOffset, const size_t *GlobalWorkSize, const size_t *LocalWorkSize, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3711
pi_result piEventSetStatus(pi_event Event, pi_int32 ExecutionStatus)
Definition: pi2ur.hpp:4340
pi_result piEventSetCallback(pi_event Event, pi_int32 CommandExecCallbackType, void(*PFnNotify)(pi_event Event, pi_int32 EventCommandStatus, void *UserData), void *UserData)
Definition: pi2ur.hpp:4327
pi_result piSamplerCreate(pi_context Context, const pi_sampler_properties *SamplerProperties, pi_sampler *RetSampler)
Definition: pi2ur.hpp:4370
pi_result piSamplerGetInfo(pi_sampler Sampler, pi_sampler_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:4431
pi_result piextMemSampledImageCreate(pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_sampler Sampler, pi_mem *RetMem, pi_image_handle *RetHandle)
Definition: pi2ur.hpp:5034
pi_result piextMemUnsampledImageHandleDestroy(pi_context Context, pi_device Device, pi_image_handle Handle)
Definition: pi2ur.hpp:5280
pi_result piextKernelSetArgSampler(pi_kernel Kernel, pi_uint32 ArgIndex, const pi_sampler *ArgValue)
Definition: pi2ur.hpp:4469
pi_result piextQueueCreateWithNativeHandle(pi_native_handle NativeHandle, int32_t NativeHandleDesc, pi_context Context, pi_device Device, bool OwnNativeHandle, pi_queue_properties *Properties, pi_queue *Queue)
Definition: pi2ur.hpp:1736
pi_result piMemImageGetInfo(pi_mem Image, pi_image_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:3619
pi_result piextCommandBufferMemBufferWrite(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, size_t Offset, size_t Size, const void *Ptr, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4717
pi_result piextMemMapExternalArray(pi_context Context, pi_device Device, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_interop_mem_handle MemHandle, pi_image_mem_handle *RetMem)
Definition: pi2ur.hpp:5385
pi_result piProgramCreateWithBinary(pi_context Context, pi_uint32 NumDevices, const pi_device *DeviceList, const size_t *Lengths, const unsigned char **Binaries, size_t NumMetadataEntries, const pi_device_binary_property *Metadata, pi_int32 *BinaryStatus, pi_program *Program)
Definition: pi2ur.hpp:1920
pi_result piextProgramGetNativeHandle(pi_program Program, pi_native_handle *NativeHandle)
Definition: pi2ur.hpp:2373
pi_result piKernelGetInfo(pi_kernel Kernel, pi_kernel_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:2409
pi_result piextEventGetNativeHandle(pi_event Event, pi_native_handle *NativeHandle)
Definition: pi2ur.hpp:4235
pi_result piEnqueueEventsWaitWithBarrier(pi_queue Queue, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:4111
pi_result piextMemMipmapFree(pi_context Context, pi_device Device, pi_image_mem_handle MemoryHandle)
Definition: pi2ur.hpp:5205
pi_result piextPlatformGetNativeHandle(pi_platform Platform, pi_native_handle *NativeHandle)
Definition: pi2ur.hpp:838
pi_result piSamplerRelease(pi_sampler Sampler)
Definition: pi2ur.hpp:4491
pi_result piMemBufferCreate(pi_context Context, pi_mem_flags Flags, size_t Size, void *HostPtr, pi_mem *RetMem, const pi_mem_properties *properties)
Definition: pi2ur.hpp:2735
pi_result piEnqueueMemBufferWrite(pi_queue Queue, pi_mem Buffer, pi_bool BlockingWrite, size_t Offset, size_t Size, const void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:4029
pi_result piextCommandBufferMemBufferReadRect(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset, pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch, size_t HostRowPitch, size_t HostSlicePitch, void *Ptr, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4639
pi_result piDevicesGet(pi_platform Platform, pi_device_type DeviceType, pi_uint32 NumEntries, pi_device *Devices, pi_uint32 *NumDevices)
Definition: pi2ur.hpp:954
pi_result piextEnqueueDeviceGlobalVariableWrite(pi_queue Queue, pi_program Program, const char *Name, pi_bool BlockingWrite, size_t Count, size_t Offset, const void *Src, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
API for writing data from host to a device global variable.
Definition: pi2ur.hpp:2676
pi_result piextEventCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, bool OwnNativeHandle, pi_event *Event)
Definition: pi2ur.hpp:4303
pi_result piEventGetProfilingInfo(pi_event Event, pi_profiling_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:4250
pi_result piKernelRetain(pi_kernel Kernel)
Definition: pi2ur.hpp:2517
pi_result piextKernelSetArgMemObj(pi_kernel Kernel, pi_uint32 ArgIndex, const pi_mem_obj_property *ArgProperties, const pi_mem *ArgValue)
Definition: pi2ur.hpp:2215
pi_result piextQueueGetNativeHandle(pi_queue Queue, pi_native_handle *NativeHandle, int32_t *NativeHandleDesc)
Definition: pi2ur.hpp:1782
pi_result piextBindlessImageSamplerCreate(pi_context Context, const pi_sampler_properties *SamplerProperties, float MinMipmapLevelClamp, float MaxMipmapLevelClamp, float MaxAnisotropy, pi_sampler *RetSampler)
Definition: pi2ur.hpp:5063
pi_result piextUSMDeviceAlloc(void **ResultPtr, pi_context Context, pi_device Device, pi_usm_mem_properties *Properties, size_t Size, pi_uint32 Alignment)
Definition: pi2ur.hpp:3262
pi_result piProgramGetBuildInfo(pi_program Program, pi_device Device, pi_program_build_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:2596
pi_result piQueueFlush(pi_queue Queue)
Definition: pi2ur.hpp:1884
pi_result piextKernelSetArgPointer(pi_kernel Kernel, pi_uint32 ArgIndex, size_t, const void *ArgValue)
Definition: pi2ur.hpp:2551
pi_result piProgramLink(pi_context Context, pi_uint32 NumDevices, const pi_device *DeviceList, const char *Options, pi_uint32 NumInputPrograms, const pi_program *InputPrograms, void(*PFnNotify)(pi_program Program, void *UserData), void *UserData, pi_program *RetProgram)
Definition: pi2ur.hpp:2026
pi_result piSamplerRetain(pi_sampler Sampler)
Definition: pi2ur.hpp:4480
pi_result piextDeviceSelectBinary(pi_device Device, pi_device_binary *Binaries, pi_uint32 NumBinaries, pi_uint32 *SelectedBinaryInd)
Definition: pi2ur.hpp:1458
pi_result piextContextSetExtendedDeleter(pi_context Context, pi_context_extended_deleter Function, void *UserData)
Definition: pi2ur.hpp:1537
pi_result piextCommandBufferMemBufferRead(pi_ext_command_buffer CommandBuffer, pi_mem Src, size_t Offset, size_t Size, void *Dst, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4669
pi_result piextGetDeviceFunctionPointer(pi_device Device, pi_program Program, const char *FunctionName, pi_uint64 *FunctionPointerRet)
Definition: pi2ur.hpp:2178
pi_result piEnqueueMemBufferCopyRect(pi_queue Queue, pi_mem SrcMem, pi_mem DstMem, pi_buff_rect_offset SrcOrigin, pi_buff_rect_offset DstOrigin, pi_buff_rect_region Region, size_t SrcRowPitch, size_t SrcSlicePitch, size_t DstRowPitch, size_t DstSlicePitch, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3916
pi_result piextMemMipmapGetLevel(pi_context Context, pi_device Device, pi_image_mem_handle MipMem, unsigned int Level, pi_image_mem_handle *RetMem)
Definition: pi2ur.hpp:5170
pi_result piGetDeviceAndHostTimer(pi_device Device, uint64_t *DeviceTime, uint64_t *HostTime)
Definition: pi2ur.hpp:1450
pi_result piEventGetInfo(pi_event Event, pi_event_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:4206
pi_result piMemBufferPartition(pi_mem Buffer, pi_mem_flags Flags, pi_buffer_create_type BufferCreateType, void *BufferCreateInfo, pi_mem *RetMem)
Definition: pi2ur.hpp:3148
pi_result piEnqueueMemBufferCopy(pi_queue Queue, pi_mem SrcMem, pi_mem DstMem, size_t SrcOffset, size_t DstOffset, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3950
pi_result piContextCreate(const pi_context_properties *Properties, pi_uint32 NumDevices, const pi_device *Devices, void(*PFnNotify)(const char *ErrInfo, const void *PrivateInfo, size_t CB, void *UserData), void *UserData, pi_context *RetContext)
Definition: pi2ur.hpp:1517
pi_result piextUSMPitchedAlloc(void **ResultPtr, size_t *ResultPitch, pi_context Context, pi_device Device, pi_usm_mem_properties *Properties, size_t WidthInBytes, size_t Height, unsigned int ElementSizeBytes)
Definition: pi2ur.hpp:3296
pi_result piextUSMRelease(const void *HostPtr, pi_context Context)
Definition: pi2ur.hpp:3608
pi_result piEventRelease(pi_event Event)
Definition: pi2ur.hpp:4356
pi_result piKernelGetSubGroupInfo(pi_kernel Kernel, pi_device Device, pi_kernel_sub_group_info ParamName, size_t InputValueSize, const void *InputValue, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:2559
pi_result piQueueRetain(pi_queue Queue)
Definition: pi2ur.hpp:1873
pi_result piextCommandBufferReleaseCommand(pi_ext_command_buffer_command command)
Definition: pi2ur.hpp:4916
pi_result piDeviceRelease(pi_device Device)
Definition: pi2ur.hpp:992
pi_result piContextRetain(pi_context Context)
Definition: pi2ur.hpp:1640
pi_result piextMemImageAllocate(pi_context Context, pi_device Device, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_image_mem_handle *RetMem)
Definition: pi2ur.hpp:4984
pi_result piextUSMHostAlloc(void **ResultPtr, pi_context Context, pi_usm_mem_properties *Properties, size_t Size, pi_uint32 Alignment)
Definition: pi2ur.hpp:2810
pi_result piextCommandBufferRetain(pi_ext_command_buffer CommandBuffer)
Definition: pi2ur.hpp:4529
pi_result piDeviceGetInfo(pi_device Device, pi_device_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:1017
pi_result piextCommandBufferAdviseUSM(pi_ext_command_buffer CommandBuffer, const void *Ptr, size_t Length, pi_mem_advice Advice, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4787
pi_result piextKernelCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, pi_program Program, bool OwnNativeHandle, pi_kernel *Kernel)
Definition: pi2ur.hpp:2296
pi_result piextMemSampledImageHandleDestroy(pi_context Context, pi_device Device, pi_image_handle Handle)
Definition: pi2ur.hpp:5296
pi_result piEnqueueMemBufferFill(pi_queue Queue, pi_mem Buffer, const void *Pattern, size_t PatternSize, size_t Offset, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3870
pi_result piextDeviceCreateWithNativeHandle(pi_native_handle NativeHandle, pi_platform Platform, pi_device *Device)
Definition: pi2ur.hpp:1350
pi_result piextUSMEnqueueMemcpy2D(pi_queue Queue, pi_bool Blocking, void *DstPtr, size_t DstPitch, const void *SrcPtr, size_t SrcPitch, size_t Width, size_t Height, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
USM 2D Memcpy API.
Definition: pi2ur.hpp:3678
pi_result piEnqueueMemBufferMap(pi_queue Queue, pi_mem Mem, pi_bool BlockingMap, pi_map_flags MapFlags, size_t Offset, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent, void **RetMap)
Definition: pi2ur.hpp:3815
pi_result piextCommandBufferRetainCommand(pi_ext_command_buffer_command command)
Definition: pi2ur.hpp:4908
pi_result piextEnqueueCommandBuffer(pi_ext_command_buffer CommandBuffer, pi_queue Queue, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi2ur.hpp:4830
pi_result piextCommandBufferCreate(pi_context Context, pi_device Device, const pi_ext_command_buffer_desc *Desc, pi_ext_command_buffer *RetCommandBuffer)
Definition: pi2ur.hpp:4509
pi_result piextUSMEnqueueMemset2D(pi_queue Queue, void *Ptr, size_t Pitch, int Value, size_t Width, size_t Height, pi_uint32 NumEventsWaitList, const pi_event *EventsWaitList, pi_event *Event)
Definition: pi2ur.hpp:3535
pi_result piEnqueueMemImageCopy(pi_queue Queue, pi_mem SrcImage, pi_mem DstImage, pi_image_offset SrcOrigin, pi_image_offset DstOrigin, pi_image_region Region, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3210
pi_result piextMemImageCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, bool OwnNativeHandle, const pi_image_format *ImageFormat, const pi_image_desc *ImageDesc, pi_mem *RetImage)
Definition: pi2ur.hpp:3119
pi_result piextQueueCreate(pi_context Context, pi_device Device, pi_queue_properties *Properties, pi_queue *Queue)
Definition: pi2ur.hpp:1659
pi_result piextProgramCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, bool OwnNativeHandle, pi_program *Program)
Definition: pi2ur.hpp:2389
pi_result piextMemUnsampledImageCreate(pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_mem *RetMem, pi_image_handle *RetHandle)
Definition: pi2ur.hpp:5007
pi_result piextUSMFree(pi_context Context, void *Ptr)
Definition: pi2ur.hpp:3381
pi_result piextEnqueueDeviceGlobalVariableRead(pi_queue Queue, pi_program Program, const char *Name, pi_bool BlockingRead, size_t Count, size_t Offset, void *Dst, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
API reading data from a device global variable to host.
Definition: pi2ur.hpp:2708
pi_result piEventCreate(pi_context Context, pi_event *RetEvent)
Definition: pi2ur.hpp:4288
pi_result piextKernelGetNativeHandle(pi_kernel Kernel, pi_native_handle *NativeHandle)
Definition: pi2ur.hpp:2636
pi_result piextMemImageGetInfo(pi_image_mem_handle MemHandle, pi_image_info ParamName, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:5333
pi_result piQueueFinish(pi_queue Queue)
Definition: pi2ur.hpp:1812
pi_result piextCommandBufferMemBufferFill(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, const void *Pattern, size_t PatternSize, size_t Offset, size_t Size, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4735
pi_result piContextRelease(pi_context Context)
Definition: pi2ur.hpp:1648
pi_result piextPlatformCreateWithNativeHandle(pi_native_handle NativeHandle, pi_platform *Platform)
Definition: pi2ur.hpp:855
pi_result piextMemReleaseInterop(pi_context Context, pi_device Device, pi_interop_mem_handle ExtMem)
Definition: pi2ur.hpp:5410
pi_result piKernelSetArg(pi_kernel Kernel, pi_uint32 ArgIndex, size_t ArgSize, const void *ArgValue)
Definition: pi2ur.hpp:2270
pi_result piEventRetain(pi_event Event)
Definition: pi2ur.hpp:4347
pi_result piextContextGetNativeHandle(pi_context Context, pi_native_handle *NativeHandle)
Definition: pi2ur.hpp:1546
pi_result piMemRelease(pi_mem Mem)
Definition: pi2ur.hpp:3398
pi_result piextUSMEnqueueMemcpy(pi_queue Queue, pi_bool Blocking, void *DstPtr, const void *SrcPtr, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3975
pi_result piextCommandBufferFinalize(pi_ext_command_buffer CommandBuffer)
Definition: pi2ur.hpp:4549
pi_result piPluginGetLastError(char **Message)
Definition: pi2ur.hpp:1000
pi_result piEnqueueMemImageRead(pi_queue Queue, pi_mem Image, pi_bool BlockingRead, pi_image_offset Origin, pi_image_region Region, size_t RowPitch, size_t SlicePitch, void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3789
pi_result piKernelRelease(pi_kernel Kernel)
Definition: pi2ur.hpp:2528
pi_result piextMemImageFree(pi_context Context, pi_device Device, pi_image_mem_handle MemoryHandle)
Definition: pi2ur.hpp:5189
pi_result piextContextCreateWithNativeHandle(pi_native_handle NativeHandle, pi_uint32 NumDevices, const pi_device *Devices, bool OwnNativeHandle, pi_context *RetContext)
Definition: pi2ur.hpp:1557
pi_result piextPeerAccessGetInfo(pi_device command_device, pi_device peer_device, pi_peer_attr attr, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Definition: pi2ur.hpp:4950
pi_result piQueueRelease(pi_queue Queue)
Definition: pi2ur.hpp:1802
pi_result piextWaitExternalSemaphore(pi_queue Queue, pi_interop_semaphore_handle SemHandle, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi2ur.hpp:5469
pi_result piextCommandBufferRelease(pi_ext_command_buffer CommandBuffer)
Definition: pi2ur.hpp:4539
pi_result piContextGetInfo(pi_context Context, pi_context_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:1585
pi_result piextCommandBufferMemBufferCopy(pi_ext_command_buffer CommandBuffer, pi_mem SrcMem, pi_mem DstMem, size_t SrcOffset, size_t DstOffset, size_t Size, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4592
pi_result piextCommandBufferFillUSM(pi_ext_command_buffer CommandBuffer, void *Ptr, const void *Pattern, size_t PatternSize, size_t Size, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4752
pi_result piextMemGetNativeHandle(pi_mem Mem, pi_device Dev, pi_native_handle *NativeHandle)
Definition: pi2ur.hpp:3195
pi_result piextGetGlobalVariablePointer(pi_device Device, pi_program Program, const char *GlobalVariableName, size_t *GlobalVariableSize, void **GlobalVariablePointerRet)
Definition: pi2ur.hpp:2197
pi_result piTearDown(void *PluginParameter)
Definition: pi2ur.hpp:785
pi_result piextMemImportOpaqueFD(pi_context Context, pi_device Device, size_t Size, int FileDescriptor, pi_interop_mem_handle *RetHandle)
Definition: pi2ur.hpp:5360
pi_result piextDisablePeerAccess(pi_device command_device, pi_device peer_device)
Definition: pi2ur.hpp:4939
pi_result piextCommandBufferMemBufferCopyRect(pi_ext_command_buffer CommandBuffer, pi_mem SrcMem, pi_mem DstMem, pi_buff_rect_offset SrcOrigin, pi_buff_rect_offset DstOrigin, pi_buff_rect_region Region, size_t SrcRowPitch, size_t SrcSlicePitch, size_t DstRowPitch, size_t DstSlicePitch, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4610
pi_result piextEnablePeerAccess(pi_device command_device, pi_device peer_device)
Definition: pi2ur.hpp:4929
pi_result piDevicePartition(pi_device Device, const pi_device_partition_property *Properties, pi_uint32 NumEntries, pi_device *SubDevices, pi_uint32 *NumSubDevices)
Definition: pi2ur.hpp:1374
pi_result piEnqueueMemBufferReadRect(pi_queue Queue, pi_mem Buffer, pi_bool BlockingRead, pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset, pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch, size_t HostRowPitch, size_t HostSlicePitch, void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:4053
pi_result piMemImageCreate(pi_context Context, pi_mem_flags Flags, const pi_image_format *ImageFormat, const pi_image_desc *ImageDesc, void *HostPtr, pi_mem *RetImage)
Definition: pi2ur.hpp:3077
pi_result piProgramBuild(pi_program Program, pi_uint32 NumDevices, const pi_device *DeviceList, const char *Options, void(*PFnNotify)(pi_program Program, void *UserData), void *UserData)
Definition: pi2ur.hpp:2096
pi_result piEnqueueMemBufferWriteRect(pi_queue Queue, pi_mem Buffer, pi_bool BlockingWrite, pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset, pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch, size_t HostRowPitch, size_t HostSlicePitch, const void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3995
pi_result piProgramRetain(pi_program Program)
Definition: pi2ur.hpp:2317
pi_result piextUSMEnqueueMemAdvise(pi_queue Queue, const void *Ptr, size_t Length, pi_mem_advice Advice, pi_event *OutEvent)
USM memadvise API to govern behavior of automatic migration mechanisms.
Definition: pi2ur.hpp:3454
pi_result piextProgramSetSpecializationConstant(pi_program Program, pi_uint32 SpecID, size_t Size, const void *SpecValue)
Definition: pi2ur.hpp:2125
pi_result piextUSMSharedAlloc(void **ResultPtr, pi_context Context, pi_device Device, pi_usm_mem_properties *Properties, size_t Size, pi_uint32 Alignment)
Definition: pi2ur.hpp:3317
pi_result piEnqueueMemBufferRead(pi_queue Queue, pi_mem Src, pi_bool BlockingRead, size_t Offset, size_t Size, void *Dst, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:4088
pi_result piProgramCreate(pi_context Context, const void *ILBytes, size_t Length, pi_program *Program)
Definition: pi2ur.hpp:1901
pi_result piEventsWait(pi_uint32 NumEvents, const pi_event *EventsWaitList)
Definition: pi2ur.hpp:4192
pi_result piDeviceRetain(pi_device Device)
Definition: pi2ur.hpp:985
pi_result piextImportExternalSemaphoreOpaqueFD(pi_context Context, pi_device Device, int FileDescriptor, pi_interop_semaphore_handle *RetHandle)
Definition: pi2ur.hpp:5426
pi_result piextCommandBufferMemcpyUSM(pi_ext_command_buffer CommandBuffer, void *DstPtr, const void *SrcPtr, size_t Size, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4578
pi_result piextMemCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, bool OwnNativeHandle, pi_mem *Mem)
Definition: pi2ur.hpp:3241
pi_result piMemGetInfo(pi_mem Mem, pi_mem_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:2840
pi_result piProgramCompile(pi_program Program, pi_uint32 NumDevices, const pi_device *DeviceList, const char *Options, pi_uint32 NumInputHeaders, const pi_program *InputHeaders, const char **HeaderIncludeNames, void(*PFnNotify)(pi_program Program, void *UserData), void *UserData)
Definition: pi2ur.hpp:2058
pi_result piextMemImageCopy(pi_queue Queue, void *DstPtr, void *SrcPtr, const pi_image_format *ImageFormat, const pi_image_desc *ImageDesc, const pi_image_copy_flags Flags, pi_image_offset SrcOffset, pi_image_offset DstOffset, pi_image_region CopyExtent, pi_image_region HostExtent, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi2ur.hpp:5239
void die(const char *Message)
Definition: pi.cpp:526
#define PI_ASSERT(condition, error)
Definition: pi2ur.hpp:158
int32_t pi_int32
Definition: pi.h:219
uintptr_t pi_native_handle
Definition: pi.h:224
pi_bitfield pi_map_flags
Definition: pi.h:788
_pi_result
Definition: pi.h:231
pi_uint32 pi_bool
Definition: pi.h:222
pi_bitfield pi_usm_mem_properties
Definition: pi.h:800
_pi_device_info
Definition: pi.h:311
_pi_queue_info
Definition: pi.h:516
_pi_mem_advice
Definition: pi.h:619
_pi_kernel_sub_group_info
Definition: pi.h:558
pi_bitfield pi_mem_properties
Definition: pi.h:794
_pi_kernel_group_info
Definition: pi.h:537
pi_uint64 pi_image_handle
Definition: pi.h:1177
_pi_ext_command_buffer_command * pi_ext_command_buffer_command
Definition: pi.h:2371
_pi_kernel_exec_info
Definition: pi.h:1621
_pi_platform_info
Definition: pi.h:246
_pi_image_info
Definition: pi.h:548
pi_uint32 pi_ext_sync_point
Definition: pi.h:2372
_pi_profiling_info
Definition: pi.h:767
_pi_usm_migration_flags
Definition: pi.h:1995
_pi_device_type
Definition: pi.h:279
uint64_t pi_uint64
Definition: pi.h:221
pi_bitfield pi_queue_properties
Definition: pi.h:813
_pi_image_copy_flags
Definition: pi.h:696
pi_bitfield pi_sampler_properties
Definition: pi.h:744
_pi_buffer_create_type
Definition: pi.h:702
uint32_t pi_uint32
Definition: pi.h:220
_pi_event_info
Definition: pi.h:565
intptr_t pi_context_properties
Definition: pi.h:736
pi_bitfield pi_mem_flags
Definition: pi.h:778
constexpr pi_queue_properties PI_QUEUE_FLAGS
Definition: pi.h:814
void(* pi_context_extended_deleter)(void *user_data)
Definition: pi.h:1361
_pi_sampler_info
Definition: pi.h:707
_pi_kernel_info
Definition: pi.h:528
_pi_mem_alloc_info
Definition: pi.h:1978
_pi_context_info
Definition: pi.h:499
void * pi_image_mem_handle
Definition: pi.h:1178
_pi_program_info
Definition: pi.h:487
intptr_t pi_device_partition_property
Definition: pi.h:873
_pi_mem_info
Definition: pi.h:1203
pi_uint64 pi_interop_semaphore_handle
Definition: pi.h:1180
_pi_peer_attr
Definition: pi.h:1205
pi_uint64 pi_interop_mem_handle
Definition: pi.h:1179
_pi_program_build_info
Definition: pi.h:255
pi_result piextContextSetExtendedDeleter(pi_context Context, pi_context_extended_deleter Function, void *UserData)
pi_result piextQueueCreateWithNativeHandle(pi_native_handle NativeHandle, int32_t NativeHandleDesc, pi_context Context, pi_device Device, bool OwnNativeHandle, pi_queue_properties *Properties, pi_queue *Queue)
Creates PI queue object from a native handle.
pi_result piextDisablePeerAccess(pi_device command_device, pi_device peer_device)
pi_result piDeviceGetInfo(pi_device Device, pi_device_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Returns requested info for provided native device Return PI_DEVICE_INFO_EXTENSION_DEVICELIB_ASSERT fo...
pi_result piMemBufferCreate(pi_context Context, pi_mem_flags Flags, size_t Size, void *HostPtr, pi_mem *RetMem, const pi_mem_properties *properties)
pi_result piextWaitExternalSemaphore(pi_queue Queue, pi_interop_semaphore_handle SemHandle, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
API to instruct the queue with a non-blocking wait on an external semaphore.
pi_result piMemRelease(pi_mem Mem)
pi_result piEventSetStatus(pi_event Event, pi_int32 ExecutionStatus)
pi_result piextEnqueueCommandBuffer(pi_ext_command_buffer CommandBuffer, pi_queue Queue, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
API to submit the command-buffer to queue for execution, returns an error if the command-buffer is no...
pi_result piextEnablePeerAccess(pi_device command_device, pi_device peer_device)
pi_result piextEnqueueDeviceGlobalVariableWrite(pi_queue Queue, pi_program Program, const char *Name, pi_bool BlockingWrite, size_t Count, size_t Offset, const void *Src, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *Event)
Device global variable.
pi_result piextCommandBufferMemBufferCopy(pi_ext_command_buffer CommandBuffer, pi_mem SrcMem, pi_mem DstMem, size_t SrcOffset, size_t DstOffset, size_t Size, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a mem buffer copy command to the command-buffer.
pi_result piProgramGetBuildInfo(pi_program Program, pi_device Device, pi_program_build_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
pi_result piKernelGetGroupInfo(pi_kernel Kernel, pi_device Device, pi_kernel_group_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
pi_result piextDeviceCreateWithNativeHandle(pi_native_handle NativeHandle, pi_platform Platform, pi_device *Device)
Creates PI device object from a native handle.
pi_result piEventSetCallback(pi_event Event, pi_int32 CommandExecCallbackType, void(*PFnNotify)(pi_event Event, pi_int32 EventCommandStatus, void *UserData), void *UserData)
pi_result piextCommandBufferFinalize(pi_ext_command_buffer CommandBuffer)
API to stop command-buffer recording such that no more commands can be appended, and makes the comman...
pi_result piKernelCreate(pi_program Program, const char *KernelName, pi_kernel *RetKernel)
pi_result piProgramCompile(pi_program Program, pi_uint32 NumDevices, const pi_device *DeviceList, const char *Options, pi_uint32 NumInputHeaders, const pi_program *InputHeaders, const char **HeaderIncludeNames, void(*PFnNotify)(pi_program Program, void *UserData), void *UserData)
pi_result piextCommandBufferPrefetchUSM(pi_ext_command_buffer CommandBuffer, const void *Ptr, size_t Size, pi_usm_migration_flags Flags, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a USM Prefetch command to the command-buffer.
pi_result piextDeviceGetNativeHandle(pi_device Device, pi_native_handle *NativeHandle)
Gets the native handle of a PI device object.
pi_result piextPlatformCreateWithNativeHandle(pi_native_handle NativeHandle, pi_platform *Platform)
Creates PI platform object from a native handle.
pi_result piQueueRetain(pi_queue Queue)
pi_result piQueueRelease(pi_queue Queue)
pi_result piextCommandBufferReleaseCommand(pi_ext_command_buffer_command Command)
API to decrement the reference count of a command-buffer command.
pi_result piextMemImageGetInfo(pi_image_mem_handle MemHandle, pi_image_info ParamName, void *ParamValue, size_t *ParamValueSizeRet)
API to query an image memory handle for specific properties.
pi_result piextPluginGetOpaqueData(void *opaque_data_param, void **opaque_data_return)
API to get Plugin internal data, opaque to SYCL RT.
pi_result piextCommandBufferNDRangeKernel(pi_ext_command_buffer CommandBuffer, pi_kernel Kernel, pi_uint32 WorkDim, const size_t *GlobalWorkOffset, const size_t *GlobalWorkSize, const size_t *LocalWorkSize, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint, pi_ext_command_buffer_command *Command)
API to append a kernel execution command to the command-buffer.
pi_result piextEventGetNativeHandle(pi_event Event, pi_native_handle *NativeHandle)
Gets the native handle of a PI event object.
pi_result piProgramRelease(pi_program Program)
pi_result piProgramCreateWithBinary(pi_context Context, pi_uint32 NumDevices, const pi_device *DeviceList, const size_t *Lengths, const unsigned char **Binaries, size_t NumMetadataEntries, const pi_device_binary_property *Metadata, pi_int32 *BinaryStatus, pi_program *Program)
Creates a PI program for a context and loads the given binary into it.
pi_result piextMemImageFree(pi_context Context, pi_device Device, pi_image_mem_handle MemoryHandle)
API to free memory for bindless images.
pi_result piEnqueueMemBufferRead(pi_queue Queue, pi_mem Src, pi_bool BlockingRead, size_t Offset, size_t Size, void *Dst, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
pi_result piKernelSetArg(pi_kernel Kernel, pi_uint32 ArgIndex, size_t ArgSize, const void *ArgValue)
pi_result piextDeviceSelectBinary(pi_device Device, pi_device_binary *Binaries, pi_uint32 NumBinaries, pi_uint32 *SelectedBinaryInd)
Selects the most appropriate device binary based on runtime information and the IR characteristics.
pi_result piextMemCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, bool ownNativeHandle, pi_mem *Mem)
Creates PI mem object from a native handle.
pi_result piSamplerRelease(pi_sampler Sampler)
pi_result piDeviceRelease(pi_device Device)
pi_result piextMemUnsampledImageHandleDestroy(pi_context Context, pi_device Device, pi_image_handle Handle)
API to destroy bindless unsampled image handles.
pi_result piEnqueueMemImageRead(pi_queue Queue, pi_mem Image, pi_bool BlockingRead, pi_image_offset Origin, pi_image_region Region, size_t RowPitch, size_t SlicePitch, void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
pi_result piextUSMFree(pi_context Context, void *Ptr)
Indicates that the allocated USM memory is no longer needed on the runtime side.
pi_result piQueueFlush(pi_queue Queue)
pi_result piMemRetain(pi_mem Mem)
pi_result piContextGetInfo(pi_context Context, pi_context_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
pi_result piEnqueueMemBufferCopyRect(pi_queue Queue, pi_mem SrcMem, pi_mem DstMem, pi_buff_rect_offset SrcOrigin, pi_buff_rect_offset DstOrigin, pi_buff_rect_region Region, size_t SrcRowPitch, size_t SrcSlicePitch, size_t DstRowPitch, size_t DstSlicePitch, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
pi_result piKernelSetExecInfo(pi_kernel Kernel, pi_kernel_exec_info ParamName, size_t ParamValueSize, const void *ParamValue)
API to set attributes controlling kernel execution.
pi_result piextEnqueueCooperativeKernelLaunch(pi_queue, pi_kernel, pi_uint32, const size_t *, const size_t *, const size_t *, pi_uint32, const pi_event *, pi_event *)
pi_result piSamplerGetInfo(pi_sampler Sampler, pi_sampler_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
pi_result piextProgramSetSpecializationConstant(pi_program Prog, pi_uint32 SpecID, size_t Size, const void *SpecValue)
Sets a specialization constant to a specific value.
pi_result piextUSMEnqueueMemcpy(pi_queue Queue, pi_bool Blocking, void *DstPtr, const void *SrcPtr, size_t Size, pi_uint32 NumEventsInWaitlist, const pi_event *EventsWaitlist, pi_event *Event)
USM Memcpy API.
pi_result piextMemUnsampledImageCreate(pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_mem *RetMem, pi_image_handle *RetHandle)
API to create bindless image handles.
pi_result piextQueueCreate(pi_context Context, pi_device Device, pi_queue_properties *Properties, pi_queue *Queue)
pi_result piextCommandBufferMemBufferWrite(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, size_t Offset, size_t Size, const void *Ptr, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a mem buffer write command to the command-buffer.
pi_result piextMemImportOpaqueFD(pi_context Context, pi_device Device, size_t Size, int FileDescriptor, pi_interop_mem_handle *RetHandle)
API to import external memory in the form of a file descriptor.
pi_result piEnqueueMemBufferFill(pi_queue Queue, pi_mem Buffer, const void *Pattern, size_t PatternSize, size_t Offset, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
pi_result piextKernelSuggestMaxCooperativeGroupCount(pi_kernel, size_t, size_t, pi_uint32 *)
Gets the max work group count for a cooperative kernel.
pi_result piextPeerAccessGetInfo(pi_device command_device, pi_device peer_device, pi_peer_attr attr, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
pi_result piEventCreate(pi_context Context, pi_event *RetEvent)
Create PI event object in a signalled/completed state.
pi_result piextCommandBufferMemcpyUSM(pi_ext_command_buffer CommandBuffer, void *DstPtr, const void *SrcPtr, size_t Size, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a USM memcpy command to the command-buffer.
pi_result piextCommandBufferMemBufferCopyRect(pi_ext_command_buffer CommandBuffer, pi_mem SrcMem, pi_mem DstMem, pi_buff_rect_offset SrcOrigin, pi_buff_rect_offset DstOrigin, pi_buff_rect_region Region, size_t SrcRowPitch, size_t SrcSlicePitch, size_t DstRowPitch, size_t DstSlicePitch, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a rectangular mem buffer copy command to the command-buffer.
pi_result piTearDown(void *PluginParameter)
API to notify that the plugin should clean up its resources.
pi_result piextKernelGetNativeHandle(pi_kernel Kernel, pi_native_handle *NativeHandle)
Gets the native handle of a PI kernel object.
pi_result piextUSMEnqueueMemcpy2D(pi_queue Queue, pi_bool Blocking, void *DstPtr, size_t DstPitch, const void *SrcPtr, size_t SrcPitch, size_t Width, size_t Height, pi_uint32 NumEventsInWaitlist, const pi_event *EventWaitlist, pi_event *Event)
USM 2D Memcpy API.
pi_result piSamplerRetain(pi_sampler Sampler)
pi_result piextMemImageCopy(pi_queue Queue, void *DstPtr, void *SrcPtr, const pi_image_format *ImageFormat, const pi_image_desc *ImageDesc, const pi_image_copy_flags Flags, pi_image_offset SrcOffset, pi_image_offset DstOffset, pi_image_region CopyExtent, pi_image_region HostExtent, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
API to copy image data Host to Device or Device to Host.
pi_result piEventRelease(pi_event Event)
pi_result piKernelRelease(pi_kernel Kernel)
pi_result piEventGetProfilingInfo(pi_event Event, pi_profiling_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
pi_result piMemGetInfo(pi_mem Mem, pi_mem_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
pi_result piEnqueueMemBufferMap(pi_queue Queue, pi_mem Mem, pi_bool BlockingMap, pi_map_flags MapFlags, size_t Offset, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent, void **RetMap)
pi_result piEnqueueMemBufferWrite(pi_queue Queue, pi_mem Buffer, pi_bool BlockingWrite, size_t Offset, size_t Size, const void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
pi_result piKernelGetInfo(pi_kernel Kernel, pi_kernel_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
pi_result piextUSMImport(const void *HostPtr, size_t Size, pi_context Context)
Import host system memory into USM.
pi_result piextUSMEnqueueFill2D(pi_queue Queue, void *Ptr, size_t Pitch, size_t PatternSize, const void *Pattern, size_t Width, size_t Height, pi_uint32 NumEventsWaitList, const pi_event *EventsWaitList, pi_event *Event)
USM 2D fill API.
pi_result piPluginInit(pi_plugin *PluginInit)
pi_result piPlatformGetInfo(pi_platform Platform, pi_platform_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
pi_result piextMemMipmapGetLevel(pi_context Context, pi_device Device, pi_image_mem_handle MipMem, unsigned int Level, pi_image_mem_handle *RetMem)
API to retrieve individual image from mipmap.
pi_result piextMemMipmapFree(pi_context Context, pi_device Device, pi_image_mem_handle MemoryHandle)
API to free mipmap memory for bindless images.
pi_result piextCommandBufferRetainCommand(pi_ext_command_buffer_command Command)
API to increment the reference count of a command-buffer command.
pi_result piextUSMSharedAlloc(void **ResultPtr, pi_context Context, pi_device Device, pi_usm_mem_properties *Properties, size_t Size, pi_uint32 Alignment)
Allocates memory accessible on both host and device.
pi_result piEnqueueMemBufferWriteRect(pi_queue Queue, pi_mem Buffer, pi_bool BlockingWrite, pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset, pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch, size_t HostRowPitch, size_t HostSlicePitch, const void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
pi_result piextGetDeviceFunctionPointer(pi_device Device, pi_program Program, const char *FunctionName, pi_uint64 *FunctionPointerRet)
Retrieves a device function pointer to a user-defined function.
pi_result piextUSMEnqueueMemAdvise(pi_queue Queue, const void *Ptr, size_t Length, pi_mem_advice Advice, pi_event *OutEvent)
USM Memadvise API.
pi_result piextUSMHostAlloc(void **ResultPtr, pi_context Context, pi_usm_mem_properties *Properties, size_t Size, pi_uint32 Alignment)
Allocates host memory accessible by the device.
pi_result piProgramRetain(pi_program Program)
pi_result piQueueGetInfo(pi_queue Queue, pi_queue_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
pi_result piQueueCreate(pi_context Context, pi_device Device, pi_queue_properties Flags, pi_queue *Queue)
pi_result piextGetGlobalVariablePointer(pi_device Device, pi_program Program, const char *GlobalVariableName, size_t *GlobalVariableSize, void **GlobalVariablePointerRet)
pi_result piContextRelease(pi_context Context)
pi_result piextMemMapExternalArray(pi_context Context, pi_device Device, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_interop_mem_handle MemHandle, pi_image_mem_handle *RetMem)
API to map an interop memory handle to an image memory handle.
pi_result piEnqueueMemBufferCopy(pi_queue Queue, pi_mem SrcMem, pi_mem DstMem, size_t SrcOffset, size_t DstOffset, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
pi_result piEnqueueMemImageCopy(pi_queue Queue, pi_mem SrcImage, pi_mem DstImage, pi_image_offset SrcOrigin, pi_image_offset DstOrigin, pi_image_region Region, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
pi_result piextCommandBufferUpdateKernelLaunch(pi_ext_command_buffer_command Command, pi_ext_command_buffer_update_kernel_launch_desc *Desc)
API to update a kernel launch command inside of a command-buffer.
pi_result piEventGetInfo(pi_event Event, pi_event_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
pi_result piProgramGetInfo(pi_program Program, pi_program_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
pi_result piextImportExternalSemaphoreOpaqueFD(pi_context Context, pi_device Device, int FileDescriptor, pi_interop_semaphore_handle *RetHandle)
API to import an external semaphore in the form of a file descriptor.
pi_result piextUSMEnqueueMemset2D(pi_queue Queue, void *Ptr, size_t Pitch, int Value, size_t Width, size_t Height, pi_uint32 NumEventsWaitList, const pi_event *EventsWaitlist, pi_event *Event)
USM 2D Memset API.
pi_result piextCommandBufferMemBufferWriteRect(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset, pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch, size_t HostRowPitch, size_t HostSlicePitch, const void *Ptr, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a rectangular mem buffer write command to the command-buffer.
pi_result piextMemReleaseInterop(pi_context Context, pi_device Device, pi_interop_mem_handle ExtMem)
API to destroy interop memory.
pi_result piextUSMRelease(const void *HostPtr, pi_context Context)
Release host system memory from USM.
pi_result piEventsWait(pi_uint32 NumEvents, const pi_event *EventList)
pi_result piextUSMEnqueueMemset(pi_queue Queue, void *Ptr, pi_int32 Value, size_t Count, pi_uint32 NumEventsInWaitlist, const pi_event *EventsWaitlist, pi_event *Event)
USM Memset API.
pi_result piextPlatformGetNativeHandle(pi_platform Platform, pi_native_handle *NativeHandle)
Gets the native handle of a PI platform object.
pi_result piEnqueueMemBufferReadRect(pi_queue Queue, pi_mem Buffer, pi_bool BlockingRead, pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset, pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch, size_t HostRowPitch, size_t HostSlicePitch, void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
pi_result piMemBufferPartition(pi_mem Buffer, pi_mem_flags Flags, pi_buffer_create_type BufferCreateType, void *BufferCreateInfo, pi_mem *RetMem)
pi_result piextDestroyExternalSemaphore(pi_context Context, pi_device Device, pi_interop_semaphore_handle SemHandle)
API to destroy the external semaphore handle.
pi_result piPluginGetLastError(char **message)
API to get Plugin specific warning and error messages.
pi_result piextCommandBufferMemBufferRead(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, size_t Offset, size_t Size, void *Dst, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a mem buffer read command to the command-buffer.
pi_result piEnqueueMemImageWrite(pi_queue Queue, pi_mem Image, pi_bool BlockingWrite, pi_image_offset Origin, pi_image_region Region, size_t InputRowPitch, size_t InputSlicePitch, const void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
pi_result piextContextGetNativeHandle(pi_context Context, pi_native_handle *NativeHandle)
Gets the native handle of a PI context object.
pi_result piMemImageCreate(pi_context Context, pi_mem_flags Flags, const pi_image_format *ImageFormat, const pi_image_desc *ImageDesc, void *HostPtr, pi_mem *RetImage)
pi_result piextUSMGetMemAllocInfo(pi_context Context, const void *Ptr, pi_mem_alloc_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
API to query information about USM allocated pointers Valid Queries: PI_MEM_ALLOC_TYPE returns host/d...
pi_result piEnqueueEventsWaitWithBarrier(pi_queue Queue, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
pi_result piextMemSampledImageHandleDestroy(pi_context Context, pi_device Device, pi_image_handle Handle)
API to destroy bindless sampled image handles.
pi_result piQueueFinish(pi_queue Queue)
pi_result piextMemImageCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, bool OwnNativeHandle, const pi_image_format *ImageFormat, const pi_image_desc *ImageDesc, pi_mem *Img)
Creates PI image object from a native handle.
pi_result piSamplerCreate(pi_context Context, const pi_sampler_properties *SamplerProperties, pi_sampler *RetSampler)
pi_result piGetDeviceAndHostTimer(pi_device Device, uint64_t *DeviceTime, uint64_t *HostTime)
Queries device for it's global timestamp in nanoseconds, and updates HostTime with the value of the h...
pi_result piPlatformsGet(pi_uint32 NumEntries, pi_platform *Platforms, pi_uint32 *NumPlatforms)
pi_result piDevicesGet(pi_platform Platform, pi_device_type DeviceType, pi_uint32 NumEntries, pi_device *Devices, pi_uint32 *NumDevices)
pi_result piEnqueueMemImageFill(pi_queue Queue, pi_mem Image, const void *FillColor, const size_t *Origin, const size_t *Region, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
pi_result piextEnqueueWriteHostPipe(pi_queue Queue, pi_program Program, const char *PipeSymbol, pi_bool Blocking, void *Ptr, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *Event)
Write to pipe of a given name.
pi_result piextKernelSetArgMemObj(pi_kernel Kernel, pi_uint32 ArgIndex, const pi_mem_obj_property *ArgProperties, const pi_mem *ArgValue)
pi_result piDevicePartition(pi_device Device, const pi_device_partition_property *Properties, pi_uint32 NumDevices, pi_device *OutDevices, pi_uint32 *OutNumDevices)
pi_result piextEnqueueDeviceGlobalVariableRead(pi_queue Queue, pi_program Program, const char *Name, pi_bool BlockingRead, size_t Count, size_t Offset, void *Dst, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *Event)
API reading data from a device global variable to host.
pi_result piContextCreate(const pi_context_properties *Properties, pi_uint32 NumDevices, const pi_device *Devices, void(*PFnNotify)(const char *ErrInfo, const void *PrivateInfo, size_t CB, void *UserData), void *UserData, pi_context *RetContext)
pi_result piextUSMDeviceAlloc(void **ResultPtr, pi_context Context, pi_device Device, pi_usm_mem_properties *Properties, size_t Size, pi_uint32 Alignment)
Allocates device memory.
pi_result piextKernelSetArgSampler(pi_kernel Kernel, pi_uint32 ArgIndex, const pi_sampler *ArgValue)
pi_result piextMemGetNativeHandle(pi_mem Mem, pi_device Dev, pi_native_handle *NativeHandle)
Gets the native handle of a PI mem object.
pi_result piextEnqueueReadHostPipe(pi_queue Queue, pi_program Program, const char *PipeSymbol, pi_bool Blocking, void *Ptr, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *Event)
Plugin.
pi_result piextUSMEnqueuePrefetch(pi_queue Queue, const void *Ptr, size_t Size, pi_usm_migration_flags Flags, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
Hint to migrate memory to the device.
pi_result piEnqueueKernelLaunch(pi_queue Queue, pi_kernel Kernel, pi_uint32 WorkDim, const size_t *GlobalWorkOffset, const size_t *GlobalWorkSize, const size_t *LocalWorkSize, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
pi_result piextCommandBufferFillUSM(pi_ext_command_buffer CommandBuffer, void *Ptr, const void *Pattern, size_t PatternSize, size_t Size, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a USM fill command to the command-buffer.
pi_result piextCommandBufferRetain(pi_ext_command_buffer CommandBuffer)
API to increment the reference count of the command-buffer.
pi_result piProgramBuild(pi_program Program, pi_uint32 NumDevices, const pi_device *DeviceList, const char *Options, void(*PFnNotify)(pi_program Program, void *UserData), void *UserData)
pi_result piKernelRetain(pi_kernel Kernel)
pi_result piEventRetain(pi_event Event)
pi_result piextContextCreateWithNativeHandle(pi_native_handle NativeHandle, pi_uint32 NumDevices, const pi_device *Devices, bool OwnNativeHandle, pi_context *RetContext)
Creates PI context object from a native handle.
pi_result piextCommandBufferRelease(pi_ext_command_buffer CommandBuffer)
API to decrement the reference count of the command-buffer.
pi_result piPluginGetBackendOption(pi_platform platform, const char *frontend_option, const char **backend_option)
API to get backend specific option.
pi_result piextCommandBufferMemBufferFill(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, const void *Pattern, size_t PatternSize, size_t Offset, size_t Size, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a mem buffer fill command to the command-buffer.
pi_result piProgramLink(pi_context Context, pi_uint32 NumDevices, const pi_device *DeviceList, const char *Options, pi_uint32 NumInputPrograms, const pi_program *InputPrograms, void(*PFnNotify)(pi_program Program, void *UserData), void *UserData, pi_program *RetProgram)
pi_result piextMemSampledImageCreate(pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_sampler Sampler, pi_mem *RetMem, pi_image_handle *RetHandle)
API to create sampled bindless image handles.
pi_result piextProgramCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, bool OwnNativeHandle, pi_program *Program)
Creates PI program object from a native handle.
pi_result piextCommandBufferAdviseUSM(pi_ext_command_buffer CommandBuffer, const void *Ptr, size_t Length, pi_mem_advice Advice, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a USM Advise command to the command-buffer.
pi_result piextEventCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, bool OwnNativeHandle, pi_event *Event)
Creates PI event object from a native handle.
pi_result piMemImageGetInfo(pi_mem Image, pi_image_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
pi_result piEnqueueEventsWait(pi_queue Queue, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
pi_result piDeviceRetain(pi_device Device)
pi_result piextQueueGetNativeHandle(pi_queue Queue, pi_native_handle *NativeHandle, int32_t *NativeHandleDesc)
Gets the native handle of a PI queue object.
pi_result piextUSMPitchedAlloc(void **ResultPtr, size_t *ResultPitch, pi_context Context, pi_device Device, pi_usm_mem_properties *Properties, size_t WidthInBytes, size_t Height, unsigned int ElementSizeBytes)
Allocates memory accessible on device.
pi_result piextCommandBufferCreate(pi_context Context, pi_device Device, const pi_ext_command_buffer_desc *Desc, pi_ext_command_buffer *RetCommandBuffer)
API to create a command-buffer.
pi_result piextCommandBufferMemBufferReadRect(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset, pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch, size_t HostRowPitch, size_t HostSlicePitch, void *Ptr, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a rectangular mem buffer read command to the command-buffer.
pi_result piContextRetain(pi_context Context)
pi_result piextKernelSetArgPointer(pi_kernel Kernel, pi_uint32 ArgIndex, size_t ArgSize, const void *ArgValue)
Sets up pointer arguments for CL kernels.
pi_result piKernelGetSubGroupInfo(pi_kernel Kernel, pi_device Device, pi_kernel_sub_group_info ParamName, size_t InputValueSize, const void *InputValue, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
API to query information from the sub-group from a kernel.
pi_result piextBindlessImageSamplerCreate(pi_context Context, const pi_sampler_properties *SamplerProperties, float MinMipmapLevelClamp, float MaxMipmapLevelClamp, float MaxAnisotropy, pi_sampler *RetSampler)
API to create samplers for bindless images.
pi_result piEnqueueMemUnmap(pi_queue Queue, pi_mem Mem, void *MappedPtr, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
pi_result piextMemImageAllocate(pi_context Context, pi_device Device, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_image_mem_handle *RetMem)
API to allocate memory for bindless images.
pi_result piProgramCreate(pi_context Context, const void *ILBytes, size_t Length, pi_program *Program)
pi_result piextKernelCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, pi_program Program, bool OwnNativeHandle, pi_kernel *Kernel)
Creates PI kernel object from a native handle.
pi_result piextSignalExternalSemaphore(pi_queue Queue, pi_interop_semaphore_handle SemHandle, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
API to instruct the queue to signal the external semaphore handle once all previous commands have com...
pi_result piextProgramGetNativeHandle(pi_program Program, pi_native_handle *NativeHandle)
Gets the native handle of a PI program object.
This struct is a record of the device binary information.
Definition: pi.h:1045