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