TIOVX User Guide
vx_khr_pipelining.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2012-2019 The Khronos Group Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef _OPENVX_PIPELINING_H_
18 #define _OPENVX_PIPELINING_H_
19 
25 #define OPENVX_KHR_PIPELINING "vx_khr_pipelining"
26 
27 #include <VX/vx.h>
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 /*
34  * PIPELINING API
35  */
36 
41 #define VX_LIBRARY_KHR_PIPELINING_EXTENSION (0x1)
42 
43 
49 {
51 };
52 
60 
64 
68 
72 };
73 
82 };
83 
90 typedef struct {
91 
102 
192  vx_graph graph,
193  vx_enum graph_schedule_mode,
194  vx_uint32 graph_parameters_list_size,
195  const vx_graph_parameter_queue_params_t graph_parameters_queue_params_list[]
196  );
197 
230  vx_uint32 graph_parameter_index,
231  vx_reference *refs,
232  vx_uint32 num_refs);
233 
234 
235 
273  vx_uint32 graph_parameter_index,
274  vx_reference *refs,
275  vx_uint32 max_refs,
276  vx_uint32 *num_refs);
277 
298  vx_uint32 graph_parameter_index,
299  vx_uint32 *num_refs);
300 
301 /*
302  * EVENT QUEUE API
303  */
304 
310 {
312 };
313 
319 
331 
339 
345 
351 
362 };
363 
368 typedef struct _vx_event_graph_parameter_consumed {
369 
376 
381 typedef struct _vx_event_graph_completed {
382 
386 
391 typedef struct _vx_event_node_completed {
392 
399 
404 typedef struct _vx_event_node_error {
405 
415 
420 typedef struct _vx_event_user_event {
421 
426 
431 typedef union _vx_event_info_t {
432 
449 
450 
455 typedef struct _vx_event {
456 
470 } vx_event_t;
471 
494 VX_API_ENTRY vx_status VX_API_CALL vxWaitEvent(vx_context context, vx_event_t *event, vx_bool do_not_block);
495 
507 VX_API_ENTRY vx_status VX_API_CALL vxEnableEvents(vx_context context);
508 
523 VX_API_ENTRY vx_status VX_API_CALL vxDisableEvents(vx_context context);
524 
538 VX_API_ENTRY vx_status VX_API_CALL vxSendUserEvent(vx_context context, vx_uint32 app_value, const void *parameter);
539 
540 
562 VX_API_ENTRY vx_status VX_API_CALL vxRegisterEvent(vx_reference ref, enum vx_event_type_e type, vx_uint32 param, vx_uint32 app_value);
563 
564 /*
565  * STREAMING API
566  */
567 
573 {
575 };
576 
582 
586 
590 
591 };
592 
599 };
600 
620 
636 };
637 
653 VX_API_ENTRY vx_status VX_API_CALL vxEnableGraphStreaming(vx_graph graph, vx_node trigger_node);
654 
684 
685 
701 
702 #ifdef __cplusplus
703 }
704 #endif
705 
706 #endif
vx_bool
Schedule graph in queueing mode with auto scheduling.
Returns the schedule mode of a graph. Read-only. Use a vx_enum parameter. See vx_graph_schedule_mode_...
vx_event_node_error node_error
Node error event.
vx_uint32 refs_list_size
Number of elements in array &#39;refs_list&#39;.
VX_ID_KHRONOS
Node completion event.
vx_event_type_e
Type of event that can be generated during system execution.
vx_node_state_e
Node state.
VX_API_ENTRY vx_status VX_API_CALL vxDisableEvents(vx_context context)
Disable event generation.
The pipeup output depth required by the kernel. This is called by kernels that need to be primed with...
int32_t vx_enum
vx_node_attribute_streaming_e
The node attributes added by this extension.
vx_graph graph
graph which generated this event
VX_API_ENTRY vx_status VX_API_CALL vxSetGraphScheduleConfig(vx_graph graph, vx_enum graph_schedule_mode, vx_uint32 graph_parameters_list_size, const vx_graph_parameter_queue_params_t graph_parameters_queue_params_list[])
Sets the graph scheduler config.
VX_API_ENTRY vx_status VX_API_CALL vxGraphParameterCheckDoneRef(vx_graph graph, vx_uint32 graph_parameter_index, vx_uint32 *num_refs)
Checks and returns the number of references that are ready for dequeue.
Schedule graph in non-queueing mode.
VX_API_ENTRY vx_status VX_API_CALL vxStopGraphStreaming(vx_graph graph)
Stop streaming mode of graph execution.
VX_API_ENTRY vx_status VX_API_CALL vxSendUserEvent(vx_context context, vx_uint32 app_value, const void *parameter)
Generate user defined event.
vx_graph graph
graph which generated this event
Node is in steady state (output expected for each invocation)
Parameter structure returned with event of type VX_EVENT_USER_EVENT.
Parameter structure returned with event of type VX_EVENT_NODE_COMPLETED.
vx_uint64 timestamp
The pipeup input depth required by the kernel. This is called by kernels that need to retain one or m...
vx_enum vx_status
#define VX_ENUM_BASE(vendor, id)
struct _vx_context * vx_context
VX_API_ENTRY vx_status VX_API_CALL vxGraphParameterDequeueDoneRef(vx_graph graph, vx_uint32 graph_parameter_index, vx_reference *refs, vx_uint32 max_refs, vx_uint32 *num_refs)
Dequeues &#39;consumed&#39; references from a graph parameter.
Parameter structure returned with event of type VX_EVENT_NODE_ERROR.
Graph parameter consumed event.
VX_API_ENTRY vx_status VX_API_CALL vxGraphParameterEnqueueReadyRef(vx_graph graph, vx_uint32 graph_parameter_index, vx_reference *refs, vx_uint32 num_refs)
Enqueues new references into a graph parameter for processing.
Parameter structure returned with event of type VX_EVENT_GRAPH_PARAMETER_CONSUMED.
struct _vx_reference * vx_reference
vx_event_graph_parameter_consumed graph_parameter_consumed
vx_uint32 graph_parameter_index
graph parameter index which generated this event
vx_node node
node which generated this event
Parameter structure returned with event of type VX_EVENT_GRAPH_COMPLETED.
VX_API_ENTRY vx_status VX_API_CALL vxStartGraphStreaming(vx_graph graph)
Start streaming mode of graph execution.
vx_event_user_event user_event
vx_graph_attribute_pipelining_e
The graph attributes added by this extension.
vx_node node
node which generated this event
vx_reference * refs_list
Array of references that could be enqueued at a later point of time at this graph parameter...
vx_event_graph_completed graph_completed
vx_graph_schedule_mode_type_e
Type of graph scheduling mode.
vx_graph graph
graph which generated this event
Node state type enumeration.
vx_event_enum_e
Extra enums.
Schedule graph in queueing mode with manual scheduling.
vx_uint32 app_value
#define VX_ATTRIBUTE_BASE(vendor, object)
VX_API_ENTRY vx_status VX_API_CALL vxRegisterEvent(vx_reference ref, enum vx_event_type_e type, vx_uint32 param, vx_uint32 app_value)
Register an event to be generated.
VX_TYPE_KERNEL
Graph completion event.
vx_status status
error condition of node
Event Type enumeration.
User defined event.
vx_enum type
see event type vx_event_type_e
Graph schedule mode type enumeration.
Data structure which holds event information.
VX_API_ENTRY vx_status VX_API_CALL vxEnableEvents(vx_context context)
Enable event generation.
Parameter structure associated with an event. Depends on type of the event.
Queueing parameters for a specific graph parameter.
VX_API_ENTRY vx_status VX_API_CALL vxEnableGraphStreaming(vx_graph graph, vx_node trigger_node)
Enable streaming mode of graph execution.
Queries the state of the node. Read-only. See vx_graph_state_e enum.
vx_node_state_enum_e
Extra enums.
void * user_event_parameter
User defined parameter value. This is used to pass additional user defined parameters with a user eve...
VX_TYPE_NODE
VX_API_ENTRY vx_status VX_API_CALL vxWaitEvent(vx_context context, vx_event_t *event, vx_bool do_not_block)
Wait for a single event.
uint32_t vx_uint32
uint32_t graph_parameter_index
Index of graph parameter to which these properties apply.
struct _vx_graph * vx_graph
vx_graph graph
graph which generated this event
vx_kernel_attribute_streaming_e
The kernel attributes added by this extension.
vx_graph_schedule_mode_enum_e
Extra enums.
vx_event_info_t event_info
struct _vx_node * vx_node
vx_event_node_completed node_completed
Node is in pipeup state (output not expected for each invocation)
uint64_t vx_uint64
vx_status(* VX_API_CALL)(vx_reference *ref)
Callback type used to register release callbacks from object derived from references.
Definition: vx_reference.h:56
VX_TYPE_GRAPH