设置 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 |