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

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

枚举

enum cudaGLMapFlags

函数

__host__cudaError_t cudaGLMapBufferObject ( void** devPtr, GLuint bufObj )
映射缓冲区对象以供 CUDA 访问。
__host__cudaError_t cudaGLMapBufferObjectAsync ( void** devPtr, GLuint bufObj, cudaStream_t stream )
映射缓冲区对象以供 CUDA 访问。
__host__cudaError_t cudaGLRegisterBufferObject ( GLuint bufObj )
注册缓冲区对象以供 CUDA 访问。
__host__cudaError_t cudaGLSetBufferObjectMapFlags ( GLuint bufObj, unsigned int  flags )
设置用于映射 OpenGL 缓冲区的用法标志。
__host__cudaError_t cudaGLSetGLDevice ( int  device )
设置 CUDA 设备以使用 OpenGL 互操作性。
__host__cudaError_t cudaGLUnmapBufferObject ( GLuint bufObj )
取消映射缓冲区对象以供 CUDA 访问。
__host__cudaError_t cudaGLUnmapBufferObjectAsync ( GLuint bufObj, cudaStream_t stream )
取消映射缓冲区对象以供 CUDA 访问。
__host__cudaError_t cudaGLUnregisterBufferObject ( GLuint bufObj )
取消注册缓冲区对象以供 CUDA 访问。

枚举

enum cudaGLMapFlags

CUDA GL 映射标志

cudaGLMapFlagsNone = 0
默认值;假设资源可以读取/写入
cudaGLMapFlagsReadOnly = 1
CUDA 内核不会写入此资源
cudaGLMapFlagsWriteDiscard = 2
CUDA 内核只会写入此资源,而不会从中读取

函数

__host__cudaError_t cudaGLMapBufferObject ( void** devPtr, GLuint bufObj )
映射缓冲区对象以供 CUDA 访问。
参数
devPtr
- 返回 CUDA 对象的设备指针
bufObj
- 要映射的缓冲区对象 ID
已弃用

此函数自 CUDA 3.0 起已弃用。

描述

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

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

注意

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

另请参阅

cudaGraphicsMapResources

__host__cudaError_t cudaGLMapBufferObjectAsync ( void** devPtr, GLuint bufObj, cudaStream_t stream )
映射缓冲区对象以供 CUDA 访问。
参数
devPtr
- 返回 CUDA 对象的设备指针
bufObj
- 要映射的缓冲区对象 ID
stream
- 要同步的流
已弃用

此函数自 CUDA 3.0 起已弃用。

描述

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

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

注意

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

另请参阅

cudaGraphicsMapResources

__host__cudaError_t cudaGLRegisterBufferObject ( GLuint bufObj )
注册缓冲区对象以供 CUDA 访问。
参数
bufObj
- 要注册的缓冲区对象 ID
已弃用

此函数自 CUDA 3.0 起已弃用。

描述

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

注意

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

另请参阅

cudaGraphicsGLRegisterBuffer

__host__cudaError_t cudaGLSetBufferObjectMapFlags ( GLuint bufObj, unsigned int  flags )
设置用于映射 OpenGL 缓冲区的用法标志。
参数
bufObj
- 要设置标志的已注册缓冲区对象
flags
- 缓冲区映射的参数
已弃用

此函数自 CUDA 3.0 起已弃用。

描述

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

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

  • cudaGLMapFlagsNone:指定不提示如何使用此缓冲区。因此,假定 CUDA 内核将从此缓冲区读取和写入。这是默认值。

  • cudaGLMapFlagsReadOnly:指定访问此缓冲区的 CUDA 内核不会写入缓冲区。

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

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

注意

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

另请参阅

cudaGraphicsResourceSetMapFlags

__host__cudaError_t cudaGLSetGLDevice ( int  device )
设置 CUDA 设备以使用 OpenGL 互操作性。
参数
device
- 用于 OpenGL 互操作性的设备
已弃用

此函数自 CUDA 5.0 起已弃用。

描述

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

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

注意

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

另请参阅

cudaGraphicsGLRegisterBuffer, cudaGraphicsGLRegisterImage

__host__cudaError_t cudaGLUnmapBufferObject ( GLuint bufObj )
取消映射缓冲区对象以供 CUDA 访问。
参数
bufObj
- 要取消映射的缓冲区对象
已弃用

此函数自 CUDA 3.0 起已弃用。

描述

取消映射 ID 为bufObj的缓冲区对象以供 CUDA 访问。取消映射缓冲区后,cudaGLMapBufferObject() 返回的基地址无效,随后对该地址的引用将导致未定义的行为。用于创建缓冲区的 OpenGL 上下文,或来自同一共享组的另一个上下文,必须在此调用时绑定到当前线程。

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

注意

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

另请参阅

cudaGraphicsUnmapResources

__host__cudaError_t cudaGLUnmapBufferObjectAsync ( GLuint bufObj, cudaStream_t stream )
取消映射缓冲区对象以供 CUDA 访问。
参数
bufObj
- 要取消映射的缓冲区对象
stream
- 要同步的流
已弃用

此函数自 CUDA 3.0 起已弃用。

描述

取消映射 ID 为bufObj的缓冲区对象以供 CUDA 访问。取消映射缓冲区后,cudaGLMapBufferObject() 返回的基地址无效,随后对该地址的引用将导致未定义的行为。用于创建缓冲区的 OpenGL 上下文,或来自同一共享组的另一个上下文,必须在此调用时绑定到当前线程。

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

注意

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

另请参阅

cudaGraphicsUnmapResources

__host__cudaError_t cudaGLUnregisterBufferObject ( GLuint bufObj )
取消注册缓冲区对象以供 CUDA 访问。
参数
bufObj
- 要取消注册的缓冲区对象
返回值

cudaSuccess

已弃用

此函数自 CUDA 3.0 起已弃用。

描述

取消注册 ID 为bufObj的缓冲区对象以供 CUDA 访问,并释放与该缓冲区关联的任何 CUDA 资源。缓冲区一旦取消注册,就不能再由 CUDA 映射。用于创建缓冲区的 GL 上下文,或来自同一共享组的另一个上下文,必须在此调用时绑定到当前线程。

注意

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

另请参阅

cudaGraphicsUnregisterResource