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) |