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 
77 #define VX_NN_ACTIVATION_LEAKY_RELU (VX_ENUM_BASE(VX_ID_AMD, VX_ENUM_NN_ACTIVATION_FUNCTION_TYPE) + 0x9)
78 
82 #define VX_CONTEXT_ATTRIBUTE_NONLINEAR_MAX_DIMENSION VX_CONTEXT_NONLINEAR_MAX_DIMENSION
83 #define VX_CONTEXT_ATTRIBUTE_IMMEDIATE_BORDER_POLICY VX_CONTEXT_IMMEDIATE_BORDER_POLICY
84 
89 #define VX_GRAPH_ATTRIBUTE_STATE VX_GRAPH_STATE
90 
94 #define VX_OBJECT_ARRAY_ATTRIBUTE_ITEMTYPE VX_OBJECT_ARRAY_ITEMTYPE
95 #define VX_OBJECT_ARRAY_ATTRIBUTE_NUMITEMS VX_OBJECT_ARRAY_NUMITEMS
96 
101 {
120 };
121 
126 {
141 };
142 
147 {
160 };
161 
166 {
185 };
186 
191 {
200 };
201 
206 {
221 };
222 
228 {
242 };
243 
248 {
257 };
258 
268 {
281 };
282 
288 {
293 };
294 
300 {
303 };
304 
310 {
312  VX_DF_IMAGE_U1_AMD = VX_DF_IMAGE('U', '0', '0', '1'),
314  VX_DF_IMAGE_F16_AMD = VX_DF_IMAGE('F', '0', '1', '6'),
316  VX_DF_IMAGE_F32_AMD = VX_DF_IMAGE('F', '0', '3', '2'),
318  VX_DF_IMAGE_F64_AMD = VX_DF_IMAGE('F', '0', '6', '4'),
320  VX_DF_IMAGE_F32x3_AMD = VX_DF_IMAGE('F', '3', '3', '2'),
321 };
322 
328 {
331 };
332 
336 typedef struct
337 {
338  vx_size components;
339  vx_size planes;
340  vx_size pixelSizeInBitsNum;
341  vx_color_space_e colorSpace;
342  vx_channel_range_e channelRange;
343  vx_size pixelSizeInBitsDenom;
345 
349 typedef struct
350 {
351  vx_uint32 device_type; // shall be AGO_TARGET_AFFINITY_CPU or AGO_TARGET_AFFINITY_GPU
352  vx_uint32 device_info; // reserved -- shall be initialized to ZERO and shall not be modified
353  vx_uint32 group; // reserved -- shall be initialized to ZERO and shall not be modified
354  vx_uint32 reserved; // reserved -- shall be initialized to ZERO and shall not be modified
356 
360 typedef struct
361 {
362  vx_char macroName[256];
363  vx_char *text;
365 
373 typedef struct
374 {
375  vx_char *text;
376  vx_uint32 num_ref;
377  vx_reference *ref;
378  vx_int32 dumpToConsole;
379  void(VX_CALLBACK *data_registry_callback_f)(void *obj, vx_reference ref, const char *name, const char *app_params);
380  void *data_registry_callback_obj;
382 
386 typedef struct
387 {
388  vx_char fileName[256];
389  vx_uint32 num_ref;
390  vx_reference *ref;
391  vx_char comment[64];
393 
397 typedef struct
398 {
399  vx_uint64 kernel_enqueue;
400  vx_uint64 kernel_wait;
401  vx_uint64 buffer_read;
402  vx_uint64 buffer_write;
404 
408 typedef struct AgoNodeMergeRule_t
409 {
410  struct
411  {
412  vx_enum kernel_id;
413  vx_uint32 arg_spec[AGO_MAX_PARAMS];
414  } find[AGO_MERGE_RULE_MAX_FIND];
415  struct
416  {
417  vx_enum kernel_id;
418  vx_uint32 arg_spec[AGO_MAX_PARAMS];
419  } replace[AGO_MERGE_RULE_MAX_REPLACE];
421 
422 #ifdef __cplusplus
427 typedef vx_status(VX_CALLBACK *amd_kernel_query_target_support_f)(vx_graph graph, vx_node node,
428  vx_bool use_opencl_1_2, // [input] false: OpenCL driver is 2.0+; true: OpenCL driver is 1.2
429  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)
430 );
431 
445 typedef vx_status(VX_CALLBACK *amd_kernel_opencl_codegen_callback_f)(
446  vx_node node, // [input] node
447  const vx_reference parameters[], // [input] parameters
448  vx_uint32 num, // [input] number of parameters
449  bool opencl_load_function, // [input] false: normal OpenCL kernel; true: reserved
450  char opencl_kernel_function_name[64], // [output] kernel_name for clCreateKernel()
451  std::string &opencl_kernel_code, // [output] string for clCreateProgramWithSource()
452  std::string &opencl_build_options, // [output] options for clBuildProgram()
453  vx_uint32 &opencl_work_dim, // [output] work_dim for clEnqueueNDRangeKernel()
454  vx_size opencl_global_work[], // [output] global_work[] for clEnqueueNDRangeKernel()
455  vx_size opencl_local_work[], // [output] local_work[] for clEnqueueNDRangeKernel()
456  vx_uint32 &opencl_local_buffer_usage_mask, // [output] reserved: must be ZERO
457  vx_uint32 &opencl_local_buffer_size_in_bytes // [output] reserved: must be ZERO
458 );
459 
463 typedef vx_status(VX_CALLBACK *amd_drama_add_node_f)(vx_node node, vx_enum kernel_id, vx_reference *paramList, vx_uint32 paramCount);
464 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);
465 
471 typedef vx_status(VX_CALLBACK *amd_kernel_opencl_global_work_update_callback_f)(
472  vx_node node, // [input] node
473  const vx_reference parameters[], // [input] parameters
474  vx_uint32 num, // [input] number of parameters
475  vx_uint32 opencl_work_dim, // [input] work_dim for clEnqueueNDRangeKernel()
476  vx_size opencl_global_work[], // [output] global_work[] for clEnqueueNDRangeKernel()
477  const vx_size opencl_local_work[] // [input] local_work[] for clEnqueueNDRangeKernel()
478 );
479 
485 typedef vx_status(VX_CALLBACK *amd_kernel_gpu_buffer_update_callback_f)(
486  vx_node node, // [input] node
487  const vx_reference parameters[], // [input] parameters
488  vx_uint32 num // [input] number of parameters
489 );
490 
494 typedef struct
495 {
496  amd_kernel_gpu_buffer_update_callback_f gpu_buffer_update_callback_f;
497  vx_uint32 gpu_buffer_update_param_index;
498 } AgoKernelGpuBufferUpdateInfo;
499 
500 #if defined(AMD_FP16_SUPPORT)
503 #if __has_include(<half/half.hpp>)
504  #include <half/half.hpp>
505 #else
506  #include <half.hpp>
507 #endif
508 typedef half_float::half vx_float16;
509 #endif
510 #endif
511 
512 #ifdef __cplusplus
513 extern "C"
514 {
515 #endif
516 
532 
548  VX_API_ENTRY vx_status VX_API_CALL vxSetModuleInternalData(vx_context context, const vx_char *module, void *ptr, vx_size size);
549 
565  VX_API_ENTRY vx_status VX_API_CALL vxGetModuleInternalData(vx_context context, const vx_char *module, void **ptr, vx_size *size);
566 
581  VX_API_ENTRY vx_status VX_API_CALL vxSetModuleHandle(vx_node node, const vx_char *module, void *ptr);
582 
597  VX_API_ENTRY vx_status VX_API_CALL vxGetModuleHandle(vx_node node, const vx_char *module, void **ptr);
598 
615 
629 
640  VX_API_ENTRY vx_status VX_API_CALL vxAliasTensor(vx_tensor tensorMaster, vx_size offset, vx_tensor tensor);
641 
648  VX_API_ENTRY vx_bool VX_API_CALL vxIsTensorAliased(vx_tensor tensorMaster, vx_size offset, vx_tensor tensor);
649 
650 #ifdef __cplusplus
651 }
652 #endif
653 
654 #endif
vx_tensor_attribute_amd_e
The AMD tensor data attributes.
Definition: vx_ext_amd.h:228
vx_array_attribute_amd_e
The AMD array data attributes.
Definition: vx_ext_amd.h:248
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:300
vx_memory_type_amd_e
An enumeration of additional memory type imports.
Definition: vx_ext_amd.h:288
vx_df_image_amd_e
Based on the VX_DF_IMAGE definition.
Definition: vx_ext_amd.h:310
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:147
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:166
#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:206
vx_node_attribute_amd_e
The AMD node attributes list.
Definition: vx_ext_amd.h:191
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:268
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:328
vx_context_attribute_amd_e
The AMD context attributes list.
Definition: vx_ext_amd.h:126
ago_type_public_e
The type enumeration lists all the AMD specific types in OpenVX.
Definition: vx_ext_amd.h:101
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:236
@ VX_TENSOR_OFFSET_GPU
GPU buffer offset. vx_size.
Definition: vx_ext_amd.h:232
@ VX_TENSOR_BUFFER_OPENCL
OpenCL buffer. cl_mem.
Definition: vx_ext_amd.h:234
@ VX_TENSOR_STRIDE_GPU
GPU buffer strides (array of vx_size).
Definition: vx_ext_amd.h:230
@ VX_TENSOR_MEMORY_TYPE
Queries memory type if created using vxCreateTensorFromHandle. If vx_tensor was not created using vxC...
Definition: vx_ext_amd.h:239
@ VX_TENSOR_BUFFER_HOST
Sync with user specified host buffer.
Definition: vx_ext_amd.h:241
@ VX_ARRAY_OFFSET_GPU
TODO:.
Definition: vx_ext_amd.h:256
@ VX_ARRAY_BUFFER
TODO:.
Definition: vx_ext_amd.h:254
@ VX_ARRAY_BUFFER_OPENCL
OpenCL buffer. cl_mem.
Definition: vx_ext_amd.h:250
@ VX_ARRAY_BUFFER_HIP
HIP buffer. hip_mem.
Definition: vx_ext_amd.h:252
@ VX_COLOR_SPACE_BT2020
Use to indicate that the BT.2020 coefficients are used for conversions.
Definition: vx_ext_amd.h:302
@ VX_MEMORY_TYPE_OPENCL
The memory type to import from the OpenCL.
Definition: vx_ext_amd.h:290
@ VX_MEMORY_TYPE_HIP
The memory type to import from the HIP.
Definition: vx_ext_amd.h:292
@ VX_DF_IMAGE_F32_AMD
AMD image with 32-bit floating-point (float).
Definition: vx_ext_amd.h:316
@ VX_DF_IMAGE_F32x3_AMD
AMD image with THREE 32-bit floating-point channels in one buffer.
Definition: vx_ext_amd.h:320
@ VX_DF_IMAGE_F16_AMD
AMD image with 16-bit floating-point (half).
Definition: vx_ext_amd.h:314
@ VX_DF_IMAGE_F64_AMD
AMD image with 64-bit floating-point (double).
Definition: vx_ext_amd.h:318
@ VX_DF_IMAGE_U1_AMD
AMD image with 1-bit data.
Definition: vx_ext_amd.h:312
@ 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:149
@ 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:157
@ VX_KERNEL_ATTRIBUTE_AMD_GPU_BUFFER_UPDATE_CALLBACK
Kernel callback for GPU buffer update. Use a AgoKernelGpuBufferUpdateInfo parameter.
Definition: vx_ext_amd.h:159
@ 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:151
@ 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:153
@ 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:155
@ VX_GRAPH_ATTRIBUTE_AMD_PERFORMANCE_INTERNAL_PROFILE
Graph internal performance profile. Use a char * fileName parameter.
Definition: vx_ext_amd.h:180
@ 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:184
@ VX_GRAPH_ATTRIBUTE_AMD_EXPORT_TO_TEXT
Export a graph into a text file. Use a AgoGraphExportInfo parameter.
Definition: vx_ext_amd.h:172
@ VX_GRAPH_ATTRIBUTE_AMD_OPTIMIZER_FLAGS
Graph optimizer flags. Use a vx_uint32 parameter.
Definition: vx_ext_amd.h:174
@ VX_GRAPH_ATTRIBUTE_AMD_PERFORMANCE_INTERNAL_LAST
Graph last performance (internal). Use a AgoGraphPerfInternalInfo parameter.
Definition: vx_ext_amd.h:176
@ VX_GRAPH_ATTRIBUTE_AMD_OPENCL_COMMAND_QUEUE
OpenCL command queue. Use a cl_command_queue parameter.
Definition: vx_ext_amd.h:182
@ VX_GRAPH_ATTRIBUTE_AMD_PERFORMANCE_INTERNAL_AVG
Graph avg performance (internal). Use a AgoGraphPerfInternalInfo parameter.
Definition: vx_ext_amd.h:178
@ VX_GRAPH_ATTRIBUTE_AMD_AFFINITY
Graph affinity. Use a AgoNodeAffinityInfo parameter.
Definition: vx_ext_amd.h:168
@ VX_GRAPH_ATTRIBUTE_AMD_IMPORT_FROM_TEXT
Imports a graph from a text file. Use a AgoGraphImportInfo parameter.
Definition: vx_ext_amd.h:170
@ VX_IMAGE_ATTRIBUTE_AMD_OPENCL_BUFFER
Sync with user specified OpenCL buffer. Use a cl_mem parameter.
Definition: vx_ext_amd.h:208
@ VX_IMAGE_ATTRIBUTE_AMD_HIP_BUFFER
Sync with user specified hip memory.
Definition: vx_ext_amd.h:220
@ VX_IMAGE_ATTRIBUTE_AMD_GPU_BUFFER_OFFSET
GPU buffer offset. Use a cl_uint parameter.
Definition: vx_ext_amd.h:210
@ 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:214
@ VX_IMAGE_ATTRIBUTE_AMD_GPU_BUFFER_STRIDE
GPU buffer stride. Use a cl_uint parameter.
Definition: vx_ext_amd.h:216
@ VX_IMAGE_ATTRIBUTE_AMD_HOST_BUFFER
Sync with user specified host buffer. Use a cl_mem parameter.
Definition: vx_ext_amd.h:218
@ VX_NODE_ATTRIBUTE_AMD_HIP_STREAM
HIP stream. TBD.
Definition: vx_ext_amd.h:197
@ VX_NODE_ATTRIBUTE_AMD_AFFINITY
Node affinity. Use a AgoTargetAffinityInfo parameter.
Definition: vx_ext_amd.h:193
@ VX_NODE_ATTRIBUTE_AMD_OPENCL_COMMAND_QUEUE
OpenCL command queue. Use a cl_command_queue parameter.
Definition: vx_ext_amd.h:195
@ VX_NODE_ATTRIBUTE_AMD_CPU_NUM_THREADS
TBD.
Definition: vx_ext_amd.h:199
@ VX_DIRECTIVE_AMD_COPY_TO_HIPMEM
Data object copy to HIP memory.
Definition: vx_ext_amd.h:280
@ VX_DIRECTIVE_AMD_ENABLE_PROFILE_CAPTURE
Enable performance profile capture.
Definition: vx_ext_amd.h:274
@ VX_DIRECTIVE_AMD_DISABLE_PROFILE_CAPTURE
Disable performance profile capture.
Definition: vx_ext_amd.h:276
@ VX_DIRECTIVE_AMD_COPY_TO_OPENCL
Data object copy to OpenCL.
Definition: vx_ext_amd.h:272
@ VX_DIRECTIVE_AMD_DISABLE_GPU_FLUSH
Disable node level flush for a graph.
Definition: vx_ext_amd.h:278
@ VX_DIRECTIVE_AMD_READ_ONLY
Data object is readonly after this directive is given.
Definition: vx_ext_amd.h:270
@ VX_SCALAR_BUFFER
scalar's buffer
Definition: vx_ext_amd.h:330
@ VX_CONTEXT_ATTRIBUTE_AMD_OPENCL_CONTEXT
OpenCL context. Use a cl_context parameter.
Definition: vx_ext_amd.h:128
@ VX_CONTEXT_ATTRIBUTE_AMD_HIP_DEVICE
HIP context. Use a cl_context parameter.
Definition: vx_ext_amd.h:140
@ VX_CONTEXT_ATTRIBUTE_AMD_SET_MERGE_RULE
Set a merge rule. Use a AgoNodeMergeRule parameter.
Definition: vx_ext_amd.h:134
@ 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:138
@ VX_CONTEXT_ATTRIBUTE_AMD_AFFINITY
Context affinity. Use a AgoTargetAffinityInfo parameter.
Definition: vx_ext_amd.h:130
@ VX_CONTEXT_ATTRIBUTE_AMD_SET_TEXT_MACRO
Set a text macro definition. Use a AgoContextMacroInfo parameter.
Definition: vx_ext_amd.h:132
@ VX_CONTEXT_MAX_TENSOR_DIMENSIONS
Tensor Data max num of dimensions supported by HW.
Definition: vx_ext_amd.h:136
@ AGO_TYPE_MINMAXLOC_DATA
AGO data structure for AGO MinMaxLoc kernels.
Definition: vx_ext_amd.h:113
@ VX_TYPE_STRING_AMD
AMD scalar data type for string.
Definition: vx_ext_amd.h:104
@ AGO_TYPE_MEANSTDDEV_DATA
AGO data structure for AGO MeanStdDev kernels.
Definition: vx_ext_amd.h:110
@ AGO_TYPE_SCALE_MATRIX
AGO data structure for AGO Scale kernels.
Definition: vx_ext_amd.h:119
@ AGO_TYPE_KEYPOINT_XYS
AGO struct data type for keypoint XYS.
Definition: vx_ext_amd.h:107
@ AGO_TYPE_CANNY_STACK
AGO data structure for AGO Canny kernels.
Definition: vx_ext_amd.h:116
AMD data structure to set a text macro.
Definition: vx_ext_amd.h:361
AMD data structure to export a graph to a text.
Definition: vx_ext_amd.h:387
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:374
AMD data structure to get internal performance data.
Definition: vx_ext_amd.h:398
AMD data structure for image format information.
Definition: vx_ext_amd.h:337
AMD data structure to specify node merge rule.
Definition: vx_ext_amd.h:409
AMD data structure to specify target affinity.
Definition: vx_ext_amd.h:350
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:225
struct _vx_reference * vx_reference
A generic opaque reference to any object within OpenVX.
Definition: vx_types.h:152
uint32_t vx_uint32
A 32-bit unsigned value.
Definition: vx_types.h:89
vx_color_space_e
The image color space list used by the VX_IMAGE_SPACE attribute of a vx_image.
Definition: vx_types.h:1344
vx_channel_range_e
The image channel range list used by the VX_IMAGE_RANGE attribute of a vx_image.
Definition: vx_types.h:1361
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:169
@ VX_TYPE_VENDOR_STRUCT_START
A vendor-defined struct base index.
Definition: vx_types.h:375
@ VX_TYPE_NODE
A vx_node.
Definition: vx_types.h:390
@ VX_TYPE_SCALAR
A vx_scalar. Used when a completely generic type is needed for kernel validation.
Definition: vx_types.h:400
@ VX_TYPE_TENSOR
A vx_tensor.
Definition: vx_types.h:409
@ VX_TYPE_CONTEXT
A vx_context.
Definition: vx_types.h:388
@ VX_TYPE_ARRAY
A vx_array.
Definition: vx_types.h:401
@ VX_TYPE_VENDOR_OBJECT_START
A vendor-defined object base index.
Definition: vx_types.h:377
@ VX_TYPE_KERNEL
A vx_kernel.
Definition: vx_types.h:391
@ VX_TYPE_IMAGE
A vx_image.
Definition: vx_types.h:402
@ VX_TYPE_GRAPH
A vx_graph.
Definition: vx_types.h:389
size_t vx_size
A wrapper of size_t to keep the naming convention uniform.
Definition: vx_types.h:164
struct _vx_tensor * vx_tensor
The multidimensional data object (Tensor).
Definition: vx_types.h:294
@ VX_ENUM_COLOR_SPACE
Color Space.
Definition: vx_types.h:571
@ VX_ENUM_DIRECTIVE
Directive Values.
Definition: vx_types.h:568
@ VX_ENUM_MEMORY_TYPE
The memory type enumeration.
Definition: vx_types.h:579
vx_enum vx_status
A formal status type with known fixed size.
Definition: vx_types.h:453
int32_t vx_enum
Sets the standard enumeration type size to be a fixed quantity.
Definition: vx_types.h:159
#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:558
struct _vx_graph * vx_graph
An opaque reference to a graph.
Definition: vx_types.h:218
struct _vx_node * vx_node
An opaque reference to a kernel node.
Definition: vx_types.h:211
int32_t vx_int32
A 32-bit signed value.
Definition: vx_types.h:109
char vx_char
An 8-bit ASCII character.
Definition: vx_types.h:74
#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:541
uint64_t vx_uint64
A 64-bit unsigned value.
Definition: vx_types.h:94
#define VX_API_CALL
Defines calling convention for OpenVX API.
Definition: vx_types.h:60
vx_enum vx_bool
A formal boolean type with known fixed size.
Definition: vx_types.h:319
#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:534
#define VX_CALLBACK
Defines calling convention for user callbacks.
Definition: vx_types.h:67
@ VX_ID_KHRONOS
The Khronos Group.
Definition: vx_vendors.h:34
@ VX_ID_AMD
Advanced Micro Devices.
Definition: vx_vendors.h:47