6.41.1. Direct3D 10 互操作性 [已弃用]
[Direct3D 10 互操作性]
本节介绍已弃用的Direct3D 10互操作功能。
枚举
- enum CUD3D10map_flags
- enum CUD3D10register_flags
Functions
- CUresult cuD3D10CtxCreate ( CUcontext* pCtx, CUdevice* pCudaDevice, unsigned int Flags, ID3D10Device* pD3DDevice )
- Create a CUDA context for interoperability with Direct3D 10.
- CUresult cuD3D10CtxCreateOnDevice ( CUcontext* pCtx, unsigned int flags, ID3D10Device* pD3DDevice, CUdevice cudaDevice )
- Create a CUDA context for interoperability with Direct3D 10.
- CUresult cuD3D10GetDirect3DDevice ( ID3D10Device** ppD3DDevice )
- Get the Direct3D 10 device against which the current CUDA context was created.
- CUresult cuD3D10MapResources ( unsigned int count, ID3D10Resource** ppResources )
- Map Direct3D resources for access by CUDA.
- CUresult cuD3D10RegisterResource ( ID3D10Resource* pResource, unsigned int Flags )
- Register a Direct3D resource for access by CUDA.
- CUresult cuD3D10ResourceGetMappedArray ( CUarray* pArray, ID3D10Resource* pResource, unsigned int SubResource )
- Get an array through which to access a subresource of a Direct3D resource which has been mapped for access by CUDA.
- CUresult cuD3D10ResourceGetMappedPitch ( size_t* pPitch, size_t* pPitchSlice, ID3D10Resource* pResource, unsigned int SubResource )
- Get the pitch of a subresource of a Direct3D resource which has been mapped for access by CUDA.
- CUresult cuD3D10ResourceGetMappedPointer ( CUdeviceptr* pDevPtr, ID3D10Resource* pResource, unsigned int SubResource )
- Get a pointer through which to access a subresource of a Direct3D resource which has been mapped for access by CUDA.
- CUresult cuD3D10ResourceGetMappedSize ( size_t* pSize, ID3D10Resource* pResource, unsigned int SubResource )
- Get the size of a subresource of a Direct3D resource which has been mapped for access by CUDA.
- CUresult cuD3D10ResourceGetSurfaceDimensions ( size_t* pWidth, size_t* pHeight, size_t* pDepth, ID3D10Resource* pResource, unsigned int SubResource )
- Get the dimensions of a registered surface.
- CUresult cuD3D10ResourceSetMapFlags ( ID3D10Resource* pResource, unsigned int Flags )
- Set usage flags for mapping a Direct3D resource.
- CUresult cuD3D10UnmapResources ( unsigned int count, ID3D10Resource** ppResources )
- Unmap Direct3D resources.
- CUresult cuD3D10UnregisterResource ( ID3D10Resource* pResource )
- Unregister a Direct3D resource.
枚举
Functions
- CUresult cuD3D10CtxCreate ( CUcontext* pCtx, CUdevice* pCudaDevice, unsigned int Flags, ID3D10Device* pD3DDevice )
-
为与Direct3D 10的互操作性创建CUDA上下文。
参数
- pCtx
- - Returned newly created CUDA context
- pCudaDevice
- - Returned pointer to the device on which the context was created
- Flags
- - Context creation flags (see cuCtxCreate() for details)
- pD3DDevice
- - Direct3D device to create interoperability context with
返回
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_VALUE, CUDA_ERROR_OUT_OF_MEMORY, CUDA_ERROR_UNKNOWN
已弃用
该函数自CUDA 5.0起已弃用。
描述
此函数已弃用,不应再使用。为了获得最佳的互操作性性能,不再需要将CUDA上下文与D3D10设备关联。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- CUresult cuD3D10CtxCreateOnDevice ( CUcontext* pCtx, unsigned int flags, ID3D10Device* pD3DDevice, CUdevice cudaDevice )
-
为与Direct3D 10的互操作性创建CUDA上下文。
参数
- pCtx
- - Returned newly created CUDA context
- flags
- - Context creation flags (see cuCtxCreate() for details)
- pD3DDevice
- - Direct3D device to create interoperability context with
- cudaDevice
- - The CUDA device on which to create the context. This device must be among the devices returned when querying CU_D3D10_DEVICES_ALL from cuD3D10GetDevices.
返回
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_VALUE, CUDA_ERROR_OUT_OF_MEMORY, CUDA_ERROR_UNKNOWN
已弃用
该函数自CUDA 5.0起已弃用。
描述
此函数已弃用,不应再使用。为了获得最佳的互操作性性能,不再需要将CUDA上下文与D3D10设备关联。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- CUresult cuD3D10GetDirect3DDevice ( ID3D10Device** ppD3DDevice )
-
获取当前CUDA上下文所对应的Direct3D 10设备。
参数
- ppD3DDevice
- - Returned Direct3D device corresponding to CUDA context
已弃用
该函数自CUDA 5.0起已弃用。
描述
此函数已弃用,不应再使用。为了获得最佳的互操作性性能,不再需要将CUDA上下文与D3D10设备关联。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- CUresult cuD3D10MapResources ( unsigned int count, ID3D10Resource** ppResources )
-
将Direct3D资源映射以供CUDA访问。
参数
- count
- - Number of resources to map for CUDA
- ppResources
- - Resources to map for CUDA
返回
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_ALREADY_MAPPED, CUDA_ERROR_UNKNOWN
已弃用
该函数自CUDA 3.0起已弃用。
描述
映射ppResources中的count个Direct3D资源以供CUDA访问。
ppResources中的资源在解除映射之前,可以在CUDA内核中访问。当资源被CUDA映射时,Direct3D不应访问任何资源。如果应用程序这样做,结果将是未定义的。
该函数提供同步保证,确保在cuD3D10MapResources()之前发出的所有Direct3D调用都会在cuD3D10MapResources()之后发出的任何CUDA内核开始执行前完成。
如果ppResources中的任何资源尚未注册用于CUDA,或者ppResources包含任何重复条目,则将返回CUDA_ERROR_INVALID_HANDLE。如果ppResources中的任何资源当前已映射供CUDA访问,则将返回CUDA_ERROR_ALREADY_MAPPED。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- CUresult cuD3D10RegisterResource ( ID3D10Resource* pResource, unsigned int Flags )
-
注册一个Direct3D资源以便CUDA访问。
参数
- pResource
- - Resource to register
- Flags
- - Parameters for resource registration
返回
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_OUT_OF_MEMORY, CUDA_ERROR_UNKNOWN
已弃用
该函数自CUDA 3.0起已弃用。
描述
注册Direct3D资源pResource以便CUDA访问。
如果此调用成功,应用程序将能够映射和取消映射此资源,直到通过cuD3D10UnregisterResource()取消注册为止。同样在成功时,此调用将增加pResource的内部引用计数。当通过cuD3D10UnregisterResource()取消注册此资源时,该引用计数将递减。
此调用可能开销较大,在交互式应用中不应每帧都调用。
pResource的类型必须是以下之一。
-
ID3D10Buffer: 不能与设置为CU_D3D10_REGISTER_FLAGS_ARRAY的Flags一起使用。
-
ID3D10Texture1D: 无限制。
-
ID3D10Texture2D: 无限制。
-
ID3D10Texture3D: 无限制。
Flags参数指定了CUDA访问Direct3D资源的机制。允许使用以下值。
-
CU_D3D10_REGISTER_FLAGS_NONE: 指定CUDA将通过CUdeviceptr访问此资源。该分配中每个子资源的指针、大小以及(对于纹理而言的)间距可分别通过cuD3D10ResourceGetMappedPointer()、cuD3D10ResourceGetMappedSize()和cuD3D10ResourceGetMappedPitch()查询。此选项对所有资源类型均有效。
-
CU_D3D10_REGISTER_FLAGS_ARRAY: 指定CUDA将通过CUarray访问此资源,该数组是通过cuD3D10ResourceGetMappedArray()基于子资源查询获得的。此选项仅对ID3D10Texture1D、ID3D10Texture2D和ID3D10Texture3D类型的资源有效。
并非所有上述类型的Direct3D资源都能用于与CUDA的互操作性。以下是一些限制。
-
主渲染目标可能未在CUDA中注册。
-
分配为共享的资源可能无法在CUDA中注册。
-
无法共享那些格式不是1、2或4通道的8位、16位或32位整数或浮点数据的纹理。
-
深度或模板格式的表面无法共享。
如果当前上下文中未初始化Direct3D互操作性,则返回CUDA_ERROR_INVALID_CONTEXT。如果pResource类型不正确或已被注册,则返回CUDA_ERROR_INVALID_HANDLE。如果pResource无法被注册,则返回CUDA_ERROR_UNKNOWN。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- CUresult cuD3D10ResourceGetMappedArray ( CUarray* pArray, ID3D10Resource* pResource, unsigned int SubResource )
-
获取一个数组,用于访问已被CUDA映射以进行访问的Direct3D资源的子资源。
参数
- pArray
- - Returned array corresponding to subresource
- pResource
- - Mapped resource to access
- SubResource
- - Subresource of pResource to access
返回
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_NOT_MAPPED
已弃用
该函数自CUDA 3.0起已弃用。
描述
在*pArray中返回一个数组,通过该数组可以访问映射的Direct3D资源pResource中对应于SubResource的子资源。每次映射pResource时,pArray中设置的值可能会发生变化。
如果pResource未注册,则返回CUDA_ERROR_INVALID_HANDLE。如果pResource未使用CU_D3D10_REGISTER_FLAGS_ARRAY标志注册,则返回CUDA_ERROR_INVALID_HANDLE。如果pResource未被映射,则返回CUDA_ERROR_NOT_MAPPED。
有关SubResource参数的使用要求,请参阅cuD3D10ResourceGetMappedPointer()。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- CUresult cuD3D10ResourceGetMappedPitch ( size_t* pPitch, size_t* pPitchSlice, ID3D10Resource* pResource, unsigned int SubResource )
-
获取已被CUDA映射访问的Direct3D资源子资源的间距。
参数
- pPitch
- - Returned pitch of subresource
- pPitchSlice
- - Returned Z-slice pitch of subresource
- pResource
- - Mapped resource to access
- SubResource
- - Subresource of pResource to access
返回
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_NOT_MAPPED
已弃用
该函数自CUDA 3.0起已弃用。
描述
返回映射的Direct3D资源pResource中对应于SubResource的子资源的间距和Z切片间距,分别存储在*pPitch和*pPitchSlice中。每次映射pResource时,pPitch和pPitchSlice中设置的值可能会发生变化。
间距和Z切片间距值可用于计算表面上样本的位置,方法如下。
对于一个二维表面,从表面基指针到位置x、y处样本的字节偏移量为:
y * pitch + (每个像素的字节数) * x
对于一个3D表面,从表面基指针开始,位于位置x、y、z处的样本字节偏移量为:
z*slicePitch + y * pitch + (每像素字节数) * x
参数 pPitch 和 pPitchSlice 都是可选的,可以设置为 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()。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- CUresult cuD3D10ResourceGetMappedPointer ( CUdeviceptr* pDevPtr, ID3D10Resource* pResource, unsigned int SubResource )
-
获取一个指针,用于访问已被CUDA映射以进行访问的Direct3D资源的子资源。
参数
- pDevPtr
- - Returned pointer corresponding to subresource
- pResource
- - Mapped resource to access
- SubResource
- - Subresource of pResource to access
返回
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_NOT_MAPPED
已弃用
该函数自CUDA 3.0起已弃用。
描述
返回映射的Direct3D资源pResource中对应于SubResource的子资源的基指针到*pDevPtr。每次映射pResource时,pDevPtr中设置的值可能会发生变化。
如果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()中的子资源计算。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- CUresult cuD3D10ResourceGetMappedSize ( size_t* pSize, ID3D10Resource* pResource, unsigned int SubResource )
-
获取已被CUDA映射访问的Direct3D资源的子资源大小。
参数
- pSize
- - Returned size of subresource
- pResource
- - Mapped resource to access
- SubResource
- - Subresource of pResource to access
返回
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_NOT_MAPPED
已弃用
该函数自CUDA 3.0起已弃用。
描述
返回映射的Direct3D资源pResource中对应于SubResource的子资源大小到*pSize。每次映射pResource时,pSize中设置的值可能会发生变化。
如果pResource尚未注册用于CUDA,则返回CUDA_ERROR_INVALID_HANDLE。如果pResource未使用CU_D3D10_REGISTER_FLAGS_NONE标志注册,则返回CUDA_ERROR_INVALID_HANDLE。如果pResource未被映射供CUDA访问,则返回CUDA_ERROR_NOT_MAPPED。
有关SubResource参数的使用要求,请参阅cuD3D10ResourceGetMappedPointer()。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- CUresult cuD3D10ResourceGetSurfaceDimensions ( size_t* pWidth, size_t* pHeight, size_t* pDepth, ID3D10Resource* pResource, unsigned int SubResource )
-
获取已注册表面的尺寸。
参数
- pWidth
- - Returned width of surface
- pHeight
- - Returned height of surface
- pDepth
- - Returned depth of surface
- pResource
- - Registered resource to access
- SubResource
- - Subresource of pResource to access
返回
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE, CUDA_ERROR_INVALID_HANDLE
已弃用
该函数自CUDA 3.0起已弃用。
描述
返回映射的Direct3D资源pResource的子资源维度到*pWidth、*pHeight和*pDepth中,该子资源对应于SubResource。
由于抗锯齿表面每个像素可能包含多个采样点,资源的尺寸可能会比Direct3D运行时报告的尺寸大一个整数倍。
参数 pWidth、pHeight 和 pDepth 是可选的。对于2D表面,*pDepth 中返回的值将为0。
如果pResource不是IDirect3DBaseTexture10或IDirect3DSurface10类型,或者pResource尚未注册用于CUDA,则将返回CUDA_ERROR_INVALID_HANDLE。
有关SubResource参数的使用要求,请参阅cuD3D10ResourceGetMappedPointer()。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- CUresult cuD3D10ResourceSetMapFlags ( ID3D10Resource* pResource, unsigned int Flags )
-
设置用于映射Direct3D资源的使用标志。
参数
- pResource
- - Registered resource to set flags for
- Flags
- - Parameters for resource mapping
返回
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_ALREADY_MAPPED
已弃用
该函数自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。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- CUresult cuD3D10UnmapResources ( unsigned int count, ID3D10Resource** ppResources )
-
解除Direct3D资源的映射。
参数
- count
- - Number of resources to unmap for CUDA
- ppResources
- - Resources to unmap for CUDA
返回
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_NOT_MAPPED, CUDA_ERROR_UNKNOWN
已弃用
该函数自CUDA 3.0起已弃用。
描述
解除映射ppResources中的count个Direct3D资源。
此函数提供同步保证,确保在cuD3D10UnmapResources()之前发出的任何CUDA内核操作都将在cuD3D10UnmapResources()之后发出的任何Direct3D调用开始前完成。
如果ppResources中的任何资源尚未注册供CUDA使用,或者ppResources包含任何重复条目,则将返回CUDA_ERROR_INVALID_HANDLE。如果ppResources中的任何资源当前未被CUDA映射以供访问,则将返回CUDA_ERROR_NOT_MAPPED。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅:
- CUresult cuD3D10UnregisterResource ( ID3D10Resource* pResource )
-
注销一个Direct3D资源。
参数
- pResource
- - Resources to unregister
返回
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_UNKNOWN
已弃用
该函数自CUDA 3.0起已弃用。
描述
注销Direct3D资源pResource,使其无法被CUDA访问,除非重新注册。
如果pResource未注册,则返回CUDA_ERROR_INVALID_HANDLE。
Note:请注意,此函数也可能返回之前异步启动的错误代码。
另请参阅: