cl_mem clCreatePipe
(
| cl_context context, |
| cl_mem_flags flags, | |
| cl_uint pipe_packet_size, | |
| cl_uint pipe_max_packets, | |
| const cl_pipe_properties * properties, | |
cl_int *errcode_ret) |
context
A valid OpenCL context used to create the pipe object.
flags
A bit-field that is used to specify
allocation and usage information such as the memory
arena that should be used to allocate the pipe object and how it
will be used. The table below describes
the possible values for flags.
Only CL_MEM_READ_ONLY,
CL_MEM_WRITE_ONLY, CL_MEM_READ_WRITE,
and CL_MEM_HOST_NO_ACCESS
can be specified when creating a pipe object.
If value specified for flags is 0,
the default is used which is
CL_MEM_READ_WRITE.
| cl_mem_flags | Description |
|---|---|
CL_MEM_READ_WRITE
|
This flag specifies that the memory object will be read and written by a kernel. This is the default. |
CL_MEM_WRITE_ONLY
|
This flag specifies that the memory object will be written but not read by a kernel.
Reading from a buffer or image object created with
|
CL_MEM_READ_ONLY
|
This flag specifies that the memory object is a read-only memory object when used inside a kernel.
Writing to a buffer or image object created with
|
CL_MEM_USE_HOST_PTR
|
This flag is valid only if
OpenCL implementations are allowed to cache the buffer contents pointed to by
The result of OpenCL commands that operate on multiple buffer objects created with
the same
Refer to the description
of the alignment rules for
|
CL_MEM_ALLOC_HOST_PTR
|
This flag specifies that the application wants the OpenCL implementation to allocate memory from host accessible memory.
|
CL_MEM_COPY_HOST_PTR
|
This flag is valid only if
|
CL_MEM_HOST_WRITE_ONLY
|
This flag specifies that the host will only write to the memory object (using OpenCL APIs that enqueue a write or a map for write). This can be used to optimize write access from the host (e.g. enable write-combined allocations for memory objects for devices that communicate with the host over a system bus such as PCIe). |
CL_MEM_HOST_READ_ONLY
|
This flag specifies that the host will only read the memory object (using OpenCL APIs that enqueue a read or a map for read).
|
CL_MEM_HOST_NO_ACCESS
|
This flag specifies that the host will not read or write the memory object.
|
pipe_packet_size
Size in bytes of a pipe packet.
pipe_max_packets
Specifies the pipe capacity by specifying the maximum number of packets the pipe can hold.
properties
A list of properties for the pipe and their corresponding values. Each property
name is immediately followed by the corresponding desired value.
The list is terminated with 0.
In OpenCL 2.0, properties must be NULL.
errcode_ret
Will return an appropriate error code. If errcode_ret
is NULL, no error code is returned.
Pipes follow the same memory consistency model as defined for buffer and image objects. The pipe state i.e. contents of the pipe across kernel executions (on the same or different devices) is enforced at a synchronization point.
clCreatePipe returns a valid non-zero pipe object and
errcode_ret is set to CL_SUCCESS if the
pipe object is created successfully. Otherwise, it returns a NULL value with one of
the following error values returned in errcode_ret:
context is not a valid context.
flags are not as defined above.
properties is not NULL.
pipe_packet_size
is 0 or the pipe_packet_size exceeds
CL_DEVICE_PIPE_MAX_PACKET_SIZE value specified in table 4.3
(see clGetDeviceInfo)
for all devices in context or if
pipe_max_packets is 0.
Copyright © 2007-2013 The Khronos Group Inc.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.