6.43. VDPAU 互操作性
本节介绍低级 CUDA 驱动程序应用程序编程接口的 VDPAU 互操作性功能。
函数
- CUresult cuGraphicsVDPAURegisterOutputSurface ( CUgraphicsResource* pCudaResource, VdpOutputSurface vdpSurface, unsigned int flags )
- 注册 VDPAU VdpOutputSurface 对象。
- CUresult cuGraphicsVDPAURegisterVideoSurface ( CUgraphicsResource* pCudaResource, VdpVideoSurface vdpSurface, unsigned int flags )
- 注册 VDPAU VdpVideoSurface 对象。
- CUresult cuVDPAUCtxCreate ( CUcontext* pCtx, unsigned int flags, CUdevice device, VdpDevice vdpDevice, VdpGetProcAddress* vdpGetProcAddress )
- 创建用于与 VDPAU 互操作的 CUDA 上下文。
- CUresult cuVDPAUGetDevice ( CUdevice* pDevice, VdpDevice vdpDevice, VdpGetProcAddress* vdpGetProcAddress )
- 获取与 VDPAU 设备关联的 CUDA 设备。
函数
- CUresult cuGraphicsVDPAURegisterOutputSurface ( CUgraphicsResource* pCudaResource, VdpOutputSurface vdpSurface, unsigned int flags )
-
注册 VDPAU VdpOutputSurface 对象。
参数
- pCudaResource
- - 指向返回的对象句柄的指针
- vdpSurface
- - 要注册的 VdpOutputSurface
- flags
- - 映射标志
描述
注册由以下项指定的 VdpOutputSurfacevdpSurface以供 CUDA 访问。已注册对象的句柄作为以下内容返回:pCudaResource。表面的预期用途使用以下项指定:flags,如下所示
-
CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE: 指定关于如何使用此资源的任何提示。因此,假定 CUDA 将从此资源读取和写入数据。这是默认值。
-
CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY: 指定 CUDA 将不会写入此资源。
-
CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD: 指定 CUDA 将不会从此资源读取数据,并将覆盖资源的全部内容,因此资源中先前存储的任何数据都不会被保留。
VdpOutputSurface 以子资源数组的形式呈现,可以使用 cuGraphicsSubResourceGetMappedArray 返回的指针访问这些子资源。有效数组的精确数量arrayIndex值取决于 VDPAU 表面格式。映射显示在下表中。mipLevel必须为 0。
注意注意,此函数也可能返回来自先前异步启动的错误代码。
另请参阅
cuCtxCreate, cuVDPAUCtxCreate, cuGraphicsVDPAURegisterVideoSurface, cuGraphicsUnregisterResource, cuGraphicsResourceSetMapFlags, cuGraphicsMapResources, cuGraphicsUnmapResources, cuGraphicsSubResourceGetMappedArray, cuVDPAUGetDevice, cudaGraphicsVDPAURegisterOutputSurface
- CUresult cuGraphicsVDPAURegisterVideoSurface ( CUgraphicsResource* pCudaResource, VdpVideoSurface vdpSurface, unsigned int flags )
-
注册 VDPAU VdpVideoSurface 对象。
参数
- pCudaResource
- - 指向返回的对象句柄的指针
- vdpSurface
- - 要注册的 VdpVideoSurface
- flags
- - 映射标志
描述
注册由以下项指定的 VdpVideoSurfacevdpSurface以供 CUDA 访问。已注册对象的句柄作为以下内容返回:pCudaResource。表面的预期用途使用以下项指定:flags,如下所示
-
CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE: 指定关于如何使用此资源的任何提示。因此,假定 CUDA 将从此资源读取和写入数据。这是默认值。
-
CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY: 指定 CUDA 将不会写入此资源。
-
CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD: 指定 CUDA 将不会从此资源读取数据,并将覆盖资源的全部内容,因此资源中先前存储的任何数据都不会被保留。
VdpVideoSurface 以子资源数组的形式呈现,可以使用 cuGraphicsSubResourceGetMappedArray 返回的指针访问这些子资源。有效数组的精确数量arrayIndex值取决于 VDPAU 表面格式。映射显示在下表中。mipLevel必须为 0。
注意注意,此函数也可能返回来自先前异步启动的错误代码。
另请参阅
cuCtxCreate, cuVDPAUCtxCreate, cuGraphicsVDPAURegisterOutputSurface, cuGraphicsUnregisterResource, cuGraphicsResourceSetMapFlags, cuGraphicsMapResources, cuGraphicsUnmapResources, cuGraphicsSubResourceGetMappedArray, cuVDPAUGetDevice, cudaGraphicsVDPAURegisterVideoSurface
- CUresult cuVDPAUCtxCreate ( CUcontext* pCtx, unsigned int flags, CUdevice device, VdpDevice vdpDevice, VdpGetProcAddress* vdpGetProcAddress )
-
创建用于与 VDPAU 互操作的 CUDA 上下文。
参数
- pCtx
- - 返回的 CUDA 上下文
- flags
- - CUDA 上下文创建的选项
- device
- - 在其上创建上下文的设备
- vdpDevice
- - 要与之互操作的 VdpDevice
- vdpGetProcAddress
- - VDPAU 的 VdpGetProcAddress 函数指针
返回值
返回值
描述
创建新的 CUDA 上下文,初始化 VDPAU 互操作性,并将 CUDA 上下文与调用线程关联。必须在执行任何其他 VDPAU 互操作性操作之前调用它。如果所需的 VDPAU 驱动程序设施不可用,则可能会失败。有关以下项的用法,请参阅flags参数,请参阅 cuCtxCreate()。
注意注意,此函数也可能返回来自先前异步启动的错误代码。
另请参阅
cuCtxCreate, cuGraphicsVDPAURegisterVideoSurface, cuGraphicsVDPAURegisterOutputSurface, cuGraphicsUnregisterResource, cuGraphicsResourceSetMapFlags, cuGraphicsMapResources, cuGraphicsUnmapResources, cuGraphicsSubResourceGetMappedArray, cuVDPAUGetDevice
- CUresult cuVDPAUGetDevice ( CUdevice* pDevice, VdpDevice vdpDevice, VdpGetProcAddress* vdpGetProcAddress )
-
获取与 VDPAU 设备关联的 CUDA 设备。
参数
- pDevice
- - 与 vdpDevice 关联的设备
- vdpDevice
- vdpDevice
- vdpGetProcAddress
- - VDPAU 的 VdpGetProcAddress 函数指针
返回值
- VdpDevice 句柄
描述
返回值*pDevice中返回vdpDevice,如果适用,与
注意注意,此函数也可能返回来自先前异步启动的错误代码。
另请参阅
cuCtxCreate, cuVDPAUCtxCreate, cuGraphicsVDPAURegisterVideoSurface, cuGraphicsVDPAURegisterOutputSurface, cuGraphicsUnregisterResource, cuGraphicsResourceSetMapFlags, cuGraphicsMapResources, cuGraphicsUnmapResources, cuGraphicsSubResourceGetMappedArray, cudaVDPAUGetDevice