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是默认状态,驱动程序可以以任何方式检测工作负荷,并且可以将 CPU 任务(通常是 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 |