如果我们完全启动 Windows,然后启动它,我们的 Direct3D9 应用程序将完美运行。 但是,如果我们调整 Windows 的启动过程,使资源管理器不运行,而只启动 Windows 和我们的应用程序,我们的应用程序会非常慢。 CPU 消耗达到 50%,即使在空闲时也是如此(通常接近 0)。
这可以通过启动任务管理器、启动资源管理器并重新启动我们的应用程序来解决。但这是 Not Acceptable ;我们的应用程序必须在没有资源管理器的情况下运行。
这可能是 Direct3D 的东西吗?我们的应用程序是全屏的,Windows 版本是 XP SP3,所有最新更新,Direct3D 版本是 9.0.c。如果这与 Direct3D 无关,我该如何调试它?
最佳答案
解决了。转到 Control Panel->UserAccounts->Change the way users log on or off
并看到“使用欢迎屏幕”已被选中。
取消选中即可解决。似乎当欢迎屏幕处于事件状态时,由于它使用与桌面不同的分辨率,因此会发生冲突。而且我没查,好像是这个导致硬件加速暂时不可用,所以选择了软件渲染,杀CPU。
关于c++ - 如果 Windows 资源管理器正在运行,Direct3D 应用程序运行良好,否则速度会非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9808254/