6.17. OpenGL 互操作性 [已弃用]

本节介绍已弃用的OpenGL互操作功能。

枚举

enum cudaGLMapFlags

Functions

__host__cudaError_t cudaGLMapBufferObject ( void** devPtr, GLuint bufObj )
Maps a buffer object for access by CUDA.
__host__cudaError_t cudaGLMapBufferObjectAsync ( void** devPtr, GLuint bufObj, cudaStream_t stream )
Maps a buffer object for access by CUDA.
__host__cudaError_t cudaGLRegisterBufferObject ( GLuint bufObj )
Registers a buffer object for access by CUDA.
__host__cudaError_t cudaGLSetBufferObjectMapFlags ( GLuint bufObj, unsigned int  flags )
Set usage flags for mapping an OpenGL buffer.
__host__cudaError_t cudaGLSetGLDevice ( int  device )
Sets a CUDA device to use OpenGL interoperability.
__host__cudaError_t cudaGLUnmapBufferObject ( GLuint bufObj )
Unmaps a buffer object for access by CUDA.
__host__cudaError_t cudaGLUnmapBufferObjectAsync ( GLuint bufObj, cudaStream_t stream )
Unmaps a buffer object for access by CUDA.
__host__cudaError_t cudaGLUnregisterBufferObject ( GLuint bufObj )
Unregisters a buffer object for access by CUDA.

枚举

enum cudaGLMapFlags

CUDA GL 映射标志

数值
cudaGLMapFlagsNone = 0
Default; Assume resource can be read/written
cudaGLMapFlagsReadOnly = 1
CUDA kernels will not write to this resource
cudaGLMapFlagsWriteDiscard = 2
CUDA kernels will only write to and will not read from this resource

Functions

__host__cudaError_t cudaGLMapBufferObject ( void** devPtr, GLuint bufObj )
将一个缓冲区对象映射以供CUDA访问。
参数
devPtr
- Returned device pointer to CUDA object
bufObj
- Buffer object ID to map
已弃用

该函数自CUDA 3.0起已弃用。

描述

将ID为bufObj的缓冲区对象映射到CUDA的地址空间中,并在*devPtr中返回映射结果的基指针。该缓冲区必须事先通过调用cudaGLRegisterBufferObject()进行注册。当缓冲区被CUDA映射时,任何引用该缓冲区的OpenGL操作都将导致未定义行为。调用此函数时,用于创建缓冲区的OpenGL上下文或来自同一共享组的另一个上下文必须绑定到当前线程。

当前线程中的所有流都与当前GL上下文同步。

Note:

请注意,此函数也可能返回之前异步启动的错误代码。

另请参阅:

cudaGraphicsMapResources

__host__cudaError_t cudaGLMapBufferObjectAsync ( void** devPtr, GLuint bufObj, cudaStream_t stream )
将一个缓冲区对象映射以供CUDA访问。
参数
devPtr
- Returned device pointer to CUDA object
bufObj
- Buffer object ID to map
stream
- Stream to synchronize
已弃用

该函数自CUDA 3.0起已弃用。

描述

将ID为bufObj的缓冲区对象映射到CUDA的地址空间中,并在*devPtr中返回映射结果的基础指针。该缓冲区必须事先通过调用cudaGLRegisterBufferObject()进行注册。当缓冲区被CUDA映射时,任何引用该缓冲区的OpenGL操作都将导致未定义行为。调用此函数时,用于创建缓冲区的OpenGL上下文或来自同一共享组的另一个上下文必须绑定到当前线程。

流 /p stream 与当前GL上下文同步。

Note:

请注意,此函数也可能返回之前异步启动的错误代码。

另请参阅:

cudaGraphicsMapResources

__host__cudaError_t cudaGLRegisterBufferObject ( GLuint bufObj )
注册一个缓冲区对象以供CUDA访问。
参数
bufObj
- Buffer object ID to register
已弃用

该函数自CUDA 3.0起已弃用。

描述

注册ID为bufObj的缓冲区对象以供CUDA访问。在CUDA能够映射该缓冲区对象之前,必须调用此函数。调用时,用于创建该缓冲区的OpenGL上下文,或来自同一共享组的另一个上下文,必须绑定到当前线程。

Note:

请注意,此函数也可能返回之前异步启动的错误代码。

另请参阅:

cudaGraphicsGLRegisterBuffer

__host__cudaError_t cudaGLSetBufferObjectMapFlags ( GLuint bufObj, unsigned int  flags )
设置用于映射OpenGL缓冲区的使用标志。
参数
bufObj
- Registered buffer object to set flags for
flags
- Parameters for buffer mapping
已弃用

该函数自CUDA 3.0起已弃用。

描述

设置用于映射OpenGL缓冲区bufObj的标志

对标志的更改将在下次映射bufObj时生效。flags参数可以是以下任意一种:

  • cudaGLMapFlagsNone: 表示不提供关于该缓冲区使用方式的提示。因此,默认假设CUDA内核会对此缓冲区进行读写操作。这是默认值。

  • cudaGLMapFlagsReadOnly: 指定访问此缓冲区的CUDA内核不会对该缓冲区进行写入操作。

  • cudaGLMapFlagsWriteDiscard: 指定访问此缓冲区的CUDA内核不会从缓冲区读取数据,而是会覆盖缓冲区的全部内容,因此缓冲区中先前存储的所有数据都将不被保留。

如果bufObj尚未注册用于CUDA,则返回cudaErrorInvalidResourceHandle。如果bufObj当前已映射供CUDA访问,则返回cudaErrorUnknown

Note:

请注意,此函数也可能返回之前异步启动的错误代码。

另请参阅:

cudaGraphicsResourceSetMapFlags

__host__cudaError_t cudaGLSetGLDevice ( int  device )
设置一个CUDA设备以使用OpenGL互操作性。
参数
device
- Device to use for OpenGL interoperability
已弃用

该函数自CUDA 5.0起已弃用。

描述

此函数已弃用,不应再使用。为了实现最佳的互操作性性能,不再需要将CUDA设备与OpenGL上下文关联。

如果需要,此函数将立即在device上初始化主上下文。

Note:

请注意,此函数也可能返回之前异步启动的错误代码。

另请参阅:

cudaGraphicsGLRegisterBuffer, cudaGraphicsGLRegisterImage

__host__cudaError_t cudaGLUnmapBufferObject ( GLuint bufObj )
解除映射一个缓冲区对象以供CUDA访问。
参数
bufObj
- Buffer object to unmap
已弃用

该函数自CUDA 3.0起已弃用。

描述

解除ID为bufObj的缓冲区对象对CUDA的访问映射。当缓冲区解除映射后,由cudaGLMapBufferObject()返回的基地址将失效,后续对该地址的引用会导致未定义行为。调用此函数时,必须将创建缓冲区时使用的OpenGL上下文或来自同一共享组的其他上下文绑定到当前线程。

当前线程中的所有流都与当前GL上下文同步。

Note:

请注意,此函数也可能返回之前异步启动的错误代码。

另请参阅:

cudaGraphicsUnmapResources

__host__cudaError_t cudaGLUnmapBufferObjectAsync ( GLuint bufObj, cudaStream_t stream )
解除映射一个缓冲区对象以供CUDA访问。
参数
bufObj
- Buffer object to unmap
stream
- Stream to synchronize
已弃用

该函数自CUDA 3.0起已弃用。

描述

解除ID为bufObj的缓冲区对象与CUDA的映射关系。当缓冲区解除映射后,由cudaGLMapBufferObject()返回的基地址将失效,后续对该地址的引用会导致未定义行为。调用此函数时,必须将创建该缓冲区时使用的OpenGL上下文(或来自同一共享组的其他上下文)绑定到当前线程。

流 /p stream 与当前GL上下文同步。

Note:

请注意,此函数也可能返回之前异步启动的错误代码。

另请参阅:

cudaGraphicsUnmapResources

__host__cudaError_t cudaGLUnregisterBufferObject ( GLuint bufObj )
取消注册一个缓冲区对象,使其不再被CUDA访问。
参数
bufObj
- Buffer object to unregister
返回

cudaSuccess

已弃用

该函数自CUDA 3.0起已弃用。

描述

注销ID为bufObj的缓冲区对象对CUDA的访问权限,并释放与该缓冲区关联的所有CUDA资源。一旦缓冲区被注销,CUDA将无法再映射该缓冲区。调用此函数时,必须将创建该缓冲区时使用的GL上下文或来自同一共享组的另一个上下文绑定到当前线程。

Note:

请注意,此函数也可能返回之前异步启动的错误代码。

另请参阅:

cudaGraphicsUnregisterResource