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.
枚举
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:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- __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:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- __host__ cudaError_t cudaGLRegisterBufferObject ( GLuint bufObj )
-
注册一个缓冲区对象以供CUDA访问。
参数
- bufObj
- - Buffer object ID to register
已弃用
该函数自CUDA 3.0起已弃用。
描述
注册ID为bufObj的缓冲区对象以供CUDA访问。在CUDA能够映射该缓冲区对象之前,必须调用此函数。调用时,用于创建该缓冲区的OpenGL上下文,或来自同一共享组的另一个上下文,必须绑定到当前线程。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- __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:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- __host__ cudaError_t cudaGLSetGLDevice ( int device )
-
设置一个CUDA设备以使用OpenGL互操作性。
参数
- device
- - Device to use for OpenGL interoperability
已弃用
该函数自CUDA 5.0起已弃用。
描述
此函数已弃用,不应再使用。为了实现最佳的互操作性性能,不再需要将CUDA设备与OpenGL上下文关联。
如果需要,此函数将立即在device上初始化主上下文。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- __host__ cudaError_t cudaGLUnmapBufferObject ( GLuint bufObj )
-
解除映射一个缓冲区对象以供CUDA访问。
参数
- bufObj
- - Buffer object to unmap
已弃用
该函数自CUDA 3.0起已弃用。
描述
解除ID为bufObj的缓冲区对象对CUDA的访问映射。当缓冲区解除映射后,由cudaGLMapBufferObject()返回的基地址将失效,后续对该地址的引用会导致未定义行为。调用此函数时,必须将创建缓冲区时使用的OpenGL上下文或来自同一共享组的其他上下文绑定到当前线程。
当前线程中的所有流都与当前GL上下文同步。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- __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:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- __host__ cudaError_t cudaGLUnregisterBufferObject ( GLuint bufObj )
-
取消注册一个缓冲区对象,使其不再被CUDA访问。
参数
- bufObj
- - Buffer object to unregister
返回
已弃用
该函数自CUDA 3.0起已弃用。
描述
注销ID为bufObj的缓冲区对象对CUDA的访问权限,并释放与该缓冲区关联的所有CUDA资源。一旦缓冲区被注销,CUDA将无法再映射该缓冲区。调用此函数时,必须将创建该缓冲区时使用的GL上下文或来自同一共享组的另一个上下文绑定到当前线程。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅: