IDXGIDevice::SetGPUThreadPriority 方法 (dxgi.h)

设置 GPU 线程优先级。

语法

HRESULT SetGPUThreadPriority(
  INT Priority
);

参数

Priority

类型: INT

一个指定所需 GPU 线程优先级的值。 请参阅本主题中的 “备注 ”部分。

返回值

类型:HRESULT

如果成功,则返回S_OK;否则,如果 Priority 参数无效,则返回E_INVALIDARG。

注解

若要使用 SetGPUThreadPriority 方法,应全面了解 GPU 计划。 如果不当使用, SetGPUThreadPriority 方法可能会妨碍呈现速度并导致用户体验不佳,因此请分析应用程序以了解优先级更改对应用程序和系统上的影响。

Priority 参数函数的值如下所示:优先级值位定义:

    位 0-4:优先级值
    位 5-29:保留
    位 30:绝对优先级标志(D3DKMT_SETCONTEXTSCHEDULINGPRIORITY_ABSOLUTE),可以是优先级值位 [4:0] 的 ORed(仅适用于 Windows 10+,否则未使用)
    位 31:带符号位

位 30(绝对优先级标志)可用于控制此 API 的作模式。

相对优先级模式 :当位 30 值设置为 0 时,API 将使用此模式。 在此模式下, 优先级 值必须介于 -7 到 7 之间(含 7),其中优先级值 0 表示正常优先级(所有上下文的默认值),-7 表示空闲优先级。 位 31 用于控制优先级的符号。

绝对优先级模式 :当位 30 值设置为 1 时,API 将使用此模式。 在此模式下, 优先级 值(对于 bits[4:0])必须介于 0 到 31 之间。 下面描述了这些优先级的含义。 仅当完全了解 dxgkrnl/graphics 优先级并了解更改它们时,才使用D3DKMT_SETCONTEXTSCHEDULINGPRIORITY_ABSOLUTE。

优先级值位[4:0] 转换为以下优先级值:

    0:空闲优先级 - 如果较高之前使用大多数加速键时间,则无法保证向前进度。
    1:正常优先级 - 大多数进程将此优先级用于向前进度保证。
    2 -15: 保留 -
    16-29:软实时 - 抢占优先级较低,并定期生成低优先级以确保其前进进度。
    30:硬实时 - 用于极其延迟的敏感度良好的工作负荷。 此优先级不会降低优先级。
    31:内部使用

要求

要求 价值
目标平台 Windows操作系统
标头 dxgi.h
图书馆 DXGI.lib

另请参阅

DXGI 接口

IDXGIDevice

IDXGIDevice::GetGPUThreadPriority