ID3D12Debug5::SetEnableAutoName 方法 (d3d12sdklayers.h)

配置对象的自动命名。

语法

void SetEnableAutoName(
  BOOL Enable
);

参数

Enable

类型: BOOL

true 启用自动命名; false 禁用自动命名。

返回值

备注

默认情况下,对象不命名,除非使用 ID3D12Object::SetNameID3D12Object::SetPrivateData 来分配名称。

最佳做法是命名所有 Direct3D 12 对象;至少在调试版本中。 否则,你可能会发现允许自动名称分配以弥补差距很方便。 使用启用自动名称创建的 Direct3D 12 对象会自动分配一个名称,该名称用于调试层输出和 DRED 页面错误数据。

因此,为了不在特定自动命名格式上创建依赖项,不能使用 ID3D12Object::GetName 或 ID3D12Object::GetPrivateData 检索自动命名字符串。 但是,为了生成唯一的名称字符串,Direct3D 12 使用本地唯一标识符 (LUID) 在创建时分配给每个 ID3D12DeviceChild 对象。 可以使用 ID3D12Object::GetPrivateDataREFGUIDWKPDID_D3D12UniqueObjectId检索该 LUID。 你可能会发现这对你自己的对象命名架构很有用。

调试现有软件时,可以使用 D3DConfig 图形工具实用工具和命令 d3dconfig.exe device auto-debug-name=forced-on来控制自动命名。

使用 ID3D12Object::SetNameID3D12Object::SetPrivateData 指定名称的任何对象都使用分配的名称,而不是自动名称。

要求

   
最低受支持的客户端 Windows 10内部版本 20348
最低受支持的服务器 Windows 10内部版本 20348
目标平台 Windows
标头 d3d12sdklayers.h

请参阅