D3D12DDI_BACKGROUND_PROCESSING_MODE_0062枚举 (d3d12umddi.h)

指示为后台处理启用了哪种级别的动态分析和着色器重新编译。

默认情况下,运行时将一次最多计划一个后台编译任务,以空闲优先级运行,以最大程度地降低此工作的风险,在前台呈现中引入故障。

开发人员和分析工具可以通过使用这些枚举值的组合来调整此行为。

语法

typedef enum D3D12DDI_BACKGROUND_PROCESSING_MODE_0062 {
  D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOWED,
  D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOW_INTRUSIVE_MEASUREMENTS,
  D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_BACKGROUND_WORK,
  D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_ALL_PROFILING
} ;

常量

 
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOWED
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOWED是默认状态,在这种情况下,驱动程序可以按其选择的任何方式检测工作负荷,并可能 (通常为 PSO 重新编译提交到 D3D 运行时) 以进行低优先级执行。 此模式的目标是启用动态优化,但不会影响前台呈现性能。
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOW_INTRUSIVE_MEASUREMENTS
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOW_INTRUSIVE_MEASUREMENTS提示,驱动程序应优先考虑检测的丰富性和完整性,而不是避免故障,因为当前进行的渲染是专门为训练目的进行的,不需要以通常流畅的性能执行。

这种重量级分析将由 PIX 等分析工具使用。 基准测试还可以在进行实际性能度量之前使用它来预热优化状态,或者直接由游戏在适当时间 (例如。通过在菜单) 后面呈现不可见的内容来预训练驱动程序。
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_BACKGROUND_WORK
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_BACKGROUND_WORK阻止执行后台处理任务。 首次打开此标志时,将允许任何已进行的任务运行到完成。 UMD 已提交但尚未开始运行的任务将被取消,并且对 QueueProcessingWorkCB 的任何调用(如果已处于此状态)将导致立即调用取消回调。

当然,UMD 可以选择在处于禁用状态时完全跳过任务提交,但如果它确实提交工作,运行时将取消而不是只是失败提交操作,以避免 UMD 不得不在工作提交和模式更改之间进行同步。

如果在指定 D3D12DDI_MEASUREMENTS_ACTION_0062_COMMIT_*的同时打开禁用标志,则允许 UMD 为响应提交请求而生成的任何新任务在禁用生效之前执行。

禁用标志仅在启用开发人员模式时有效。
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_ALL_PROFILING
除了暂停动态着色器重新编译外,这表示驱动程序应避免进行任何会干扰性能的行为更改,例如动态优化缓存策略或计算调度模式。 这是在分析会话期间使用,其中 A/B 比较必须提供稳定的计时结果。

仅当启用开发人员模式时,此标志才有效。

要求

要求
最低受支持的客户端 Windows 10 版本 1903
标头 d3d12umddi.h