Man pages sections > man3 > CUDA_EGL

EGL Interoperability - EGL interoperability functions of the low-level CUDA

EGL Interoperability(3) Doxygen EGL Interoperability(3)

NAME

EGL Interoperability - EGL interoperability functions of the low-level CUDA driver API ( cudaEGL.h).
 

Functions


CUresult cuEGLStreamConsumerAcquireFrame (CUeglStreamConnection *conn, CUgraphicsResource *pCudaResource, CUstream *pStream, unsigned int timeout)
 
Acquire an image frame from the EGLStream with CUDA as a consumer. CUresult cuEGLStreamConsumerConnect (CUeglStreamConnection *conn, EGLStreamKHR stream)
 
Connect CUDA to EGLStream as a consumer. CUresult cuEGLStreamConsumerConnectWithFlags ( CUeglStreamConnection *conn, EGLStreamKHR stream, unsigned int flags)
 
Connect CUDA to EGLStream as a consumer with given flags. CUresult cuEGLStreamConsumerDisconnect (CUeglStreamConnection *conn)
 
Disconnect CUDA as a consumer to EGLStream . CUresult cuEGLStreamConsumerReleaseFrame ( CUeglStreamConnection *conn, CUgraphicsResource pCudaResource, CUstream *pStream)
 
Releases the last frame acquired from the EGLStream. CUresult cuEGLStreamProducerConnect ( CUeglStreamConnection *conn, EGLStreamKHR stream, EGLint width, EGLint height)
 
Connect CUDA to EGLStream as a producer. CUresult cuEGLStreamProducerDisconnect ( CUeglStreamConnection *conn)
 
Disconnect CUDA as a producer to EGLStream . CUresult cuEGLStreamProducerPresentFrame ( CUeglStreamConnection *conn, CUeglFrame eglframe, CUstream *pStream)
 
Present a CUDA eglFrame to the EGLStream with CUDA as a producer. CUresult cuEGLStreamProducerReturnFrame (CUeglStreamConnection *conn, CUeglFrame *eglframe, CUstream *pStream)
 
Return the CUDA eglFrame to the EGLStream released by the consumer. CUresult cuGraphicsEGLRegisterImage (CUgraphicsResource *pCudaResource, EGLImageKHR image, unsigned int flags)
 
Registers an EGL image. CUresult cuGraphicsResourceGetMappedEglFrame ( CUeglFrame *eglFrame, CUgraphicsResource resource, unsigned int index, unsigned int mipLevel)
 
Get an eglFrame through which to access a registered EGL graphics resource.

Detailed Description

This section describes the EGL interoperability functions of the low-level CUDA driver application programming interface.

Function Documentation

CUresult cuEGLStreamConsumerAcquireFrame ( CUeglStreamConnection * conn, CUgraphicsResource * pCudaResource, CUstream * pStream, unsigned int timeout)

Acquire an image frame from EGLStreamKHR. cuGraphicsResourceGetMappedEglFrame can be called on pCudaResource to get CUeglFrame. The EGLStreamKHR is an EGL object that transfers a sequence of image frames from one API to another.
Parameters:
conn - Connection on which to acquire
 
pCudaResource - CUDA resource on which the stream frame will be mapped for use.
 
pStream - CUDA stream on which acquire will be done.
 
timeout - Desired timeout in usec.
Returns:
CUDA_SUCCESS, CUDA_ERROR_INVALID_HANDLE,
See also:
cuEGLStreamConsumerConnect, cuEGLStreamConsumerDisconnect, cuEGLStreamConsumerAcquireFrame, cuEGLStreamConsumerReleaseFrame

CUresult cuEGLStreamConsumerConnect ( CUeglStreamConnection * conn, EGLStreamKHR stream)

Connect CUDA as a consumer to EGLStreamKHR specified by stream.
The EGLStreamKHR is an EGL object that transfers a sequence of image frames from one API to another.
Parameters:
conn - Pointer to the returned connection handle
 
stream - EGLStreamKHR handle
Returns:
CUDA_SUCCESS, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_INVALID_CONTEXT,
See also:
cuEGLStreamConsumerConnect, cuEGLStreamConsumerDisconnect, cuEGLStreamConsumerAcquireFrame, cuEGLStreamConsumerReleaseFrame

CUresult cuEGLStreamConsumerConnectWithFlags ( CUeglStreamConnection * conn, EGLStreamKHR stream, unsigned int flags)

Connect CUDA as a consumer to EGLStreamKHR specified by stream with specified flags.
The flags specify whether the consumer will be on system or video memory. By default the consumer is on vidmem. For applications having producer running on system and consumer running on video, internal copies will be involved to move data from system to video memory. API to another. The surfaces's intented location is specified using flags, as follows:
CU_EGL_RESOURCE_LOCATION_SYSMEM: Resource location sysmem.
CU_EGL_RESOURCE_LOCATION_VIDMEM: Resource location vidmem.
Parameters:
conn - Pointer to the returned connection handle
 
stream - EGLStreamKHR handle
 
flags - Flags denote intended location - system or video.
Returns:
CUDA_SUCCESS, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_INVALID_CONTEXT,
See also:
cuEGLStreamConsumerConnect, cuEGLStreamConsumerDisconnect, cuEGLStreamConsumerAcquireFrame, cuEGLStreamConsumerReleaseFrame

CUresult cuEGLStreamConsumerDisconnect ( CUeglStreamConnection * conn)

Disconnect CUDA as a consumer to EGLStreamKHR.
The EGLStreamKHR is an EGL object that transfers a sequence of image frames from one API to another.
Parameters:
conn - Connection to disconnect.
Returns:
CUDA_SUCCESS, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_INVALID_CONTEXT,
See also:
cuEGLStreamConsumerConnect, cuEGLStreamConsumerDisconnect, cuEGLStreamConsumerAcquireFrame, cuEGLStreamConsumerReleaseFrame

CUresult cuEGLStreamConsumerReleaseFrame ( CUeglStreamConnection * conn, CUgraphicsResource pCudaResource, CUstream * pStream)

Release the acquired image frame specified by pCudaResource to EGLStreamKHR.
The EGLStreamKHR is an EGL object that transfers a sequence of image frames from one API to another.
Parameters:
conn - Connection on which to release
 
pCudaResource - CUDA resource whose corresponding frame is to be released
 
pStream - CUDA stream on which release will be done.
Returns:
CUDA_SUCCESS, CUDA_ERROR_INVALID_HANDLE,
See also:
cuEGLStreamConsumerConnect, cuEGLStreamConsumerDisconnect, cuEGLStreamConsumerAcquireFrame, cuEGLStreamConsumerReleaseFrame

CUresult cuEGLStreamProducerConnect ( CUeglStreamConnection * conn, EGLStreamKHR stream, EGLint width, EGLint height)

Connect CUDA as a producer to EGLStreamKHR specified by stream.
The EGLStreamKHR is an EGL object that transfers a sequence of image frames from one API to another.
Parameters:
conn - Pointer to the returned connection handle
 
stream - EGLStreamKHR handle
 
width - width of the image to be submitted to the stream
 
height - height of the image to be submitted to the stream
Returns:
CUDA_SUCCESS, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_INVALID_CONTEXT,
See also:
cuEGLStreamProducerConnect, cuEGLStreamProducerDisconnect, cuEGLStreamProducerPresentFrame

CUresult cuEGLStreamProducerDisconnect ( CUeglStreamConnection * conn)

Disconnect CUDA as a producer to EGLStreamKHR.
The EGLStreamKHR is an EGL object that transfers a sequence of image frames from one API to another.
Parameters:
conn - Connection to disconnect.
Returns:
CUDA_SUCCESS, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_INVALID_CONTEXT,
See also:
cuEGLStreamProducerConnect, cuEGLStreamProducerDisconnect, cuEGLStreamProducerPresentFrame

CUresult cuEGLStreamProducerPresentFrame ( CUeglStreamConnection * conn, CUeglFrame eglframe, CUstream * pStream)

The EGLStreamKHR is an EGL object that transfers a sequence of image frames from one API to another.
The CUeglFrame is defined as:
 typedef struct CUeglFrame_st {
     union {
         CUarray pArray[MAX_PLANES];
         void*   pPitch[MAX_PLANES];
     } frame;
     unsigned int width;
     unsigned int height;
     unsigned int depth;
     unsigned int pitch;
     unsigned int planeCount;
     unsigned int numChannels;
     CUeglFrameType frameType;
     CUeglColorFormat eglColorFormat;
     CUarray_format cuFormat;
 } CUeglFrame;
Parameters:
conn - Connection on which to present the CUDA array
 
eglframe - CUDA Eglstream Proucer Frame handle to be sent to the consumer over EglStream.
 
pStream - CUDA stream on which to present the frame.
Returns:
CUDA_SUCCESS, CUDA_ERROR_INVALID_HANDLE,
See also:
cuEGLStreamProducerConnect, cuEGLStreamProducerDisconnect, cuEGLStreamProducerReturnFrame

CUresult cuEGLStreamProducerReturnFrame ( CUeglStreamConnection * conn, CUeglFrame * eglframe, CUstream * pStream)

The EGLStreamKHR is an EGL object that transfers a sequence of image frames from one API to another.
Parameters:
conn - Connection on which to return
 
eglframe - CUDA Eglstream Proucer Frame handle returned from the consumer over EglStream.
 
pStream - CUDA stream on which to return the frame.
Returns:
CUDA_SUCCESS, CUDA_ERROR_INVALID_HANDLE,
See also:
cuEGLStreamProducerConnect, cuEGLStreamProducerDisconnect, cuEGLStreamProducerPresentFrame

CUresult cuGraphicsEGLRegisterImage ( CUgraphicsResource * pCudaResource, EGLImageKHR image, unsigned int flags)

Registers the EGLImageKHR specified by image for access by CUDA. A handle to the registered object is returned as pCudaResource. Additional Mapping/Unmapping is not required for the registered resource and cuGraphicsResourceGetMappedEglFrame can be directly called on the pCudaResource.
The application will be responsible for synchronizing access to shared objects. The application must ensure that any pending operation which access the objects have completed before passing control to CUDA. This may be accomplished by issuing and waiting for glFinish command on all GLcontexts (for OpenGL and likewise for other APIs). The application will be also responsible for ensuring that any pending operation on the registered CUDA resource has completed prior to executing subsequent commands in other APIs accessing the same memory objects. This can be accomplished by calling cuCtxSynchronize or cuEventSynchronize (preferably).
The surface's intended usage is specified using flags, as follows:
CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE: Specifies no hints about how this resource will be used. It is therefore assumed that this resource will be read from and written to by CUDA. This is the default value.
CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY: Specifies that CUDA will not write to this resource.
CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD: Specifies that CUDA will not read from this resource and will write over the entire contents of the resource, so none of the data previously stored in the resource will be preserved.
The EGLImageKHR is an object which can be used to create EGLImage target resource. It is defined as a void pointer. typedef void* EGLImageKHR
Parameters:
pCudaResource - Pointer to the returned object handle
 
image - An EGLImageKHR image which can be used to create target resource.
 
flags - Map flags
Returns:
CUDA_SUCCESS, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_ALREADY_MAPPED, CUDA_ERROR_INVALID_CONTEXT,
See also:
cuGraphicsEGLRegisterImage, cuGraphicsUnregisterResource, cuGraphicsResourceSetMapFlags, cuGraphicsMapResources, cuGraphicsUnmapResources

CUresult cuGraphicsResourceGetMappedEglFrame ( CUeglFrame * eglFrame, CUgraphicsResource resource, unsigned int index, unsigned int mipLevel)

Returns in *eglFrame an eglFrame pointer through which the registered graphics resource resource may be accessed. This API can only be called for EGL graphics resources.
The CUeglFrame is defined as:
 typedef struct CUeglFrame_st {
     union {
         CUarray pArray[MAX_PLANES];
         void*   pPitch[MAX_PLANES];
     } frame;
     unsigned int width;
     unsigned int height;
     unsigned int depth;
     unsigned int pitch;
     unsigned int planeCount;
     unsigned int numChannels;
     CUeglFrameType frameType;
     CUeglColorFormat eglColorFormat;
     CUarray_format cuFormat;
 } CUeglFrame;
If resource is not registered then CUDA_ERROR_NOT_MAPPED is returned. *
Parameters:
eglFrame - Returned eglFrame.
 
resource - Registered resource to access.
 
index - Index for cubemap surfaces.
 
mipLevel - Mipmap level for the subresource to access.
Returns:
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_NOT_MAPPED
See also:
cuGraphicsMapResources, cuGraphicsSubResourceGetMappedArray, cuGraphicsResourceGetMappedPointer

Author

Generated automatically by Doxygen from the source code.
13 Jan 2017 Version 6.0