6.38.1. OpenGL Interoperability [DEPRECATED]

[OpenGL Interoperability]

This section describes deprecated OpenGL interoperability functionality.

Enumerations

enum CUGLmap_flags

Functions

CUresult cuGLCtxCreate ( CUcontext* pCtx, unsigned int  Flags, CUdevice device )
Create a CUDA context for interoperability with OpenGL.
CUresult cuGLInit ( void )
Initializes OpenGL interoperability.
CUresult cuGLMapBufferObject ( CUdeviceptr* dptr, size_t* size, GLuint buffer )
Maps an OpenGL buffer object.
CUresult cuGLMapBufferObjectAsync ( CUdeviceptr* dptr, size_t* size, GLuint buffer, CUstream hStream )
Maps an OpenGL buffer object.
CUresult cuGLRegisterBufferObject ( GLuint buffer )
Registers an OpenGL buffer object.
CUresult cuGLSetBufferObjectMapFlags ( GLuint buffer, unsigned int  Flags )
Set the map flags for an OpenGL buffer object.
CUresult cuGLUnmapBufferObject ( GLuint buffer )
Unmaps an OpenGL buffer object.
CUresult cuGLUnmapBufferObjectAsync ( GLuint buffer, CUstream hStream )
Unmaps an OpenGL buffer object.
CUresult cuGLUnregisterBufferObject ( GLuint buffer )
Unregister an OpenGL buffer object.

Enumerations

enum CUGLmap_flags

Flags to map or unmap a resource

Values
CU_GL_MAP_RESOURCE_FLAGS_NONE = 0x00
CU_GL_MAP_RESOURCE_FLAGS_READ_ONLY = 0x01
CU_GL_MAP_RESOURCE_FLAGS_WRITE_DISCARD = 0x02

Functions

CUresult cuGLCtxCreate ( CUcontext* pCtx, unsigned int  Flags, CUdevice device )
Create a CUDA context for interoperability with OpenGL.
Parameters
pCtx
- Returned CUDA context
Flags
- Options for CUDA context creation
device
- Device on which to create the context
Deprecated

This function is deprecated as of Cuda 5.0.

Description

This function is deprecated and should no longer be used. It is no longer necessary to associate a CUDA context with an OpenGL context in order to achieve maximum interoperability performance.

Note:

Note that this function may also return error codes from previous, asynchronous launches.

See also:

cuCtxCreate, cuGLInit, cuGLMapBufferObject, cuGLRegisterBufferObject, cuGLUnmapBufferObject, cuGLUnregisterBufferObject, cuGLMapBufferObjectAsync, cuGLUnmapBufferObjectAsync, cuGLSetBufferObjectMapFlags, cuWGLGetDevice

CUresult cuGLInit ( void )
Initializes OpenGL interoperability.
Deprecated

This function is deprecated as of Cuda 3.0.

Description

Initializes OpenGL interoperability. This function is deprecated and calling it is no longer required. It may fail if the needed OpenGL driver facilities are not available.

Note:

Note that this function may also return error codes from previous, asynchronous launches.

See also:

cuGLMapBufferObject, cuGLRegisterBufferObject, cuGLUnmapBufferObject, cuGLUnregisterBufferObject, cuGLMapBufferObjectAsync, cuGLUnmapBufferObjectAsync, cuGLSetBufferObjectMapFlags, cuWGLGetDevice

CUresult cuGLMapBufferObject ( CUdeviceptr* dptr, size_t* size, GLuint buffer )
Maps an OpenGL buffer object.
Parameters
dptr
- Returned mapped base pointer
size
- Returned size of mapping
buffer
- The name of the buffer object to map
Deprecated

This function is deprecated as of Cuda 3.0.

Description

Maps the buffer object specified by buffer into the address space of the current CUDA context and returns in *dptr and *size the base pointer and size of the resulting mapping.

There must be a valid OpenGL context bound to the current thread when this function is called. This must be the same context, or a member of the same shareGroup, as the context that was bound when the buffer was registered.

All streams in the current CUDA context are synchronized with the current GL context.

Note:

Note that this function may also return error codes from previous, asynchronous launches.

See also:

cuGraphicsMapResources

CUresult cuGLMapBufferObjectAsync ( CUdeviceptr* dptr, size_t* size, GLuint buffer, CUstream hStream )
Maps an OpenGL buffer object.
Parameters
dptr
- Returned mapped base pointer
size
- Returned size of mapping
buffer
- The name of the buffer object to map
hStream
- Stream to synchronize
Deprecated

This function is deprecated as of Cuda 3.0.

Description

Maps the buffer object specified by buffer into the address space of the current CUDA context and returns in *dptr and *size the base pointer and size of the resulting mapping.

There must be a valid OpenGL context bound to the current thread when this function is called. This must be the same context, or a member of the same shareGroup, as the context that was bound when the buffer was registered.

Stream hStream in the current CUDA context is synchronized with the current GL context.

Note:

Note that this function may also return error codes from previous, asynchronous launches.

See also:

cuGraphicsMapResources

CUresult cuGLRegisterBufferObject ( GLuint buffer )
Registers an OpenGL buffer object.
Parameters
buffer
- The name of the buffer object to register.
Deprecated

This function is deprecated as of Cuda 3.0.

Description

Registers the buffer object specified by buffer for access by CUDA. This function must be called before CUDA can map the buffer object. There must be a valid OpenGL context bound to the current thread when this function is called, and the buffer name is resolved by that context.

Note:

Note that this function may also return error codes from previous, asynchronous launches.

See also:

cuGraphicsGLRegisterBuffer

CUresult cuGLSetBufferObjectMapFlags ( GLuint buffer, unsigned int  Flags )
Set the map flags for an OpenGL buffer object.
Parameters
buffer
- Buffer object to unmap
Flags
- Map flags
Deprecated

This function is deprecated as of Cuda 3.0.

Description

Sets the map flags for the buffer object specified by buffer.

Changes to Flags will take effect the next time buffer is mapped. The Flags argument may be any of the following:

  • CU_GL_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 kernels. This is the default value.

  • CU_GL_MAP_RESOURCE_FLAGS_READ_ONLY: Specifies that CUDA kernels which access this resource will not write to this resource.

  • CU_GL_MAP_RESOURCE_FLAGS_WRITE_DISCARD: Specifies that CUDA kernels which access this resource 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.

If buffer has not been registered for use with CUDA, then CUDA_ERROR_INVALID_HANDLE is returned. If buffer is presently mapped for access by CUDA, then CUDA_ERROR_ALREADY_MAPPED is returned.

There must be a valid OpenGL context bound to the current thread when this function is called. This must be the same context, or a member of the same shareGroup, as the context that was bound when the buffer was registered.

Note:

Note that this function may also return error codes from previous, asynchronous launches.

See also:

cuGraphicsResourceSetMapFlags

CUresult cuGLUnmapBufferObject ( GLuint buffer )
Unmaps an OpenGL buffer object.
Parameters
buffer
- Buffer object to unmap
Deprecated

This function is deprecated as of Cuda 3.0.

Description

Unmaps the buffer object specified by buffer for access by CUDA.

There must be a valid OpenGL context bound to the current thread when this function is called. This must be the same context, or a member of the same shareGroup, as the context that was bound when the buffer was registered.

All streams in the current CUDA context are synchronized with the current GL context.

Note:

Note that this function may also return error codes from previous, asynchronous launches.

See also:

cuGraphicsUnmapResources

CUresult cuGLUnmapBufferObjectAsync ( GLuint buffer, CUstream hStream )
Unmaps an OpenGL buffer object.
Parameters
buffer
- Name of the buffer object to unmap
hStream
- Stream to synchronize
Deprecated

This function is deprecated as of Cuda 3.0.

Description

Unmaps the buffer object specified by buffer for access by CUDA.

There must be a valid OpenGL context bound to the current thread when this function is called. This must be the same context, or a member of the same shareGroup, as the context that was bound when the buffer was registered.

Stream hStream in the current CUDA context is synchronized with the current GL context.

Note:

Note that this function may also return error codes from previous, asynchronous launches.

See also:

cuGraphicsUnmapResources

CUresult cuGLUnregisterBufferObject ( GLuint buffer )
Unregister an OpenGL buffer object.
Parameters
buffer
- Name of the buffer object to unregister
Deprecated

This function is deprecated as of Cuda 3.0.

Description

Unregisters the buffer object specified by buffer. This releases any resources associated with the registered buffer. After this call, the buffer may no longer be mapped for access by CUDA.

There must be a valid OpenGL context bound to the current thread when this function is called. This must be the same context, or a member of the same shareGroup, as the context that was bound when the buffer was registered.

Note:

Note that this function may also return error codes from previous, asynchronous launches.

See also:

cuGraphicsUnregisterResource