Windows 10 性能优化指南

0 点赞
星球大战™ 战争帝国 - 金包
转载

一份记录我所有未实际游玩游戏时间的日志,目的是让游戏运行得更好。(使用了Special K、系统资源管理器、DGVoodoo2、DXVK等工具) 第00章 序章 (他们已将游戏更新为64位版本,现在运行很流畅,所以我不知道这些记录还有多少相关性,但我很高兴) 自从这款游戏发行以来,我就以不同形式拥有它。真希望能回到过去,那时我还能接受它在没有独立显卡的旧电脑上以14帧运行。 目前我正努力榨干系统性能来运行这款游戏,因为我现在还买不到新的显卡。 目前使用的配置是锐龙5 3600和EVGA FTW 1070 (后来升级到了锐龙9 5900X和3070,游戏偶尔还是会卡顿,但DXVK带来了不错的多线程优化)

更新日志: 2021年5月1日:开始制作 2021年5月2日-15日:逐步添加内容 2021年5月17日:内容整理 2021年5月22日:添加【禁用全屏优化】功能 2021年某日更新:我有段时间没更新本指南了,但我已将CPU升级为锐龙5 5600X,并运行Clock Tuner 2.1,单核性能提升至4.73。现在我使用DXVK 1.8.1异步模式运行游戏,配合RTSS和通过NVIDIA控制面板设置的垂直同步,能稳定达到60帧。此外,我还在DXVK下运行GShade,效果不错。 2022年3月16日:看到本指南受到欢迎,决定添加DXVK设置以说明我的配置变化。由于DXVK现在自带帧率限制器,我不再将其与RTSS配合使用。请查看DXVK部分以了解这些变更。 2022年3月29日和30日:新增了关于在游戏中关闭硬件鼠标以及在Starwarsg.exe兼容性菜单中禁用全屏优化的部分。 【务必在游戏视频设置中关闭硬件鼠标】 第一章 系统资源管理器 这是一款在后台运行的程序,可作为更好的任务管理器替代工具。它的重要性在于能够永久设置游戏的优先级以及游戏使用的CPU核心数。 只需右键点击想要更改的进程,在弹出的列表中即可找到进程优先级和CPU亲和性设置。进行所需更改后,选择列表底部的“永久”选项即可。现在只要系统资源管理器随Windows启动,它就会记住你的设置。这意味着你不必每次想玩《星球大战:帝国战争》时都打开任务管理器。

但为什么要调整优先级/亲和性呢? 原因很简单,如果优先级没有设为高或更高,游戏就无法发挥出最佳性能。亲和性也很重要,因为这款游戏是2005/2006年开发的,当时是针对双核电脑进行优化的。所以,如果你不按照本指南使用软件来改变游戏对系统资源的使用方式,那么如果你使用的是超线程CPU,建议将游戏的亲和性设置为两个物理核心。例如,如果你有6核CPU,可以选择3号和5号核心。

关于此主题的更多内容可参考相关指南。感谢AlexRight。 第二章 Special K 这部分内容会很有趣。 这是一款出色的软件,其功能难以解释和理解,但我会尽量简要说明。 获取最新版本的最佳方式是通过相关渠道下载最新版本。不过,你可能首先需要一个稳定版本来开始使用,可在其官方网站获取。

关于SpecialK的安装文档可在相关维基中找到。不过在我的示例中,我会使用本地安装方式。建议为你的SpecialK安装程序(位于文档/我的模组/SpecialK目录)和游戏的Corruption文件夹(位于C:/Program Files (x86)/Steam/steamapps/common/Star Wars Empire at War/corruption目录)创建桌面快捷方式。操作方法是右键点击文件夹,选择【发送到】,再选择【桌面快捷方式】。

右键点击并复制specialk32.dll文件,然后将其粘贴到你的《星战:旧共和国武士》文件夹中StarWarsG.exe所在的位置。左键点击新复制的文件,按F2将其重命名为d3d9.dll。之后运行游戏一次,以生成名为d3d9.ini的配置文件。我建议使用Notepad++来处理接下来的步骤,不过系统自带的记事本也可以使用。在这一步中,我们只需修改.ini文件内的一个数值。

将“callback throttle=”从-1更改为8。 目前应该就是这些内容了,更多关于SpecialK可用选项的信息在下方。 第三章 电源设置 我在游玩这款游戏的【觉醒的反叛】模组时,从英特尔6500k处理器换成了AMD锐龙5 3600。但据我所知,Windows 10的电源设置界面对于这两款处理器应该是相同的。 我还要说明一下,由于我目前使用的是Open-Shell,所以我的Windows 10菜单看起来会和正常的有所不同。 在开始菜单的搜索栏中输入“电源选项”。搜索结果中,正确的选项旁边应该有一个绿色的电池图标。 在电源选项菜单的左上角,你会看到标有“创建电源计划”的按钮。在下一个界面选择高性能模式,并为新的电源配置文件命名一个你容易识别的独特名称。返回“选择或自定义电源计划”页面后,点击你刚创建的配置文件旁边的“更改计划设置”按钮。

下一页上的“更改高级电源设置”

PCI Express -> 链接状态电源管理,应设置为关闭。

处理器电源管理 -> 最小处理器状态,根据不玩游戏时对功耗的在意程度,应设为5%或100%。 处理器电源管理 -> 系统散热策略,应设为主动。 处理器电源管理 -> 最大处理器状态,应设为100%。我曾见过有人建议AMD用户将其设为99%以防止某些游戏中出现卡顿问题,但根据我的经验,它应始终设为100%。

第四章 注册表编辑 存在一定风险,请自行承担使用后果。 引用自SevenFiftySix:关于黑屏问题,这很可能是分辨率问题。你需要手动编辑电脑注册表文件中的一些设置。 1) 运行注册表编辑器(在开始菜单的搜索栏中输入“regedit”,它就会弹出) 2) 依次展开至【HKey Current User】-【Software】-【Petroglyph】-【StarWars FOC】-【Profile】-【Profile0】 3) 向下滚动一点,将屏幕高度/宽度/刷新率更改为其他数值。你可能需要将其设置为与你的显卡和显示器当前运行的参数相匹配。 编辑注册表时,将基数从“十六进制”切换为“十进制”,这样你就可以使用常规数字而非十六进制代码。 不过我不确定这是否能解决原发帖人的问题。我在尝试使用dgvoodoo2、dxvk和specialk时,三次搞坏了游戏安装。 通过上述方法,我成功将游戏分辨率调整为2560×1440,适配我的2K屏幕。不过,我不建议修改刷新率。 若想让设置更容易生效,请进入coruption文件夹,右键点击StarWarsG.exe,选择属性,进入兼容性选项卡,勾选【禁用全屏优化】。

ch.05 dgvoodoo2 该工具可将运行在DirectX 9的游戏转换为DirectX 11甚至DirectX 12。 仅测试过DirectX 11。 下载网站最新版本并解压到容易访问的位置后,需将dgvoodoo2保存位置中的四个文件复制到游戏可执行文件所在的Corruption文件夹中。

d3d9.dll(来自dgvoodoo2→ms→x86) ddraw.dll(来自dgvoodoo2→ms→x86) dgvoodoo.conf dgvoodoocpl.exe 现在你需要从corruption文件夹中打开dgvoodoocpl.exe。

请确保【配置文件夹】框设置为(C: Program Files (x86) Steam steamapps common Star Wars Empire at War corruption),否则如果您将dgvoodoo2用于多个游戏,可能会更改整个系统的设置。 将【输出API】更改为Direct 3D 11(功能级别11.0)。 将【要使用的适配器】更改为您的主显卡。 然后切换到【DirectX】选项卡。

将显卡设置为dgvoodoo虚拟3D加速卡 显存设置为4096(如果你的实际显卡显存为4GB或以上,否则请设置更低数值) 在杂项设置下开启快速显存访问 当确认游戏可通过dgvoodoo2正常运行后,关闭dgvoodoo水印 如果一切正常,游戏现在应该能通过dgvoodoo2运行。如果在选项中保留了水印,你会在游戏窗口右下角看到它,表明dgvoodoo2正在工作 ch.06 dxvk dxvk可将游戏从DirectX 9转换为Vulkan 它常用于Linux系统,但也有Windows版本,本指南将使用Windows版本 此选项与dgvoodoo2以及目前的specialk不兼容请先下载dxvk,将内容解压到容易访问的位置。然后解压主文件夹内的dxvk文件,此时文件夹中应包含以下内容:

进入x32文件夹,将d3d9.dll文件复制到你的corruption文件夹中。(如果你正在尝试本指南中概述的连续解决方案,请确保已删除之前的d3d9文件,否则可能会出现兼容性问题)。 现在在corruption文件夹内右键,创建一个新的“文本文档”。 然后将该文本文档保存为dxvk.conf。这将为你提供许多可配置的选项,要启用某个选项,删除其前面的“#”即可。所有项目前都会有一个“#”符号,但实际命令与说明其作用的文字之间有一个空行。建议你定位到第229行,删除“#”符号,并在“=”符号后输入“fps,frametimes,drawcalls,pipelines,memory,gpuload,compiler,samplers”。

这将让你确认dxvk是否在游戏中正常运行。确认后,你可以删除“=”后面的文本,或者在开头添加“#”来关闭它。 2022年3月16日编辑:我现在会在下方发布我的dxvk设置。请注意,如果你使用dxvk async(我确实推荐你使用),你需要自行添加激活重要async设置的行。 -- #async启用器 dxvk.enableAsync = true DXVK_ASYNC=1 -- 这些设置需要添加或复制到dxvk.conf文件的内容中。 (小提示:按ctrl+A可以选择文件的所有内容,让你更快地删除或复制内容) 请注意,我的设置适用于NVIDIA显卡和具有12个物理核心及24个线程的AMD CPU。如果您使用的CPU线程数少于10,请将页面底部附近的以下设置更改为您拥有/想要使用的线程数: dxvk.numAsyncThreads = 10 dxvk.numCompilerThreads = 10 ch.06 and a half dxvk设置 dxgi.deferSurfaceCreation = True d3d9.deferSurfaceCreation = True dxgi.maxFrameLatency = 1 d3d9.maxFrameLatency = 1 dxgi.customVendorId = 10DE d3d9.customVendorId = 10DE dxgi.maxDeviceMemory = 4000 dxgi.maxSharedMemory = 4000 dxgi.numBackBuffers = 3 d3d9.numBackBuffers = 3 dxgi.tearFree = True d3d9.tearFree = True d3d11.relaxedBarriers = True d3d11.samplerAnisotropy = 16 d3d9.samplerAnisotropy = 16 dxvk.useEarlyDiscard = True #. = fps,frametimes,drawcalls,pipelines,memory,gpuload,compiler,samplers dxvk.hud = 编译器,帧率 d3d9.evictManagedOnUnlock = True 第六章又四分之三 DXVK 设置续篇 #异步启用器 dxvk.enableAsync = true DXVK_ASYNC=1 dxvk.numAsyncThreads = 10 dxvk.numCompilerThreads = 10 dxgi.maxFrameRate = 60 d3d9.maxFrameRate = 60 第七章 SpecialK 覆盖 DGVoodoo2(或深陷此问题的困境) 这是我花了大量时间试图解决的问题,在成功解决(对我而言)后,我便想写下这份“指南”,以免忘记自己的操作步骤。 这里有很多可能导致游戏安装损坏的死胡同,我就遇到过3次。 这部分内容可能更准确一些,因为这是我当前电脑上安装的版本。 我目前也在运行《叛乱的觉醒》2.8版本。目前也有2个模组。 因此,你需要清除之前使用过的所有文件,并按照上述说明重新安装dgvoodoo2。 接下来,你需要前往【文档】-【我的模组】-【SpecialK】文件夹,将specialk32.dll复制到【腐败】文件夹(路径:C: Program Files (x86) Steam steamapps common Star Wars Empire at War corruption)。 然后将其重命名为dinput8.dll(点击文件后按F2)。 进入SpecialK文件夹并启动SKIF.exe(你也可以右键点击它,将其固定到开始菜单或任务栏,以便日后更方便地访问)。

在Special K窗口的右下角点击【启动服务】按钮。等待服务启动完成(文本提示以及光标从加载图标恢复正常)。 运行一次游戏。游戏可能会崩溃,但只要在Corruption文件夹中生成dinput8.ini文件即可。 现在需要打开该dinput8.ini文件,示例中使用Notepad++。 在【steam.system】部分的第205行,将【callback throttle=】修改为8。 在【render.dxgi】部分的第128行,将【AllowTearingInDWM=】修改为false。 在【api.hook】部分的第29行和第30行,将【d3d9=】修改为false,【d3d9ex=】修改为false。 完成上述操作后,启动游戏时,加载过程中屏幕顶部应会显示Special K横幅。当游戏允许移动光标时,按下Control(Ctrl)+Shift+退格键以打开SpecialK控制窗口。

如果你在名为“active render api”的区域顶部看到“d3d9→11”,就说明SpecialK正与dgVoodoo2一起正常运行。

从【帧率限制】开始,启用该选项,点击输入框并输入你偏好的数值来设置帧率上限。 然后点击【高级】以打开额外的设置窗口。 启用【低延迟模式】、【丢弃延迟帧】、两个【无休眠】选项、【使用多媒体类调度】以及所有【NVIDIA Reflex模式】选项,设置成与图片中所示一致。请注意,只有特定的NVIDIA显卡支持Reflex功能。 接下来点击【Direct3D 11设置】,然后选择【交换链管理】。 此部分的相关信息可参考相关资料。我的设置是针对双显示器(其中一个支持G-SYNC兼容模式)的设备配置。说实话,我很难让G-SYNC在这套设置下稳定开启。 这里可以设置与垂直同步相关的显示间隔: - -1:让游戏自行处理垂直同步 - 0:强制关闭垂直同步 - +1:强制开启垂直同步 后台缓冲区数量可设为-1,让游戏保持默认数量。《星球大战:帝国战争》通常使用2个,我尝试设为3个,但没有明显的性能提升。在更现代的游戏中,该数值可高达16,其中3个之后每增加2个后台缓冲区,都能在消耗显存的前提下提升性能,但超过5个后提升效果会逐渐减弱。 最大设备延迟是你允许的渲染延迟帧数,-1表示无限制。 我会在1,-1,2和1,3,2这两组设置之间切换。 遗憾的是,我无法为这款游戏启用翻转模式。小工具标签页可以让你查看许多有趣的信息,如果你愿意的话,我建议你逐个尝试一下。 第七章半 小问题 在我的双显示器设置下,有时会遇到屏幕无法像我希望的那样显示在游戏显示器上的问题。我发现的一个解决方法是在非游戏显示器上打开任务管理器窗口。(不知为何这能奏效,欢迎来到小问题环节。)

要在此设置下启用G-SYNC,我必须进入SpecialK窗口顶部的显示下拉菜单,将刷新率覆盖设置为239(因为我的游戏显示器最高支持240帧),这会将G-SYNC状态从“不支持”更改为“支持+激活”。

但这还不是全部,除非你忘记,否则你还需要立即从同一个菜单中再次将其关闭。因为如果你不这样做,游戏会在两个显示器之间快速切换,导致屏幕剧烈闪烁(这会使游戏基本无法游玩)。 我遇到过游戏以1280x720或更低分辨率加载的问题,这会导致鼠标指针的实际位置与屏幕显示位置不符。为了解决这个问题,我必须在选项菜单中关闭硬件鼠标,并且每次启动游戏时都必须手动将分辨率更改为2560x1440。 我还尝试过关闭游戏内垂直同步,然后在NVCP(英伟达控制面板)中启用它,因为SpecialK通常需要开启垂直同步,尤其是当你想在G-SYNC显示器上使用它时。但此选项似乎没有效果。 第08章 DirectX 12 发现三种方法: DGvoodoo2 d912pxy Neun auf Zwölf 第09章 对比 我将使用CapframeX软件来对比各种独特方法: 此处解释的所有细节: 所有数据均在AOTR mod 2.8.2的【屏保】(后台发生的太空战斗)期间记录: 基础游戏AOTR MOD:

Special K(独立版):版本(Special K 21.04.23,2021年4月23日)

DXVK(带RTSS限制器):版本:异步dxvk 1.8.1

Dgvoodoo2(带RTSS限制器;仅能在768p分辨率下运行):版本:Dgvoodoo2 2.74

Special K(优于Dgvoodoo2):版本(Special K 21.04.23,2021年4月23日)优于版本:Dgvoodoo2 2.74.1

RTSS(Rivatunner statistics server):将dgvoodoo2和dxvk单独实现设置为60帧。

编辑: 1. DXVK搭配RTSS(异步1.8.1版本) 2. Dgvoodoo2搭配RTSS(在我的测试中仅768分辨率下可运行) 3. Special K覆盖Dgvoodoo2 4. 基础游戏 第10章性能额外优化 计时工具 为我提升了两帧。虽然不多,但算是免费的提升。 编辑:或者可以使用智能待机内存清理工具 智能待机内存清理工具

4GB补丁 这款游戏是32位游戏,这通常意味着它在使用显卡超过2GB显存时会出现问题。像《辐射:新维加斯》这类拥有大量模组支持的游戏都有专门的4GB补丁,该程序可以为大多数32位游戏实现相同的功能。 它适用于这款游戏,但在我使用的模组下没有明显的性能提升。 编辑:事实证明,此工具和CFF explorer可用于将程序更改为LAA(大地址识别)模式,操作方法如上文所述,但有些游戏不仅需要为.exe文件设置LAA标志,还需要为游戏所依赖的某些.dll文件进行设置。我不知道自己需要哪些文件,所以就为所有文件都设置了LAA标志,其中也包括标准《星球大战:帝国战争》可执行文件。 CFF资源管理器:右键点击任意或所有.exe和.dll文件,选择“用CFF打开”,然后在左侧顶部点击“文件头”,接着在表格右下角“特性”项末尾“含义”旁边的“点击此处”框中,勾选“应用程序可处理>2GB地址空间”,点击确定。 大教堂资产优化器我使用此工具将《星球大战:起义觉醒》模组(路径:C: Program Files (x86) Steam steamapps workshop content 32470 1397421866 Data ART TEXTURES)中的纹理转换为bc7压缩格式。如果你使用dgvoodoo2,游戏能够使用这些更新后的纹理,这是因为游戏通常仅限于DirectX9可处理的内容,而DirectX9仅支持bc3或更低的压缩格式。

但这可能没什么区别,因为我没有使用那些我无法访问的原始文件。判断纹理是否已更改的方法是将它们放入像HxD这样的十六进制编辑器中,查看顶部几行中是否有“dxt10”。否则,bc1纹理的代码是“DXT1”,bc3纹理的代码是“dxt5”。我还使用CAO将所有纹理调整为一半大小,结果没有明显的图形损失,平均还多获得了3帧。

雷蛇 cortex;性能下降 通过设备管理器禁用 HPET(高精度事件计时器);性能无提升。 通过注册表编辑器禁用预取和超级预取;性能无提升。 将系统资源管理器的优先级从高更改为实时;性能提升1帧 GRAPHICDETAILS.XML 这是一个实验性的方法,我无法确定它是否真的如预期那样有效,并且我希望游戏的新补丁已经解决了相关问题。但似乎游戏会检测是否为老旧硬件,以启用更好的性能。 此文件用于修复零售光盘版原版游戏的问题。游戏的任何修复都应已默认包含在Steam版本中。不过当我看到这些不同的数值时,我产生了疑问。

现在游戏中的文件与模组中的文件相同,这应该意味着它不会影响任何东西。但由于我很好奇,我做了以下几件事。 在选项卡中看到6800,并在维基百科上查阅了相关信息; 查找了设备ID和其他信息; 打开了dgvoodoo2,右键点击横幅以解锁高级选项;

前往DirectxExt并更改了在上述列表中看到的id类型、供应商ID和设备ID。

这是修改时序工具、自动刷新内存缓存、将系统资源管理器更改为实时模式(仅选择物理核心)以及在我的SpecialK覆盖dgvoodoo2安装上应用此修复后的结果:

将所有游戏及整个Steam库安装在Program Files目录之外。 右键点击游戏的.exe文件,在列表底部选择属性。点击窗口顶部的兼容性选项卡,然后勾选【禁用全屏优化】。这对多款游戏可能有性能提升,在此处则有助于防止游戏每次重启时更改分辨率。这是我写的第一份攻略,花了这么多时间在这件虽然没什么意义但我乐在其中的事情上,终于把它写下来真是松了一口气。