ID3D12Debug5::SetEnableAutoName 方法 (d3d12sdklayers.h)
配置对象的自动命名。
语法
void SetEnableAutoName(
BOOL Enable
);
参数
Enable
类型: BOOL
true
启用自动命名; false
禁用自动命名。
返回值
无
备注
默认情况下,对象不命名,除非使用 ID3D12Object::SetName 或 ID3D12Object::SetPrivateData 来分配名称。
最佳做法是命名所有 Direct3D 12 对象;至少在调试版本中。 否则,你可能会发现允许自动名称分配以弥补差距很方便。 使用启用自动名称创建的 Direct3D 12 对象会自动分配一个名称,该名称用于调试层输出和 DRED 页面错误数据。
因此,为了不在特定自动命名格式上创建依赖项,不能使用 ID3D12Object::GetName 或 ID3D12Object::GetPrivateData 检索自动命名字符串。 但是,为了生成唯一的名称字符串,Direct3D 12 使用本地唯一标识符 (LUID) 在创建时分配给每个 ID3D12DeviceChild 对象。 可以使用 ID3D12Object::GetPrivateData 和 REFGUID 值 WKPDID_D3D12UniqueObjectId检索该 LUID。 你可能会发现这对你自己的对象命名架构很有用。
调试现有软件时,可以使用 D3DConfig 图形工具实用工具和命令 d3dconfig.exe device auto-debug-name=forced-on
来控制自动命名。
使用 ID3D12Object::SetName 或 ID3D12Object::SetPrivateData 指定名称的任何对象都使用分配的名称,而不是自动名称。
要求
最低受支持的客户端 | Windows 10内部版本 20348 |
最低受支持的服务器 | Windows 10内部版本 20348 |
目标平台 | Windows |
标头 | d3d12sdklayers.h |