PFND3D11DDI_DESTROYUNORDEREDACCESSVIEW回调函数 (d3d10umddi.h)
销毁无序访问视图。
语法
PFND3D11DDI_DESTROYUNORDEREDACCESSVIEW Pfnd3d11ddiDestroyunorderedaccessview;
void Pfnd3d11ddiDestroyunorderedaccessview(
D3D10DDI_HDEVICE unnamedParam1,
D3D11DDI_HUNORDEREDACCESSVIEW unnamedParam2
)
{...}
参数
unnamedParam1
hDevice [in]
显示设备的句柄 (图形上下文) 。
unnamedParam2
hUnorderedAccessView [in]
要销毁的无序访问视图的驱动程序专用数据的句柄。 Microsoft Direct3D 运行时释放它以前为无序访问视图分配的内存区域。 因此,驱动程序无法再访问此内存区域。
返回值
无
备注
驱动程序可以使用 pfnSetErrorCb 回调函数来设置错误代码。
驱动程序不应遇到任何错误,D3DDDIERR_DEVICEREMOVED除外。 因此,如果驱动程序在调用 pfnSetErrorCb 函数时传递了除D3DDDIERR_DEVICEREMOVED以外的任何错误,则 Direct3D 运行时将确定错误严重。 即使删除了设备,驱动程序也不需要返回D3DDDIERR_DEVICEREMOVED;但是,如果设备删除干扰 DestroyUnorderedAccessView (通常不应在) 发生的操作,驱动程序可以返回D3DDDIERR_DEVICEREMOVED。
注意 在销毁直接上下文和设备或销毁延迟上下文期间,Windows 7 不会清除计算着色器无序访问视图 (CS UAV) 绑定点。
因此,驱动程序看到 UAV 句柄仍绑定到上下文,这违反了运行时提供的常规保证。
驱动程序可以通过执行以下步骤来解决此问题:
- 使用 AbandonCommandList 或 CreateCommandList 方法,因为每个方法都标记命令列表的末尾。
- 通过验证以下任一状态是否设置为 NULL 来推断 CS UAV 绑定点的取消绑定:混合状态、光栅器状态和深度/模具状态。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 7 操作系统开始支持 DestroyUnorderedAccessView。 |
目标平台 | 桌面 |
标头 | d3d10umddi.h (包括 D3d10umddi.h) |