windows - 以编程方式为应用设置图形性能

标签 windows winapi directx ms-media-foundation dxgi

Windows 控制面板中有一个选项可以将应用程序设置为“高性能”。
控制面板 -> 系统 -> 显示 -> 图形设置。

在那里添加我的应用程序时,我注意到,当使用 Media Foundation 和 H.265 编码时,它使用 NVIDIA gfx 适配器进行编码。在此之前,它使用嵌入式Intel显卡,只能进行H.264编码,因此H.265编码在CPU中慢慢完成。

如何以编程方式在那里添加我的应用程序?这对我的音序器的性能至关重要。

非常感谢。

Graphics Settings

最佳答案

据我所知,没有这方面的 API 或文档。但是,该首选项保存在注册表中HKEY_CURRENT_USER\Software\Microsoft\DirectX\UserGpuPreferences带有 GpuPreference 的字符串值部分和整数值对应 DXGI_GPU_PREFERENCE enumeration .
如果您以编程方式设置该值,则会在下一次应用程序重新启动时获取该值。家长 UserGpuPreferencesDirectX键可能不存在,因此您需要确保它们也存在。
此外,据我所知,此首选项优先于供应商(AMD、NVIDIA)特定设置中可能存在的类似首选项设置。
也可以看看:

  • Graphics performance preference在 MSDN 论坛上

  • 例子
    如果您的申请是 C:\testapp.exe ,您要创建以下注册表项:
    [HKEY_CURRENT_USER\SOFTWARE\Microsoft\DirectX\UserGpuPreferences]
    "C:\\testapp.exe"="GpuPreference=1;"
    
    或者另一种方法是使用设置以交互方式添加覆盖,然后查看创建的注册表值。

    关于windows - 以编程方式为应用设置图形性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59732181/

    相关文章:

    windows - 如果出现特殊字符 `!`,批处理脚本无法正常工作?

    windows - haskell ,GHC,win32,开罗

    windows - 如何在 Fall Creators Update 中从 WSL 中获取 Linux 安装路径

    c# - 使用c#从另一个进程调用一个函数

    c++ - 为什么 D3DXVec3Project 返回 D3DXVECTOR3?

    c++ - 无法打开包含文件 : 'basewin.h' : No such file or directory

    c++ - 硬编码 HLSL 着色器

    javascript - 在 Windows 托管站点上运行基本的 node.js

    c# - 将 ApplicationFrameHost 托管的 UWP 应用程序连接到它们的实际进程

    c++ - 如何在给定 ActiveX 控件的 HWND 的情况下获得 COM 接口(interface)?