6.24. VDPAU互操作性
本节介绍CUDA运行时应用程序编程接口中的VDPAU互操作性功能。
Functions
- __host__ cudaError_t cudaGraphicsVDPAURegisterOutputSurface ( cudaGraphicsResource** resource, VdpOutputSurface vdpSurface, unsigned int flags )
- Register a VdpOutputSurface object.
- __host__ cudaError_t cudaGraphicsVDPAURegisterVideoSurface ( cudaGraphicsResource** resource, VdpVideoSurface vdpSurface, unsigned int flags )
- Register a VdpVideoSurface object.
- __host__ cudaError_t cudaVDPAUGetDevice ( int* device, VdpDevice vdpDevice, VdpGetProcAddress* vdpGetProcAddress )
- Gets the CUDA device associated with a VdpDevice.
- __host__ cudaError_t cudaVDPAUSetVDPAUDevice ( int device, VdpDevice vdpDevice, VdpGetProcAddress* vdpGetProcAddress )
- Sets a CUDA device to use VDPAU interoperability.
Functions
- __host__ cudaError_t cudaGraphicsVDPAURegisterOutputSurface ( cudaGraphicsResource** resource, VdpOutputSurface vdpSurface, unsigned int flags )
-
注册一个VdpOutputSurface对象。
参数
- resource
- - Pointer to the returned object handle
- vdpSurface
- - VDPAU object to be registered
- flags
- - Map flags
返回
cudaSuccess, cudaErrorInvalidDevice, cudaErrorInvalidValue, cudaErrorInvalidResourceHandle, cudaErrorUnknown
描述
将由vdpSurface指定的VdpOutputSurface注册为可供CUDA访问。注册对象的句柄将作为resource返回。该表面的预期用途通过flags参数指定,具体如下:
-
cudaGraphicsMapFlagsNone: 指定该资源的使用方式无任何提示。因此假定该资源将被CUDA进行读写操作。此为默认值。
-
cudaGraphicsMapFlagsReadOnly: 指定CUDA不会写入此资源。
-
cudaGraphicsMapFlagsWriteDiscard: 指定CUDA不会读取该资源,而是会覆盖资源的全部内容,因此资源中原先存储的所有数据都不会保留。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
cudaVDPAUSetVDPAUDevice, cudaGraphicsUnregisterResource, cudaGraphicsSubResourceGetMappedArray, cuGraphicsVDPAURegisterOutputSurface
- __host__ cudaError_t cudaGraphicsVDPAURegisterVideoSurface ( cudaGraphicsResource** resource, VdpVideoSurface vdpSurface, unsigned int flags )
-
注册一个VdpVideoSurface对象。
参数
- resource
- - Pointer to the returned object handle
- vdpSurface
- - VDPAU object to be registered
- flags
- - Map flags
返回
cudaSuccess, cudaErrorInvalidDevice, cudaErrorInvalidValue, cudaErrorInvalidResourceHandle, cudaErrorUnknown
描述
将vdpSurface指定的VdpVideoSurface注册为可由CUDA访问。注册对象的句柄将作为resource返回。该表面的预期用途通过flags指定,如下所示:
-
cudaGraphicsMapFlagsNone: 指定该资源的使用方式无特殊提示。因此默认假设该资源将被CUDA进行读写操作。此为默认值。
-
cudaGraphicsMapFlagsReadOnly: 指定CUDA不会写入此资源。
-
cudaGraphicsMapFlagsWriteDiscard: 指定CUDA不会读取该资源,而是会覆盖资源的全部内容,因此资源中原先存储的所有数据都不会被保留。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
cudaVDPAUSetVDPAUDevice, cudaGraphicsUnregisterResource, cudaGraphicsSubResourceGetMappedArray, cuGraphicsVDPAURegisterVideoSurface
- __host__ cudaError_t cudaVDPAUGetDevice ( int* device, VdpDevice vdpDevice, VdpGetProcAddress* vdpGetProcAddress )
-
获取与VdpDevice关联的CUDA设备。
参数
- device
- - Returns the device associated with vdpDevice, or -1 if the device associated with vdpDevice is not a compute device.
- vdpDevice
- - A VdpDevice handle
- vdpGetProcAddress
- - VDPAU's VdpGetProcAddress function pointer
返回
描述
返回与VdpDevice关联的CUDA设备(如果适用)。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- __host__ cudaError_t cudaVDPAUSetVDPAUDevice ( int device, VdpDevice vdpDevice, VdpGetProcAddress* vdpGetProcAddress )
-
设置一个CUDA设备以使用VDPAU互操作性。
参数
- device
- - Device to use for VDPAU interoperability
- vdpDevice
- - The VdpDevice to interoperate with
- vdpGetProcAddress
- - VDPAU's VdpGetProcAddress function pointer
描述
将vdpDevice记录为用于VDPAU与CUDA设备device互操作的VdpDevice,并将device设置为调用主机线程的当前设备。
如果需要,此函数将立即在device上初始化主上下文。
如果device已经初始化,此调用将失败并返回错误cudaErrorSetOnActiveProcess。在这种情况下,必须先使用cudaDeviceReset()重置device,然后才能在device上启用VDPAU互操作性。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
cudaGraphicsVDPAURegisterVideoSurface, cudaGraphicsVDPAURegisterOutputSurface, cudaDeviceReset