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

[OpenGL互操作性]

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

枚举

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.

枚举

enum CUGLmap_flags

用于映射或取消映射资源的标志

数值
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 )
创建一个CUDA上下文以实现与OpenGL的互操作性。
参数
pCtx
- Returned CUDA context
Flags
- Options for CUDA context creation
device
- Device on which to create the context
已弃用

该函数自Cuda 5.0起已弃用。

描述

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

Note:

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

另请参阅:

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

CUresult cuGLInit ( void )
初始化OpenGL互操作性。
已弃用

该函数自Cuda 3.0起已弃用。

描述

初始化OpenGL互操作性。此函数已弃用,不再需要调用。如果所需的OpenGL驱动程序功能不可用,可能会失败。

Note:

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

另请参阅:

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

CUresult cuGLMapBufferObject ( CUdeviceptr* dptr, size_t* size, GLuint buffer )
映射一个OpenGL缓冲对象。
参数
dptr
- Returned mapped base pointer
size
- Returned size of mapping
buffer
- The name of the buffer object to map
已弃用

该函数自Cuda 3.0起已弃用。

描述

buffer指定的缓冲区对象映射到当前CUDA上下文的地址空间中,并在*dptr*size中返回结果映射的基指针和大小。

调用此函数时,当前线程必须绑定有效的OpenGL上下文。该上下文必须与注册缓冲区时绑定的上下文相同,或是同一共享组的成员。

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

Note:

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

另请参阅:

cuGraphicsMapResources

CUresult cuGLMapBufferObjectAsync ( CUdeviceptr* dptr, size_t* size, GLuint buffer, CUstream hStream )
映射一个OpenGL缓冲对象。
参数
dptr
- Returned mapped base pointer
size
- Returned size of mapping
buffer
- The name of the buffer object to map
hStream
- Stream to synchronize
已弃用

该函数自Cuda 3.0起已弃用。

描述

buffer指定的缓冲区对象映射到当前CUDA上下文的地址空间中,并在*dptr*size中返回结果映射的基指针和大小。

调用此函数时,当前线程必须绑定有效的OpenGL上下文。该上下文必须与注册缓冲区时绑定的上下文相同,或是同一共享组的成员。

当前CUDA上下文中的流hStream将与当前GL上下文同步。

Note:

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

另请参阅:

cuGraphicsMapResources

CUresult cuGLRegisterBufferObject ( GLuint buffer )
注册一个OpenGL缓冲对象。
参数
buffer
- The name of the buffer object to register.
已弃用

该函数自Cuda 3.0起已弃用。

描述

注册由buffer指定的缓冲区对象以供CUDA访问。在CUDA能够映射该缓冲区对象之前,必须调用此函数。调用此函数时,当前线程必须绑定有效的OpenGL上下文,并且缓冲区名称由该上下文解析。

Note:

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

另请参阅:

cuGraphicsGLRegisterBuffer

CUresult cuGLSetBufferObjectMapFlags ( GLuint buffer, unsigned int  Flags )
设置OpenGL缓冲区对象的地图标志。
参数
buffer
- Buffer object to unmap
Flags
- Map flags
已弃用

该函数自Cuda 3.0起已弃用。

描述

设置由buffer指定的缓冲区对象的地图标志。

Flags的更改将在下次映射buffer时生效。Flags参数可以是以下任意一种:

  • CU_GL_MAP_RESOURCE_FLAGS_NONE: 指定不提供关于该资源使用方式的提示。因此默认假设该资源将被CUDA内核读取和写入。这是默认值。

  • CU_GL_MAP_RESOURCE_FLAGS_READ_ONLY: 指定访问此资源的CUDA内核将不会对该资源执行写入操作。

  • CU_GL_MAP_RESOURCE_FLAGS_WRITE_DISCARD: 指定访问此资源的CUDA内核将不会读取该资源内容,而是会覆盖资源的全部内容,因此之前存储在资源中的所有数据都不会被保留。

如果buffer尚未注册用于CUDA,则返回CUDA_ERROR_INVALID_HANDLE。如果buffer当前已映射供CUDA访问,则返回CUDA_ERROR_ALREADY_MAPPED

调用此函数时,当前线程必须绑定有效的OpenGL上下文。该上下文必须与注册缓冲区时绑定的上下文相同,或是同一共享组的成员。

Note:

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

另请参阅:

cuGraphicsResourceSetMapFlags

CUresult cuGLUnmapBufferObject ( GLuint buffer )
解映射一个OpenGL缓冲对象。
参数
buffer
- Buffer object to unmap
已弃用

该函数自Cuda 3.0起已弃用。

描述

解除由buffer指定的缓冲区对象映射,以便CUDA访问。

调用此函数时,当前线程必须绑定有效的OpenGL上下文。该上下文必须与注册缓冲区时绑定的上下文相同,或是同一共享组的成员。

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

Note:

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

另请参阅:

cuGraphicsUnmapResources

CUresult cuGLUnmapBufferObjectAsync ( GLuint buffer, CUstream hStream )
解映射一个OpenGL缓冲对象。
参数
buffer
- Name of the buffer object to unmap
hStream
- Stream to synchronize
已弃用

该函数自Cuda 3.0起已弃用。

描述

解除由buffer指定的缓冲区对象映射,以便CUDA访问。

调用此函数时,当前线程必须绑定有效的OpenGL上下文。该上下文必须与注册缓冲区时绑定的上下文相同,或是同一共享组的成员。

当前CUDA上下文中的流hStream将与当前GL上下文同步。

Note:

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

另请参阅:

cuGraphicsUnmapResources

CUresult cuGLUnregisterBufferObject ( GLuint buffer )
注销一个OpenGL缓冲区对象。
参数
buffer
- Name of the buffer object to unregister
已弃用

该函数自Cuda 3.0起已弃用。

描述

注销由buffer指定的缓冲区对象。这将释放与该注册缓冲区关联的所有资源。调用此操作后,该缓冲区可能不再被CUDA映射以供访问。

调用此函数时,当前线程必须绑定有效的OpenGL上下文。该上下文必须与注册缓冲区时绑定的上下文相同,或是同一共享组的成员。

Note:

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

另请参阅:

cuGraphicsUnregisterResource