第三方工具下载 2026年09月10日 深蓝 17 阅读 Tag:
感谢 深蓝软件用户 陈华 为大家编写,并在深蓝软件官网发布。本版本分享了exe还包括了c源码
NPerfTool 使用说明(N 卡性能优化设置工具)
版本:1.3.0.0 | 作者:陈华 | C 原生单文件,MinGW 编译,静态零依赖
用于 NVIDIA 显卡的「三档性能预设」一键设置与还原,随 GameOptimizer 套件分发。
一、功能一览
命令说明
`NPerfTool.exe info` / `status`显示 GPU/驱动/状态/温度/核心显存频率/显存占用
`NPerfTool.exe apply quality`质量优先(画质稳定 + 低延迟On/着色缓存无限/AF 16x)
`NPerfTool.exe apply performance`性能优先(电源最高性能、关垂直同步、低延迟开等)
`NPerfTool.exe apply ultra`极致性能(性能档 + 低延迟开 + 视觉效果/高性能电源方案等)
`NPerfTool.exe apply <档> --app xxx.exe`仅对指定程序写入其驱动 Profile
`NPerfTool.exe enhance on`图形增强:开启(3D 设置里的「图形增强(GPU 缩放及锐化)」,写 DRS `28027939=1`+子项)
`NPerfTool.exe enhance off`图形增强:关闭(写 `28027939=0`)
`NPerfTool.exe spy on`监控控制面板 nvapi 调用(自动启动/注入 `nvapispy.dll`,用于固化其它面板配置)
`NPerfTool.exe spy log`读取监控日志(`C:\ProgramData\nvapispy.log`)
`NPerfTool.exe spy off`结束被监控的 nvcplui 进程
`NPerfTool.exe verify`逐项探测本机驱动是否识别各 DRS settingId(只 SetSetting 不保存,无副作用,真机诊断)
`NPerfTool.exe query`查询本机当前设置值(系统注册表 + DRS 全局 Profile 读回;读回失败=该项本机驱动不保存/不生效)
`NPerfTool.exe restore [--app xxx.exe]`还原(DRS 复位默认 + 系统注册表项还原)
`NPerfTool.exe help` / `?` / `?`帮助
---
二、三档内容
层quality 质量优先performance 性能优先ultra 极致性能
驱动 Profile(DRS)电源=最佳功率、垂直同步=默认、纹理=质量、低延迟 On、后台限 60FPS、AF 16x电源=最高性能、垂直同步=关、预渲染帧=1、纹理=高性能、低延迟 On、后台限 30FPS、纹理细节优化 4 项= 性能优先(驱动可设项同)
系统注册表硬件加速 GPU 计划(HwSchMode=2) + 显示器永不关闭+ 视觉效果=最佳性能+ 视觉效果 + 高性能电源方案
nvidia-smi—持久模式 `-pm 1`持久模式 `-pm 1`
三档共同项:着色器缓存开 + 缓存大小=无限、低延迟生效开关=开、显示器永不关闭(系统电源设置)。
三档递进:性能 ⊇ 质量,极致 ⊇ 性能;重复应用任意档会先自动还原上一档再应用。
作用对象:默认 NVIDIA Global(全局)Profile;`--app xxx.exe` 时写入独立 Profile(`NPerfTool Perf`)并绑定该程序。
---
三、还原
`restore` 会:
把上述 DRS 设置项复位为驱动默认(不删除 Profile);
还原 HwSchMode / 视觉效果 / 电源方案 / 显示器关闭时间到应用前原值(记录于 `SaveNPerf.txt`,首次应用时自动保存)。
> 提示:还原是「复位默认」而非恢复你个人历史自定义值;若 Global 上原本有非默认性能项,建议先备份或用 NPI 复核。
---
四、DRS 设置项(供核对/扩展)
设置(NPI 名)SettingId档位取值
Power management mode`0x1057EB71` = 274197361最高性能=1,最佳功率=5(默认)
Vertical Sync`0x00A879CF` = 11041231关=0x08416747(138504007),默认=0x60925292
Maximum pre-rendered frames`0x007BA09E` = 81020461
Texture filtering - Quality`0x00CE2691` = 13510289高性能=0x14(20),默认=0
Shader Cache`0x00198FFF` = 1675263开=1
Negative LOD bias`0x0019BB68` = 1686376Clamp=1(性能档),Allow=0(默认)
Trilinear opt`0x002ECAF2` = 3066610On=0(开)/Off=1(语义反置;性能档写 0)
Aniso opt(×2)`0x0084CD70` / `0x00E73211`开=1
着色器缓存大小`0x00AC8497` = 11306135无限=0xFFFFFFFF(三档均设);默认 0x4000
低延迟-生效开关`0x10835000` = 277041152开=1(三档均设);关=0
低延迟-档位(CPL State)`0x0005F543` = 390467On=1(质量档) / Ultra=2(性能/极致档) / Off=0
后台应用最大帧率`0x10835005` = 27704115760(质量档) / 30(性能/极致档) / Off=0
各向异性过滤-模式/等级`0x10D2BB16` / `0x101E61A9`质量档:User(1) + 16x(0x10);默认 App(0)/Off(1)
图形增强(GPU缩放及锐化)`28027939`(0x01ABAC23) + 子项 `11250737`/`11250721`开=1 / 关=0(`enhance on/off`)
> 依据:电源/垂直同步/预渲染帧/纹理/着色缓存/各向异性过滤等来自 nvidiaProfileInspector 携带的 NVIDIA 官方 `NvApiDriverSettings.h`。
> **低延迟模式**(`0x10835000` 生效开关 + `0x0005F543` CPL 三档)、**后台应用最大帧率**(`0x10835005`)、**着色器缓存大小**(`0x00AC8497`)为「扫描型」设置:官方 ESetting 头文件**不存在** `NV_DRS_LOW_LATENCY_MODE` 常量,其真实 id 取自 nvidiaProfileInspector 的 `CustomSettingNames.xml` / `Reference.xml` 数据层(NPI 即用这些 id 经 `DRS_SetSetting` 写入)。
> **图形增强**:官方头文件未收录(经逆向确认);通过 hook `nvapi_QueryInterface` 捕获 NVIDIA 控制面板切换时对 `DRS_SetSetting` 的调用,确认其写入 `settingId=28027939(0x01ABAC23)=1/0` 及两个子项。该 id 亦对应驱动注册表 `nvlddmkm\State\0x01abac23`(直改该键会被驱动覆盖,**必须经 DRS API 写入**)。
> ⚠️ 垂直同步 Off 为魔数(非 0/1);低延迟/后台限帧/着色缓存大小为扫描型 id,且三线性优化语义反置(On=0)。写入后建议在真机用回读/NPI 复核。
> ⚠️ 实测(GTX 1050 Ti / 驱动 577):低延迟(0x10835000/0x0005F543)、后台限帧(0x10835005)、图形增强(28027939) 这几个扫描型/逆向 id 在本机 `DRS_SetSetting` 返回 **-160(NVAPI_SETTING_NOT_FOUND)**,驱动不识别、无法落盘——属驱动版本限制,非程序 bug;需更高版本驱动或改用官方头文件收录的 id。
---
五、spy 监控(固化配置)
`NPerfTool.exe spy on` 会从自身资源释放内嵌的 `nvapispy.dll` 到 exe 目录,并自动启动/注入 NVIDIA 控制面板(`nvcplui.exe`)。随后你在控制面板里切换任何想固化的设置项,其 `nvapi_QueryInterface` 调用(及关键 `DRS_SetSetting` 的 settingId/值)都会记录到 `C:\ProgramData\nvapispy.log`。
`spy log`:查看日志尾部(形如 `... |DRS_SET s=.. hp=.. settingId=<id> val=<值> ...`);
`spy off`:结束被监控的控制面板进程;
拿到某个设置项的正确 `settingId/值` 后,即可像「图形增强」一样固化进 `NPerfTool`(写 `DRS_SetSetting`),实现真正的可编程固化。
> **分发只需 `NPerfTool.exe` 一个文件**:`spy` 的 `nvapispy.dll` 已作为资源(RCDATA 1001)内嵌,运行时释放到 exe 目录后注入,无需随包携带任何 dll。
> **构建**:`nperf.rc` 引用同目录的 `nvapispy.dll`(构建输入需存在);`nvapispy.c`/`nvapispy_inject.c` 等源码与 `minhook\` 为构建依赖,分发时不需携带。
> 说明:`nvapispy.dll` 通过 MinHook 挂钩 `nvapi_QueryInterface`(含 DRS 参数记录)。
---
六、验证与注意
需管理员身份运行(写 HKLM 注册表与 DRS 需管理员)。
HwSchMode=2 需重启系统生效。
实测(GTX 1050 Ti / 驱动 577):
```
NPerfTool.exe info
=== NVIDIA GPU ===
NVIDIA GeForce GTX 1050 Ti, 577.00, P8, ... , 139 MHz, 405 MHz, 558 MiB, 4096 MiB
```
`apply ultra` 会把电源方案切到「高性能」,`restore` 自动还原原方案。
---
七、编译
```bat
compile_nperf.bat
```
依赖:MinGW-w64(`c:\mingw64\bin`);源文件 `NPerfTool.c` + 资源 `nperf.rc`(图标与版本信息与套件一致;构建时同目录需存在 `nvapispy.dll` 供内嵌)。