6.41.1. Direct3D 10 互操作性 [已弃用]

[Direct3D 10 互操作性]

本节介绍已弃用的 Direct3D 10 互操作性功能。

枚举

enum CUD3D10map_flags
enum CUD3D10register_flags

函数

CUresult cuD3D10CtxCreate ( CUcontext* pCtx, CUdevice* pCudaDevice, unsigned int  Flags, ID3D10Device* pD3DDevice )
创建用于与 Direct3D 10 互操作的 CUDA 上下文。
CUresult cuD3D10CtxCreateOnDevice ( CUcontext* pCtx, unsigned int  flags, ID3D10Device* pD3DDevice, CUdevice cudaDevice )
创建用于与 Direct3D 10 互操作的 CUDA 上下文。
CUresult cuD3D10GetDirect3DDevice ( ID3D10Device** ppD3DDevice )
获取创建当前 CUDA 上下文时所针对的 Direct3D 10 设备。
CUresult cuD3D10MapResources ( unsigned int  count, ID3D10Resource** ppResources )
映射 Direct3D 资源以供 CUDA 访问。
CUresult cuD3D10RegisterResource ( ID3D10Resource* pResource, unsigned int  Flags )
注册 Direct3D 资源以供 CUDA 访问。
CUresult cuD3D10ResourceGetMappedArray ( CUarray* pArray, ID3D10Resource* pResource, unsigned int  SubResource )
获取一个数组,通过该数组访问已映射为供 CUDA 访问的 Direct3D 资源的子资源。
CUresult cuD3D10ResourceGetMappedPitch ( size_t* pPitch, size_t* pPitchSlice, ID3D10Resource* pResource, unsigned int  SubResource )
获取已映射为供 CUDA 访问的 Direct3D 资源的子资源的步幅。
CUresult cuD3D10ResourceGetMappedPointer ( CUdeviceptr* pDevPtr, ID3D10Resource* pResource, unsigned int  SubResource )
获取一个指针,通过该指针访问已映射为供 CUDA 访问的 Direct3D 资源的子资源。
CUresult cuD3D10ResourceGetMappedSize ( size_t* pSize, ID3D10Resource* pResource, unsigned int  SubResource )
获取已映射为供 CUDA 访问的 Direct3D 资源的子资源的大小。
CUresult cuD3D10ResourceGetSurfaceDimensions ( size_t* pWidth, size_t* pHeight, size_t* pDepth, ID3D10Resource* pResource, unsigned int  SubResource )
获取已注册表面的尺寸。
CUresult cuD3D10ResourceSetMapFlags ( ID3D10Resource* pResource, unsigned int  Flags )
设置用于映射 Direct3D 资源的使用标志。
CUresult cuD3D10UnmapResources ( unsigned int  count, ID3D10Resource** ppResources )
取消映射 Direct3D 资源。
CUresult cuD3D10UnregisterResource ( ID3D10Resource* pResource )
取消注册 Direct3D 资源。

枚举

enum CUD3D10map_flags

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

CU_D3D10_MAPRESOURCE_FLAGS_NONE = 0x00
CU_D3D10_MAPRESOURCE_FLAGS_READONLY = 0x01
CU_D3D10_MAPRESOURCE_FLAGS_WRITEDISCARD = 0x02
enum CUD3D10register_flags

用于注册资源的标志

CU_D3D10_REGISTER_FLAGS_NONE = 0x00
CU_D3D10_REGISTER_FLAGS_ARRAY = 0x01

函数

CUresult cuD3D10CtxCreate ( CUcontext* pCtx, CUdevice* pCudaDevice, unsigned int  Flags, ID3D10Device* pD3DDevice )
创建用于与 Direct3D 10 互操作的 CUDA 上下文。
参数
pCtx
- 返回新创建的 CUDA 上下文
pCudaDevice
- 返回指向在其上创建上下文的设备的指针
Flags
- 上下文创建标志(有关详细信息,请参阅 cuCtxCreate()
pD3DDevice
- 用于创建互操作性上下文的 Direct3D 设备
已弃用

此函数从 CUDA 5.0 开始已弃用。

描述

此函数已弃用,不应再使用。不再需要将 CUDA 上下文与 D3D10 设备关联,即可实现最佳互操作性性能。

注意

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

另请参阅

cuD3D10GetDevicecuGraphicsD3D10RegisterResource

CUresult cuD3D10CtxCreateOnDevice ( CUcontext* pCtx, unsigned int  flags, ID3D10Device* pD3DDevice, CUdevice cudaDevice )
创建用于与 Direct3D 10 互操作的 CUDA 上下文。
参数
pCtx
- 返回新创建的 CUDA 上下文
flags
- 上下文创建标志(有关详细信息,请参阅 cuCtxCreate()
pD3DDevice
- 用于创建互操作性上下文的 Direct3D 设备
cudaDevice
- 在其上创建上下文的 CUDA 设备。此设备必须是查询 cuD3D10GetDevices 中的 CU_D3D10_DEVICES_ALL 时返回的设备之一。
已弃用

此函数从 CUDA 5.0 开始已弃用。

描述

此函数已弃用,不应再使用。不再需要将 CUDA 上下文与 D3D10 设备关联,即可实现最佳互操作性性能。

注意

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

另请参阅

cuD3D10GetDevicescuGraphicsD3D10RegisterResource

CUresult cuD3D10GetDirect3DDevice ( ID3D10Device** ppD3DDevice )
获取创建当前 CUDA 上下文时所针对的 Direct3D 10 设备。
参数
ppD3DDevice
- 返回与 CUDA 上下文对应的 Direct3D 设备
已弃用

此函数从 CUDA 5.0 开始已弃用。

描述

此函数已弃用,不应再使用。不再需要将 CUDA 上下文与 D3D10 设备关联,即可实现最佳互操作性性能。

注意

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

另请参阅

cuD3D10GetDevice

CUresult cuD3D10MapResources ( unsigned int  count, ID3D10Resource** ppResources )
映射 Direct3D 资源以供 CUDA 访问。
参数
count
- 要为 CUDA 映射的资源数
ppResources
- 要为 CUDA 映射的资源
已弃用

此函数从 CUDA 3.0 开始已弃用。

描述

映射count中的 Direct3D 资源ppResources以供 CUDA 访问。

中的资源ppResources可以在 CUDA 内核中访问,直到它们被取消映射。Direct3D 不应在资源被 CUDA 映射时访问任何资源。如果应用程序这样做,则结果未定义。

此函数提供同步保证,即在 cuD3D10MapResources() 之前发出的任何 Direct3D 调用将在 cuD3D10MapResources() 之后发出的任何 CUDA 内核开始之前完成。

如果任何ppResources尚未注册以与 CUDA 一起使用,或者如果ppResources包含任何重复条目,则返回 CUDA_ERROR_INVALID_HANDLE。如果任何ppResources当前已映射以供 CUDA 访问,则返回 CUDA_ERROR_ALREADY_MAPPED

注意

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

另请参阅

cuGraphicsMapResources

CUresult cuD3D10RegisterResource ( ID3D10Resource* pResource, unsigned int  Flags )
注册 Direct3D 资源以供 CUDA 访问。
参数
pResource
- 要注册的资源
Flags
- 资源注册参数
已弃用

此函数从 CUDA 3.0 开始已弃用。

描述

注册 Direct3D 资源pResource以供 CUDA 访问。

如果此调用成功,则应用程序将能够映射和取消映射此资源,直到通过 cuD3D10UnregisterResource() 取消注册为止。此外,在成功时,此调用将增加内部引用计数pResource。当通过 cuD3D10UnregisterResource() 取消注册此资源时,此引用计数将递减。

此调用可能是高开销的,不应在交互式应用程序中每帧调用。

的类型pResource必须是以下类型之一。

  • ID3D10Buffer:不能与Flags设置为 CU_D3D10_REGISTER_FLAGS_ARRAY 一起使用。

  • ID3D10Texture1D:无限制。

  • ID3D10Texture2D:无限制。

  • ID3D10Texture3D:无限制。

参数Flags指定 CUDA 将通过其访问 Direct3D 资源的机制。允许以下值。

并非所有上述类型的 Direct3D 资源都可以用于与 CUDA 互操作。以下是一些限制。

  • 主渲染目标可能未在 CUDA 中注册。

  • 分配为共享的资源可能未在 CUDA 中注册。

  • 格式不是 1、2 或 4 通道的 8 位、16 位或 32 位整数或浮点数据的纹理无法共享。

  • 深度或模板格式的表面无法共享。

如果在此上下文上未初始化 Direct3D 互操作性,则返回 CUDA_ERROR_INVALID_CONTEXT。如果pResource类型不正确或已注册,则返回 CUDA_ERROR_INVALID_HANDLE。如果pResource无法注册,则返回 CUDA_ERROR_UNKNOWN

注意

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

另请参阅

cuGraphicsD3D10RegisterResource

CUresult cuD3D10ResourceGetMappedArray ( CUarray* pArray, ID3D10Resource* pResource, unsigned int  SubResource )
获取一个数组,通过该数组访问已映射为供 CUDA 访问的 Direct3D 资源的子资源。
参数
pArray
- 返回与子资源对应的数组
pResource
- 要访问的映射资源
SubResource
- 要访问的 pResource 的子资源
已弃用

此函数从 CUDA 3.0 开始已弃用。

描述

*pArray中返回一个数组,通过该数组可以访问映射的 Direct3D 资源的子资源pResource,这与SubResource对应。设置在pArray中的值可能会在每次pResource映射时发生更改。

如果pResource未注册,则返回 CUDA_ERROR_INVALID_HANDLE。如果pResource未使用标志 CU_D3D10_REGISTER_FLAGS_ARRAY 注册,则返回 CUDA_ERROR_INVALID_HANDLE。如果pResource未映射,则返回 CUDA_ERROR_NOT_MAPPED

有关SubResource参数的用法要求,请参阅 cuD3D10ResourceGetMappedPointer()

注意

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

另请参阅

cuGraphicsSubResourceGetMappedArray

CUresult cuD3D10ResourceGetMappedPitch ( size_t* pPitch, size_t* pPitchSlice, ID3D10Resource* pResource, unsigned int  SubResource )
获取已映射以供 CUDA 访问的 Direct3D 资源的子资源的 pitch。
参数
pPitch
- 返回的子资源的 pitch
pPitchSlice
- 返回的子资源的 Z 切片 pitch
pResource
- 要访问的映射资源
SubResource
- 要访问的 pResource 的子资源
已弃用

此函数从 CUDA 3.0 开始已弃用。

描述

*pPitch*pPitchSlice映射的 Direct3D 资源的子资源的 pitch 和 Z 切片 pitchpResource,这与SubResource。 在以下项中设置的值pPitchpPitchSlice中的值可能会在每次pResource映射时发生更改。

pitch 和 Z 切片 pitch 值可用于计算表面上样本的位置,如下所示。

对于 2D 表面,位置 x, y 处的样本相对于表面的基指针的字节偏移量为

y * pitch + (每像素字节数) * x

对于 3D 表面,位置 x, y, z 处的样本相对于表面的基指针的字节偏移量为

z*slicePitch + y * pitch + (每像素字节数) * x

两个参数pPitchpPitchSlice都是可选的,可以设置为 NULL。

如果pResource不是 IDirect3DBaseTexture10 或其子类型之一的类型,或者如果pResource未注册以供 CUDA 使用,则返回 CUDA_ERROR_INVALID_HANDLE。 如果pResource注册时未使用 CU_D3D10_REGISTER_FLAGS_NONE 用法标志,则返回 CUDA_ERROR_INVALID_HANDLE。 如果pResource未映射以供 CUDA 访问,则返回 CUDA_ERROR_NOT_MAPPED

有关SubResource参数的用法要求,请参阅 cuD3D10ResourceGetMappedPointer()

注意

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

另请参阅

cuGraphicsSubResourceGetMappedArray

CUresult cuD3D10ResourceGetMappedPointer ( CUdeviceptr* pDevPtr, ID3D10Resource* pResource, unsigned int  SubResource )
获取指针,通过该指针访问已映射以供 CUDA 访问的 Direct3D 资源的子资源。
参数
pDevPtr
- 返回的对应于子资源的指针
pResource
- 要访问的映射资源
SubResource
- 要访问的 pResource 的子资源
已弃用

此函数从 CUDA 3.0 开始已弃用。

描述

*pDevPtr映射的 Direct3D 资源的子资源的基指针pResource,这与SubResource。 在以下项中设置的值pDevPtr中的值可能会在每次pResource映射时发生更改。

如果pResource未注册,则返回 CUDA_ERROR_INVALID_HANDLE。如果pResource注册时未使用 CU_D3D10_REGISTER_FLAGS_NONE 用法标志,则返回 CUDA_ERROR_INVALID_HANDLE。 如果pResource未映射,则返回 CUDA_ERROR_NOT_MAPPED

如果pResource是 ID3D10Buffer 类型,则SubResource必须为 0。 如果pResource是任何其他类型,则SubResource的值必须来自 D3D10CalcSubResource() 中的子资源计算。

注意

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

另请参阅

cuGraphicsResourceGetMappedPointer

CUresult cuD3D10ResourceGetMappedSize ( size_t* pSize, ID3D10Resource* pResource, unsigned int  SubResource )
获取已映射以供 CUDA 访问的 Direct3D 资源的子资源的大小。
参数
pSize
- 返回的子资源的大小
pResource
- 要访问的映射资源
SubResource
- 要访问的 pResource 的子资源
已弃用

此函数从 CUDA 3.0 开始已弃用。

描述

*pSize映射的 Direct3D 资源的子资源的大小pResource,这与SubResource。 在以下项中设置的值pSize中的值可能会在每次pResource映射时发生更改。

如果pResource未注册以供 CUDA 使用,则返回 CUDA_ERROR_INVALID_HANDLE。 如果pResource注册时未使用 CU_D3D10_REGISTER_FLAGS_NONE 用法标志,则返回 CUDA_ERROR_INVALID_HANDLE。 如果pResource未映射以供 CUDA 访问,则返回 CUDA_ERROR_NOT_MAPPED

有关SubResource参数的用法要求,请参阅 cuD3D10ResourceGetMappedPointer()

注意

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

另请参阅

cuGraphicsResourceGetMappedPointer

CUresult cuD3D10ResourceGetSurfaceDimensions ( size_t* pWidth, size_t* pHeight, size_t* pDepth, ID3D10Resource* pResource, unsigned int  SubResource )
获取已注册表面的尺寸。
参数
pWidth
- 返回的表面宽度
pHeight
- 返回的表面高度
pDepth
- 返回的表面深度
pResource
- 要访问的已注册资源
SubResource
- 要访问的 pResource 的子资源
已弃用

此函数从 CUDA 3.0 开始已弃用。

描述

*pWidth, *pHeight*pDepth映射的 Direct3D 资源的子资源的尺寸pResource,这与SubResource.

由于抗锯齿表面可能每个像素有多个样本,因此资源的尺寸可能比 Direct3D 运行时报告的尺寸大一个整数因子。

参数pWidth, pHeightpDepth是可选的。 对于 2D 表面,在以下项中返回的值*pDepth将为 0。

如果pResource不是 IDirect3DBaseTexture10 或 IDirect3DSurface10 类型,或者如果pResource未注册以供 CUDA 使用,则返回 CUDA_ERROR_INVALID_HANDLE

有关SubResource参数的用法要求,请参阅 cuD3D10ResourceGetMappedPointer()

注意

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

另请参阅

cuGraphicsSubResourceGetMappedArray

CUresult cuD3D10ResourceSetMapFlags ( ID3D10Resource* pResource, unsigned int  Flags )
设置用于映射 Direct3D 资源的使用标志。
参数
pResource
- 要设置标志的已注册资源
Flags
- 资源映射的参数
已弃用

此函数从 CUDA 3.0 开始已弃用。

描述

设置用于映射 Direct3D 资源的标志pResource.

标志的更改将在下次pResource映射时生效。Flags参数可以是以下任何值。

  • CU_D3D10_MAPRESOURCE_FLAGS_NONE:指定不提供关于如何使用此资源的提示。 因此,假定 CUDA 内核将从此资源读取和写入。 这是默认值。

  • CU_D3D10_MAPRESOURCE_FLAGS_READONLY:指定访问此资源的 CUDA 内核不会写入此资源。

  • CU_D3D10_MAPRESOURCE_FLAGS_WRITEDISCARD:指定访问此资源的 CUDA 内核不会从此资源读取,并将覆盖资源的全部内容,因此资源中先前存储的任何数据都不会保留。

如果pResource未注册以供 CUDA 使用,则返回 CUDA_ERROR_INVALID_HANDLE。 如果pResource当前已映射以供 CUDA 访问,则返回 CUDA_ERROR_ALREADY_MAPPED

注意

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

另请参阅

cuGraphicsResourceSetMapFlags

CUresult cuD3D10UnmapResources ( unsigned int  count, ID3D10Resource** ppResources )
取消映射 Direct3D 资源。
参数
count
- 要为 CUDA 取消映射的资源数量
ppResources
- 要为 CUDA 取消映射的资源
已弃用

此函数从 CUDA 3.0 开始已弃用。

描述

取消映射count中的 Direct3D 资源ppResources.

此函数提供同步保证,即在 cuD3D10UnmapResources() 之前发出的任何 CUDA 内核都将在 cuD3D10UnmapResources() 之后发出的任何 Direct3D 调用开始之前完成。

如果任何ppResources尚未注册以与 CUDA 一起使用,或者如果ppResources包含任何重复条目,则返回 CUDA_ERROR_INVALID_HANDLE。如果任何ppResources当前未映射以供 CUDA 访问,则返回 CUDA_ERROR_NOT_MAPPED

注意

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

另请参阅

cuGraphicsUnmapResources

CUresult cuD3D10UnregisterResource ( ID3D10Resource* pResource )
取消注册 Direct3D 资源。
参数
pResource
- 要取消注册的资源
已弃用

此函数从 CUDA 3.0 开始已弃用。

描述

取消注册 Direct3D 资源pResource,使其无法被 CUDA 访问,除非再次注册。

如果pResource未注册,则返回 CUDA_ERROR_INVALID_HANDLE

注意

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

另请参阅

cuGraphicsUnregisterResource