develop/amd_openvx/openvx/include/vx_ext_amd.h Source File

develop/amd_openvx/openvx/include/vx_ext_amd.h Source File#

MIVisionX: develop/amd_openvx/openvx/include/vx_ext_amd.h Source File
vx_ext_amd.h
Go to the documentation of this file.
1 /*
2 Copyright (c) 2015 - 2024 Advanced Micro Devices, Inc. All rights reserved.
3 
4 Permission is hereby granted, free of charge, to any person obtaining a copy
5 of this software and associated documentation files (the "Software"), to deal
6 in the Software without restriction, including without limitation the rights
7 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 copies of the Software, and to permit persons to whom the Software is
9 furnished to do so, subject to the following conditions:
10 
11 The above copyright notice and this permission notice shall be included in
12 all copies or substantial portions of the Software.
13 
14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 THE SOFTWARE.
21 */
22 
23 #ifndef _VX_EXT_AMD_H_
24 #define _VX_EXT_AMD_H_
25 
26 #include <VX/vx.h>
27 #include <VX/vx_khr_nn.h>
28 #ifdef __cplusplus
29 #include <string>
30 #endif
31 
43 #define AGO_TARGET_AFFINITY_CPU 0x0010 // CPU
47 #define AGO_TARGET_AFFINITY_GPU 0x0020 // GPU
51 #define AGO_TARGET_AFFINITY_APU 0x0030 // APU
52 
56 #define AGO_MAX_PARAMS 32
57 #define AGO_MERGE_RULE_MAX_FIND 4
58 #define AGO_MERGE_RULE_MAX_REPLACE 4
59 #define AGO_MERGE_RULE_SOLITARY_FLAG 0x20
60 #define AGO_TARGET_AFFINITY_GPU_INFO_DEVICE_MASK 0x0F
61 #define AGO_TARGET_AFFINITY_GPU_INFO_SVM_MASK 0xF0
62 #define AGO_TARGET_AFFINITY_GPU_INFO_SVM_ENABLE 0x10
63 #define AGO_TARGET_AFFINITY_GPU_INFO_SVM_AS_CLMEM 0x20
64 #define AGO_TARGET_AFFINITY_GPU_INFO_SVM_NO_FGS 0x40
65 
72 #define VX_MAX_STRING_BUFFER_SIZE_AMD 256
73 
78 #define VX_NN_ACTIVATION_LEAKY_RELU (VX_ENUM_BASE(VX_ID_AMD, VX_ENUM_NN_ACTIVATION_FUNCTION_TYPE) + 0x9)
79 
83 #define VX_CONTEXT_ATTRIBUTE_NONLINEAR_MAX_DIMENSION VX_CONTEXT_NONLINEAR_MAX_DIMENSION
84 #define VX_CONTEXT_ATTRIBUTE_IMMEDIATE_BORDER_POLICY VX_CONTEXT_IMMEDIATE_BORDER_POLICY
85 
90 #define VX_GRAPH_ATTRIBUTE_STATE VX_GRAPH_STATE
91 
95 #define VX_OBJECT_ARRAY_ATTRIBUTE_ITEMTYPE VX_OBJECT_ARRAY_ITEMTYPE
96 #define VX_OBJECT_ARRAY_ATTRIBUTE_NUMITEMS VX_OBJECT_ARRAY_NUMITEMS
97 
102 {
121 };
122 
127 {
142 };
143 
148 {
161 };
162 
167 {
186 };
187 
192 {
201 };
202 
207 {
222 };
223 
229 {
243 };
244 
249 {
258 };
259 
269 {
282 };
283 
289 {
294 };
295 
301 {
304 };
305 
311 {
313  VX_DF_IMAGE_U1_AMD = VX_DF_IMAGE('U', '0', '0', '1'),
315  VX_DF_IMAGE_F16_AMD = VX_DF_IMAGE('F', '0', '1', '6'),
317  VX_DF_IMAGE_F32_AMD = VX_DF_IMAGE('F', '0', '3', '2'),
319  VX_DF_IMAGE_F64_AMD = VX_DF_IMAGE('F', '0', '6', '4'),
321  VX_DF_IMAGE_F32x3_AMD = VX_DF_IMAGE('F', '3', '3', '2'),
322 };
323 
329 {
332 };
333 
340 typedef struct _vx_tensor_t *vx_tensor;
341 
345 typedef struct
346 {
347  vx_size components;
348  vx_size planes;
349  vx_size pixelSizeInBitsNum;
350  vx_color_space_e colorSpace;
351  vx_channel_range_e channelRange;
352  vx_size pixelSizeInBitsDenom;
354 
358 typedef struct
359 {
360  vx_uint32 device_type; // shall be AGO_TARGET_AFFINITY_CPU or AGO_TARGET_AFFINITY_GPU
361  vx_uint32 device_info; // reserved -- shall be initialized to ZERO and shall not be modified
362  vx_uint32 group; // reserved -- shall be initialized to ZERO and shall not be modified
363  vx_uint32 reserved; // reserved -- shall be initialized to ZERO and shall not be modified
365 
369 typedef struct
370 {
371  vx_char macroName[256];
372  vx_char *text;
374 
382 typedef struct
383 {
384  vx_char *text;
385  vx_uint32 num_ref;
386  vx_reference *ref;
387  vx_int32 dumpToConsole;
388  void(VX_CALLBACK *data_registry_callback_f)(void *obj, vx_reference ref, const char *name, const char *app_params);
389  void *data_registry_callback_obj;
391 
395 typedef struct
396 {
397  vx_char fileName[256];
398  vx_uint32 num_ref;
399  vx_reference *ref;
400  vx_char comment[64];
402 
406 typedef struct
407 {
408  vx_uint64 kernel_enqueue;
409  vx_uint64 kernel_wait;
410  vx_uint64 buffer_read;
411  vx_uint64 buffer_write;
413 
417 typedef struct AgoNodeMergeRule_t
418 {
419  struct
420  {
421  vx_enum kernel_id;
422  vx_uint32 arg_spec[AGO_MAX_PARAMS];
423  } find[AGO_MERGE_RULE_MAX_FIND];
424  struct
425  {
426  vx_enum kernel_id;
427  vx_uint32 arg_spec[AGO_MAX_PARAMS];
428  } replace[AGO_MERGE_RULE_MAX_REPLACE];
430 
431 #ifdef __cplusplus
436 typedef vx_status(VX_CALLBACK *amd_kernel_query_target_support_f)(vx_graph graph, vx_node node,
437  vx_bool use_opencl_1_2, // [input] false: OpenCL driver is 2.0+; true: OpenCL driver is 1.2
438  vx_uint32 &supported_target_affinity // [output] must be set to AGO_TARGET_AFFINITY_CPU or AGO_TARGET_AFFINITY_GPU or (AGO_TARGET_AFFINITY_CPU | AGO_TARGET_AFFINITY_GPU)
439 );
440 
454 typedef vx_status(VX_CALLBACK *amd_kernel_opencl_codegen_callback_f)(
455  vx_node node, // [input] node
456  const vx_reference parameters[], // [input] parameters
457  vx_uint32 num, // [input] number of parameters
458  bool opencl_load_function, // [input] false: normal OpenCL kernel; true: reserved
459  char opencl_kernel_function_name[64], // [output] kernel_name for clCreateKernel()
460  std::string &opencl_kernel_code, // [output] string for clCreateProgramWithSource()
461  std::string &opencl_build_options, // [output] options for clBuildProgram()
462  vx_uint32 &opencl_work_dim, // [output] work_dim for clEnqueueNDRangeKernel()
463  vx_size opencl_global_work[], // [output] global_work[] for clEnqueueNDRangeKernel()
464  vx_size opencl_local_work[], // [output] local_work[] for clEnqueueNDRangeKernel()
465  vx_uint32 &opencl_local_buffer_usage_mask, // [output] reserved: must be ZERO
466  vx_uint32 &opencl_local_buffer_size_in_bytes // [output] reserved: must be ZERO
467 );
468 
472 typedef vx_status(VX_CALLBACK *amd_drama_add_node_f)(vx_node node, vx_enum kernel_id, vx_reference *paramList, vx_uint32 paramCount);
473 typedef vx_status(VX_CALLBACK *amd_kernel_node_regen_callback_f)(vx_node node, amd_drama_add_node_f add_node_f, vx_bool &replace_original);
474 
480 typedef vx_status(VX_CALLBACK *amd_kernel_opencl_global_work_update_callback_f)(
481  vx_node node, // [input] node
482  const vx_reference parameters[], // [input] parameters
483  vx_uint32 num, // [input] number of parameters
484  vx_uint32 opencl_work_dim, // [input] work_dim for clEnqueueNDRangeKernel()
485  vx_size opencl_global_work[], // [output] global_work[] for clEnqueueNDRangeKernel()
486  const vx_size opencl_local_work[] // [input] local_work[] for clEnqueueNDRangeKernel()
487 );
488 
494 typedef vx_status(VX_CALLBACK *amd_kernel_gpu_buffer_update_callback_f)(
495  vx_node node, // [input] node
496  const vx_reference parameters[], // [input] parameters
497  vx_uint32 num // [input] number of parameters
498 );
499 
503 typedef struct
504 {
505  amd_kernel_gpu_buffer_update_callback_f gpu_buffer_update_callback_f;
506  vx_uint32 gpu_buffer_update_param_index;
507 } AgoKernelGpuBufferUpdateInfo;
508 
509 #if defined(AMD_FP16_SUPPORT)
512 #include <half/half.hpp>
513 typedef half_float::half vx_float16;
514 #endif
515 #endif
516 
517 #ifdef __cplusplus
518 extern "C"
519 {
520 #endif
521 
537 
553  VX_API_ENTRY vx_status VX_API_CALL vxSetModuleInternalData(vx_context context, const vx_char *module, void *ptr, vx_size size);
554 
570  VX_API_ENTRY vx_status VX_API_CALL vxGetModuleInternalData(vx_context context, const vx_char *module, void **ptr, vx_size *size);
571 
586  VX_API_ENTRY vx_status VX_API_CALL vxSetModuleHandle(vx_node node, const vx_char *module, void *ptr);
587 
602  VX_API_ENTRY vx_status VX_API_CALL vxGetModuleHandle(vx_node node, const vx_char *module, void **ptr);
603 
620 
634 
645  VX_API_ENTRY vx_status VX_API_CALL vxAliasTensor(vx_tensor tensorMaster, vx_size offset, vx_tensor tensor);
646 
653  VX_API_ENTRY vx_bool VX_API_CALL vxIsTensorAliased(vx_tensor tensorMaster, vx_size offset, vx_tensor tensor);
654 
655 #ifdef __cplusplus
656 }
657 #endif
658 
659 #endif
vx_tensor_attribute_amd_e
The AMD tensor data attributes.
Definition: vx_ext_amd.h:229
vx_array_attribute_amd_e
The AMD array data attributes.
Definition: vx_ext_amd.h:249
vx_color_space_amd_e
The image color space list used by the VX_IMAGE_SPACE attribute of a vx_image.
Definition: vx_ext_amd.h:301
vx_memory_type_amd_e
An enumeration of additional memory type imports.
Definition: vx_ext_amd.h:289
vx_df_image_amd_e
Based on the VX_DF_IMAGE definition.
Definition: vx_ext_amd.h:311
VX_API_ENTRY vx_status VX_API_CALL vxSetModuleHandle(vx_node node, const vx_char *module, void *ptr)
Set module handle.
vx_kernel_attribute_amd_e
The AMD kernel attributes list.
Definition: vx_ext_amd.h:148
struct _vx_tensor_t * vx_tensor
The multidimensional data object (Tensor).
Definition: vx_ext_amd.h:340
VX_API_ENTRY vx_status VX_API_CALL vxSetContextImageFormatDescription(vx_context context, vx_df_image format, const AgoImageFormatDescription *desc)
Set custom image format description.
VX_API_ENTRY vx_status VX_API_CALL vxGetContextImageFormatDescription(vx_context context, vx_df_image format, AgoImageFormatDescription *desc)
Get custom image format description.
vx_graph_attribute_amd_e
The AMD graph attributes list.
Definition: vx_ext_amd.h:167
#define AGO_MAX_PARAMS
AMD internal parameters. [TODO: This needs to be moved to ago_internal.h].
Definition: vx_ext_amd.h:56
VX_API_ENTRY vx_status VX_API_CALL vxSetModuleInternalData(vx_context context, const vx_char *module, void *ptr, vx_size size)
Set module internal data.
VX_API_ENTRY vx_status VX_API_CALL vxAliasTensor(vx_tensor tensorMaster, vx_size offset, vx_tensor tensor)
vxAliasTensor.
vx_image_attribute_amd_e
The AMD image attributes list.
Definition: vx_ext_amd.h:207
vx_node_attribute_amd_e
The AMD node attributes list.
Definition: vx_ext_amd.h:192
vx_directive_amd_e
These enumerations are given to the vxDirective API to enable/disable platform optimizations and/or f...
Definition: vx_ext_amd.h:269
VX_API_ENTRY vx_status VX_API_CALL vxGetModuleInternalData(vx_context context, const vx_char *module, void **ptr, vx_size *size)
Retrieve module internal data.
VX_API_ENTRY vx_status VX_API_CALL vxGetModuleHandle(vx_node node, const vx_char *module, void **ptr)
Retrieve module handle.
struct AgoNodeMergeRule_t AgoNodeMergeRule
AMD data structure to specify node merge rule.
VX_API_ENTRY vx_bool VX_API_CALL vxIsTensorAliased(vx_tensor tensorMaster, vx_size offset, vx_tensor tensor)
vxIsTensorAliased.
vx_scalar_attribute_amd_e
scalar data attributes.
Definition: vx_ext_amd.h:329
vx_context_attribute_amd_e
The AMD context attributes list.
Definition: vx_ext_amd.h:127
ago_type_public_e
The type enumeration lists all the AMD specific types in OpenVX.
Definition: vx_ext_amd.h:102
VX_API_ENTRY vx_status VX_API_CALL vxGetReferenceName(vx_reference ref, vx_char name[], vx_size size)
Retrieve the name of a reference.
@ VX_TENSOR_BUFFER_HIP
HIP buffer. cl_mem.
Definition: vx_ext_amd.h:237
@ VX_TENSOR_OFFSET_GPU
GPU buffer offset. vx_size.
Definition: vx_ext_amd.h:233
@ VX_TENSOR_BUFFER_OPENCL
OpenCL buffer. cl_mem.
Definition: vx_ext_amd.h:235
@ VX_TENSOR_STRIDE_GPU
GPU buffer strides (array of vx_size).
Definition: vx_ext_amd.h:231
@ VX_TENSOR_MEMORY_TYPE
Queries memory type if created using vxCreateTensorFromHandle. If vx_tensor was not created using vxC...
Definition: vx_ext_amd.h:240
@ VX_TENSOR_BUFFER_HOST
Sync with user specified host buffer.
Definition: vx_ext_amd.h:242
@ VX_ARRAY_OFFSET_GPU
TODO:.
Definition: vx_ext_amd.h:257
@ VX_ARRAY_BUFFER
TODO:.
Definition: vx_ext_amd.h:255
@ VX_ARRAY_BUFFER_OPENCL
OpenCL buffer. cl_mem.
Definition: vx_ext_amd.h:251
@ VX_ARRAY_BUFFER_HIP
HIP buffer. hip_mem.
Definition: vx_ext_amd.h:253
@ VX_COLOR_SPACE_BT2020
Use to indicate that the BT.2020 coefficients are used for conversions.
Definition: vx_ext_amd.h:303
@ VX_MEMORY_TYPE_OPENCL
The memory type to import from the OpenCL.
Definition: vx_ext_amd.h:291
@ VX_MEMORY_TYPE_HIP
The memory type to import from the HIP.
Definition: vx_ext_amd.h:293
@ VX_DF_IMAGE_F32_AMD
AMD image with 32-bit floating-point (float).
Definition: vx_ext_amd.h:317
@ VX_DF_IMAGE_F32x3_AMD
AMD image with THREE 32-bit floating-point channels in one buffer.
Definition: vx_ext_amd.h:321
@ VX_DF_IMAGE_F16_AMD
AMD image with 16-bit floating-point (half).
Definition: vx_ext_amd.h:315
@ VX_DF_IMAGE_F64_AMD
AMD image with 64-bit floating-point (double).
Definition: vx_ext_amd.h:319
@ VX_DF_IMAGE_U1_AMD
AMD image with 1-bit data.
Definition: vx_ext_amd.h:313
@ VX_KERNEL_ATTRIBUTE_AMD_QUERY_TARGET_SUPPORT
Kernel callback for query target support. Use a amd_kernel_query_target_support_f parameter.
Definition: vx_ext_amd.h:150
@ VX_KERNEL_ATTRIBUTE_AMD_GPU_BUFFER_ACCESS_ENABLE
Kernel flag to enable OpenCL buffer access (default OFF). Use a vx_bool parameter.
Definition: vx_ext_amd.h:158
@ VX_KERNEL_ATTRIBUTE_AMD_GPU_BUFFER_UPDATE_CALLBACK
Kernel callback for GPU buffer update. Use a AgoKernelGpuBufferUpdateInfo parameter.
Definition: vx_ext_amd.h:160
@ VX_KERNEL_ATTRIBUTE_AMD_OPENCL_CODEGEN_CALLBACK
Kernel callback for OpenCL code generation. Use a amd_kernel_opencl_codegen_callback_f parameter.
Definition: vx_ext_amd.h:152
@ VX_KERNEL_ATTRIBUTE_AMD_NODE_REGEN_CALLBACK
Kernel callback for node regeneration. Use a amd_kernel_node_regen_callback_f parameter.
Definition: vx_ext_amd.h:154
@ VX_KERNEL_ATTRIBUTE_AMD_OPENCL_GLOBAL_WORK_UPDATE_CALLBACK
Kernel callback for OpenCL global work[]. Use a amd_kernel_opencl_global_work_update_callback_f param...
Definition: vx_ext_amd.h:156
@ VX_GRAPH_ATTRIBUTE_AMD_PERFORMANCE_INTERNAL_PROFILE
Graph internal performance profile. Use a char * fileName parameter.
Definition: vx_ext_amd.h:181
@ VX_GRAPH_ATTRIBUTE_AMD_CPU_NUM_THREADS
CPU num_threads to be used in RPP. Use a vx_uint32 parameter.
Definition: vx_ext_amd.h:185
@ VX_GRAPH_ATTRIBUTE_AMD_EXPORT_TO_TEXT
Export a graph into a text file. Use a AgoGraphExportInfo parameter.
Definition: vx_ext_amd.h:173
@ VX_GRAPH_ATTRIBUTE_AMD_OPTIMIZER_FLAGS
Graph optimizer flags. Use a vx_uint32 parameter.
Definition: vx_ext_amd.h:175
@ VX_GRAPH_ATTRIBUTE_AMD_PERFORMANCE_INTERNAL_LAST
Graph last performance (internal). Use a AgoGraphPerfInternalInfo parameter.
Definition: vx_ext_amd.h:177
@ VX_GRAPH_ATTRIBUTE_AMD_OPENCL_COMMAND_QUEUE
OpenCL command queue. Use a cl_command_queue parameter.
Definition: vx_ext_amd.h:183
@ VX_GRAPH_ATTRIBUTE_AMD_PERFORMANCE_INTERNAL_AVG
Graph avg performance (internal). Use a AgoGraphPerfInternalInfo parameter.
Definition: vx_ext_amd.h:179
@ VX_GRAPH_ATTRIBUTE_AMD_AFFINITY
Graph affinity. Use a AgoNodeAffinityInfo parameter.
Definition: vx_ext_amd.h:169
@ VX_GRAPH_ATTRIBUTE_AMD_IMPORT_FROM_TEXT
Imports a graph from a text file. Use a AgoGraphImportInfo parameter.
Definition: vx_ext_amd.h:171
@ VX_IMAGE_ATTRIBUTE_AMD_OPENCL_BUFFER
Sync with user specified OpenCL buffer. Use a cl_mem parameter.
Definition: vx_ext_amd.h:209
@ VX_IMAGE_ATTRIBUTE_AMD_HIP_BUFFER
Sync with user specified hip memory.
Definition: vx_ext_amd.h:221
@ VX_IMAGE_ATTRIBUTE_AMD_GPU_BUFFER_OFFSET
GPU buffer offset. Use a cl_uint parameter.
Definition: vx_ext_amd.h:211
@ VX_IMAGE_ATTRIBUTE_AMD_ENABLE_USER_BUFFER_GPU
Enable user kernel's own GPU buffer for virtual images. Supports only images with single color plane ...
Definition: vx_ext_amd.h:215
@ VX_IMAGE_ATTRIBUTE_AMD_GPU_BUFFER_STRIDE
GPU buffer stride. Use a cl_uint parameter.
Definition: vx_ext_amd.h:217
@ VX_IMAGE_ATTRIBUTE_AMD_HOST_BUFFER
Sync with user specified host buffer. Use a cl_mem parameter.
Definition: vx_ext_amd.h:219
@ VX_NODE_ATTRIBUTE_AMD_HIP_STREAM
HIP stream. TBD.
Definition: vx_ext_amd.h:198
@ VX_NODE_ATTRIBUTE_AMD_AFFINITY
Node affinity. Use a AgoTargetAffinityInfo parameter.
Definition: vx_ext_amd.h:194
@ VX_NODE_ATTRIBUTE_AMD_OPENCL_COMMAND_QUEUE
OpenCL command queue. Use a cl_command_queue parameter.
Definition: vx_ext_amd.h:196
@ VX_NODE_ATTRIBUTE_AMD_CPU_NUM_THREADS
TBD.
Definition: vx_ext_amd.h:200
@ VX_DIRECTIVE_AMD_COPY_TO_HIPMEM
Data object copy to HIP memory.
Definition: vx_ext_amd.h:281
@ VX_DIRECTIVE_AMD_ENABLE_PROFILE_CAPTURE
Enable performance profile capture.
Definition: vx_ext_amd.h:275
@ VX_DIRECTIVE_AMD_DISABLE_PROFILE_CAPTURE
Disable performance profile capture.
Definition: vx_ext_amd.h:277
@ VX_DIRECTIVE_AMD_COPY_TO_OPENCL
Data object copy to OpenCL.
Definition: vx_ext_amd.h:273
@ VX_DIRECTIVE_AMD_DISABLE_GPU_FLUSH
Disable node level flush for a graph.
Definition: vx_ext_amd.h:279
@ VX_DIRECTIVE_AMD_READ_ONLY
Data object is readonly after this directive is given.
Definition: vx_ext_amd.h:271
@ VX_SCALAR_BUFFER
scalar's buffer
Definition: vx_ext_amd.h:331
@ VX_CONTEXT_ATTRIBUTE_AMD_OPENCL_CONTEXT
OpenCL context. Use a cl_context parameter.
Definition: vx_ext_amd.h:129
@ VX_CONTEXT_ATTRIBUTE_AMD_HIP_DEVICE
HIP context. Use a cl_context parameter.
Definition: vx_ext_amd.h:141
@ VX_CONTEXT_ATTRIBUTE_AMD_SET_MERGE_RULE
Set a merge rule. Use a AgoNodeMergeRule parameter.
Definition: vx_ext_amd.h:135
@ VX_CONTEXT_CL_QUEUE_PROPERTIES
CL_QUEUE_PROPERTIES to be used for creating OpenCL command queue. Use a cl_command_queue_properties p...
Definition: vx_ext_amd.h:139
@ VX_CONTEXT_ATTRIBUTE_AMD_AFFINITY
Context affinity. Use a AgoTargetAffinityInfo parameter.
Definition: vx_ext_amd.h:131
@ VX_CONTEXT_ATTRIBUTE_AMD_SET_TEXT_MACRO
Set a text macro definition. Use a AgoContextMacroInfo parameter.
Definition: vx_ext_amd.h:133
@ VX_CONTEXT_MAX_TENSOR_DIMENSIONS
Tensor Data max num of dimensions supported by HW.
Definition: vx_ext_amd.h:137
@ AGO_TYPE_MINMAXLOC_DATA
AGO data structure for AGO MinMaxLoc kernels.
Definition: vx_ext_amd.h:114
@ VX_TYPE_STRING_AMD
AMD scalar data type for string.
Definition: vx_ext_amd.h:105
@ AGO_TYPE_MEANSTDDEV_DATA
AGO data structure for AGO MeanStdDev kernels.
Definition: vx_ext_amd.h:111
@ AGO_TYPE_SCALE_MATRIX
AGO data structure for AGO Scale kernels.
Definition: vx_ext_amd.h:120
@ AGO_TYPE_KEYPOINT_XYS
AGO struct data type for keypoint XYS.
Definition: vx_ext_amd.h:108
@ AGO_TYPE_CANNY_STACK
AGO data structure for AGO Canny kernels.
Definition: vx_ext_amd.h:117
AMD data structure to set a text macro.
Definition: vx_ext_amd.h:370
AMD data structure to export a graph to a text.
Definition: vx_ext_amd.h:396
AMD data structure to import a graph from a text.text: "macro <macro-name>" to use a pre-defined macr...
Definition: vx_ext_amd.h:383
AMD data structure to get internal performance data.
Definition: vx_ext_amd.h:407
AMD data structure for image format information.
Definition: vx_ext_amd.h:346
AMD data structure to specify node merge rule.
Definition: vx_ext_amd.h:418
AMD data structure to specify target affinity.
Definition: vx_ext_amd.h:359
The top level OpenVX Header.
The Khronos Extension for Deep Convolutional Networks Functions.
struct _vx_context * vx_context
An opaque reference to the implementation context.
Definition: vx_types.h:218
struct _vx_reference * vx_reference
A generic opaque reference to any object within OpenVX.
Definition: vx_types.h:145
uint32_t vx_uint32
A 32-bit unsigned value.
Definition: vx_types.h:85
vx_color_space_e
The image color space list used by the VX_IMAGE_SPACE attribute of a vx_image.
Definition: vx_types.h:1300
vx_channel_range_e
The image channel range list used by the VX_IMAGE_RANGE attribute of a vx_image.
Definition: vx_types.h:1317
uint32_t vx_df_image
Used to hold a VX_DF_IMAGE code to describe the pixel format and color space.
Definition: vx_types.h:162
@ VX_TYPE_VENDOR_STRUCT_START
A vendor-defined struct base index.
Definition: vx_types.h:368
@ VX_TYPE_NODE
A vx_node.
Definition: vx_types.h:383
@ VX_TYPE_SCALAR
A vx_scalar. when needed to be completely generic for kernel validation.
Definition: vx_types.h:393
@ VX_TYPE_TENSOR
A vx_tensor.
Definition: vx_types.h:402
@ VX_TYPE_CONTEXT
A vx_context.
Definition: vx_types.h:381
@ VX_TYPE_ARRAY
A vx_array.
Definition: vx_types.h:394
@ VX_TYPE_VENDOR_OBJECT_START
A vendor defined object base index.
Definition: vx_types.h:370
@ VX_TYPE_KERNEL
A vx_kernel.
Definition: vx_types.h:384
@ VX_TYPE_IMAGE
A vx_image.
Definition: vx_types.h:395
@ VX_TYPE_GRAPH
A vx_graph.
Definition: vx_types.h:382
size_t vx_size
A wrapper of size_t to keep the naming convention uniform.
Definition: vx_types.h:157
struct _vx_tensor_t * vx_tensor
The multidimensional data object (Tensor).
Definition: vx_types.h:287
@ VX_ENUM_COLOR_SPACE
Color Space.
Definition: vx_types.h:563
@ VX_ENUM_DIRECTIVE
Directive Values.
Definition: vx_types.h:560
@ VX_ENUM_MEMORY_TYPE
The memory type enumeration.
Definition: vx_types.h:571
vx_enum vx_status
A formal status type with known fixed size.
Definition: vx_types.h:445
int32_t vx_enum
Sets the standard enumeration type size to be a fixed quantity.
Definition: vx_types.h:152
#define VX_ENUM_BASE(vendor, id)
Defines the manner in which to combine the Vendor and Object IDs to get the base value of the enumera...
Definition: vx_types.h:550
struct _vx_graph * vx_graph
An opaque reference to a graph.
Definition: vx_types.h:211
struct _vx_node * vx_node
An opaque reference to a kernel node.
Definition: vx_types.h:204
int32_t vx_int32
A 32-bit signed value.
Definition: vx_types.h:105
char vx_char
An 8 bit ASCII character.
Definition: vx_types.h:70
#define VX_ATTRIBUTE_BASE(vendor, object)
Defines the manner in which to combine the Vendor and Object IDs to get the base value of the enumera...
Definition: vx_types.h:533
uint64_t vx_uint64
A 64-bit unsigned value.
Definition: vx_types.h:90
#define VX_API_CALL
Defines calling convention for OpenVX API.
Definition: vx_types.h:56
vx_enum vx_bool
A formal boolean type with known fixed size.
Definition: vx_types.h:312
#define VX_DF_IMAGE(a, b, c, d)
Converts a set of four chars into a uint32_t container of a VX_DF_IMAGE code.
Definition: vx_types.h:526
#define VX_CALLBACK
Defines calling convention for user callbacks.
Definition: vx_types.h:63
@ VX_ID_KHRONOS
The Khronos Group.
Definition: vx_vendors.h:30
@ VX_ID_AMD
Advanced Micro Devices.
Definition: vx_vendors.h:43