根据YUZU模拟器进度报告,2023年4月份的更新中,YUZU团队成功解决了部分游戏的兼容性问题,提升了模拟器的稳定性和性能。此次更新还优化了用户界面,使操作更加简单直观。未来,YUZU模拟器将不断努力,为玩家提供更好的游戏体验。
Switch模拟器YUZU进度报告2023-4月
你好,yuz-ers!本月的个人变化较少,但所做的更改是实质性的!你不会想错过这个。
YFC 项目 1.90!
一个周末,Blinkhawk 出现并问道:“想要在正常 GPU 精度上测试性能提升 50% 和近乎完美的渲染吗?” 这正是我们所做的。
此更改的更准确名称是“缓冲区缓存重写的重写”,也许简称 rBCR?从本质上讲,Blinkhawk重写了Rodrigo两年前引入的大部分旧缓冲区缓存更改,同时考虑到了最近游戏的新需求以及原始BCR发现的问题。
部分工作还涉及:
允许在单独的线程中验证屏蔽和异步下载的写入
通过跳过主机-来宾围栏同步而不在主机条件渲染上下载以实现正常 GPU 精度来重组准确性的管理方式
提高异步下载的一致性Query Cache
结果是惊人的。大多数过去需要高 GPU 精度才能正确渲染的游戏现在可以在正常上运行,没有任何问题。 此外,所有这些变化都减少了带宽使用,并将每个人的性能提高了 87%(平均 50%),从低端 APU 到高端野兽。
以下是不完整的更改列表:
如前所述,许多需要高 GPU 精度才能在视觉上准确的游戏现在以最小的牺牲使用正常的 GPU 精度。
粒子和角色光照/阴影已修复为正常 GPU 精度。在正常 GPU 精度上,性能提高了多达 40%。Pokémon Sword & Shield精灵宝可梦:剑盾
模型(例如 BowWow)和粒子渲染固定在 中的正常 GPU 精度上。
在正确渲染的情况下,正常精度的性能现在比以前提高了 70%。The Legend of Zelda: Link's Awakening塞尔达传说:织梦岛
照明已修复,不再闪烁。Diablo II: Resurrected暗黑破坏神2:重置版
光源和阴影将不再随机闪烁。Luigi's Mansion 3路易吉洋馆3
精灵宝可梦照片检测和数据已固定在正常 GPU 精度上。这使得工作照片检测的性能提高了50%。New Pokémon Snap宝可梦随乐拍
Kirby and the Forgotten Land星之卡比:探索发现、光照和粒子已固定为正常 GPU 精度。这导致高达 40% 的性能提升,并以正常精度进行准确的渲染。
某些机器中的红灯已修复。Xenoblade Chronicles 2异度之刃2
Fire Emblem Warriors火焰纹章无双已准确修复,不再需要解决方法。
MONSTER HUNTER RISE怪物猎人:崛起现在以正常 GPU 精度准确渲染,性能提升高达 50%(但请注意,3.0.0 之后的更新仍然存在问题,需要更多工作)。
在正常 GPU 精度下不再发生顶点爆炸,导致性能提高高达 30%。Persona 5 Royal女神异闻录5 皇家版
Atelier Ryza莱莎的炼金工房系列游戏现在可以正确呈现。
高级图形设置中的悲观刷新选项在它受益的任何受影响游戏中都不再需要,我们现在已经将其删除。
Mortal Kombat 11真人快打11不再有任何顶点爆炸。
NieR:Automata The End of YoRHa Edition尼尔:机械纪元年度版现在可以正确呈现。
Bayonetta 3猎天使魔女3不再需要高 GPU 精度即可正确渲染。
Splatoon 2喷射战士2的墨汁在 AMD GPU 上正常工作,同时使用高 GPU 精度。
The Legend of Zelda: Breath of the Wild塞尔达传说:旷野之息的粒子已修复,在正常 GPU 精度下,性能和准确渲染提高了 40%。
树闪烁已修复所有 GPU 精度选项。The Legend of Zelda: Breath of the Wild塞尔达传说:旷野之息
还有很多很多!
无需启用任何选项即可利用所有这些,只需将 GPU 精度切换到正常(如果尚未切换)。你还在等什么?
以下是一些最受欢迎的游戏的一些统计数据。 我们比较了主线 1407 中的高 GPU 精度和主线 1421 中的正常 GPU 精度。 所有测试均以 2 倍分辨率缩放完成,并在可能的情况下使用 mod 禁用动态分辨率。
然后我们有这四个,高FPS小队。他们有足够的理由考虑要求模组社区开始发布 240 个 FPS 模组!
使用 Zen 4 3D V 缓存芯片,预计数字会更高。 例如,在 的同一测试点中,非 3D 7900X 获得 90 FPS。Breath of the Wild荒野之息
其他图形更改
Citra传奇人物GPUCode挺身而出,帮助我们进行演示。演示是大多数图形代码的最后一步 - 将输出到屏幕的过程。
GPU 的工作将交换链操作移动到单独的线程,以避免停止主 GPU 线程。这提高了要求更高的游戏和低端硬件的性能,并且在许多情况下可以在勉强获得 60 帧和每秒获得流畅的 60 帧之间产生差异。
但是,它也会使帧时间不太一致,因此我们默认将其关闭以允许进一步测试。我们需要确定哪些系统和游戏受益最大。 对于那些有兴趣尝试的人,可以在 中找到切换开关。模拟 >设置 > 图形 > 高级 > Enable asynchronous presentation (Vulkan only)
vonchenplus 继续致力於使代碼與 NVIDIA 在其最新文檔中公開的信息相匹配。
你可能还记得Wollnashorn在大修Vulkan管道缓存中的作用。 现在,Wollnashorn 为我们提供了一种绕过硬件限制的技术,以便在非 NVIDIA 硬件上准确渲染。The Legend of Zelda: Breath of the Wild
物体边缘,尤其是草叶,在AMD和Intel GPU上具有明显的黑色边框。 无论使用何种驱动程序,都会出现问题,因此这显然是硬件限制,并且与游戏预期不兼容。 使用一种称为延迟渲染的技术 - 在这种特殊情况下,阴影以一半的分辨率渲染。 全分辨率深度纹理的四个像素与 textureGather 调用同时采样。 具有使用纹理的规范化浮点坐标的特征,因此每个片段始终位于四个选定像素的边界处。The Legend of Zelda: Breath of the WildtextureGather
现在,使用浮点,每个 GPU 设计将具有不同的舍入精度。 此外,多亏了 Nathan Reed 的博客,我们知道纹理上像素的整数坐标是由 GPU 在从浮点数转换为定点数后计算的。textureGather
由于涉及浮点转换,您也许能够知道这是怎么回事。 如果用户的GPU未使用与Nintendo Switch相同的舍入精度,则可以对不同的像素进行采样。因此,只有NVIDIA GPU获得了游戏预期的四个正确像素。
沃尔纳斯霍恩是如何解决这个问题的?当然,有一个聪明的小技巧。 向样本坐标添加非常小的 (1/512) 子像素偏移量足以使舍入变得模糊。 实现这一目标需要修改 SPIR-V 和 GLSL 后端的代码,改变目前仅针对 AMD 和 Intel 硬件的操作处理方式,并可以选择强制用于任何其他可能需要它的未来硬件,例如某个水果公司。
这是最终结果:
我们必须提到的是,这并不能解决在AMD和Intel GPU中使用高于默认值的值时出现的非常相似的黑线问题。 这是一个单独的问题,我们建议红队AMD和蓝队intel用户至少单独设置某个游戏的设置,以将其设置为仅默认。 无论如何,游戏并没有从更高的价值中受益,因为它的地形纹理似乎没有利用它。anisotropic filteringThe Legend of Zelda: Breath of the Wild
Linux 也得到了当之无愧的爱,这要归功于 byte[]。
首先,他修复了Wayland上Vulkan交换链的初始化,帮助Linux NVIDIA用户能够启动他们的游戏。 正如你们中的一些人可能知道的那样,NVIDIA 历来对 Wayland 的支持非常固执,大多数 Wayland 合成师自己也非常固执,这无济于事。 Linux 桌面之年,总是在拐角处...
其次,他修复了Flatpak用户试图玩游戏时发生的崩溃问题。 在用于大小估计的数组访问中可能会发生越界,从而导致“讨厌的东西”。 一个小的调整,问题就不复存在了。Bayonetta 3贝姐3
说到越界,Maide发现了一个有趣的案例,由于之前增加了偏移量,在角落采样中发生了。 不考虑此偏移会导致 2D 纹理块传输期间出现另一种越界情况。
修复此特殊情况解决了 Kirby Star Allies星之卡比 新星同盟 中的景深渲染问题。Kirby Star Allies
仍然在继续,还有更多的工作要做,Blinkhawk并没有停止。 为了轻松,他决定重构 Accelerate DMA 的很大一部分,改为通过纹理缓存进行纹理下载。 结果是恢复了性能,并在旧的Y.F.C 1.75更改之前。 将 Y.F.C 1.90 的收益相加,您将成为低端系统的赢家!Pokémon Sword & Shield宝可梦剑·盾 Hyrule Warriors: Age of Calamity塞尔达无双:灾厄启示录
我们还有更多 Blinkhawk 实施的更改,但他们没有及时赶上进度报告的截止日期,因此我们将在下个月提及它们。
常规更改和设置术语表
模组社区要求我们允许更大的纹理模组。旧的 6GB 限制是不够的,因此 byte[] 将其扩展为支持自定义的 8GB 排列,将几乎所有限制都提供给模拟程序。
然而,这产生了不可预见的后果。
我们发现用户喜欢在不知道自己做什么的情况下启用设置。 令人震惊,对吧?
具有比普通开发控制台高得多的可用内存量会导致问题。例如,在收到几份关于神奇宝贝在玩游戏几分钟后未能重生的报告后,我们将更改范围缩小到启用了此设置的用户。Pokémon Scarlet & Violet
但是,此选项仅适用于非常大的纹理模组,除非您使用此类模组,否则不应启用。 不幸的是,打开它时它在柚子设置的第一页上,所以这是一个非常明显的设置。 此外,我们发现一些YouTube教程错误地暗示它可以提高性能和稳定性,用户也遵循了这一点。 这将导致浪费 4GB 的额外 RAM 没有任何好处,并可能导致游戏出现问题。
为了防止这种情况,我们建议阅读我们的新设置词汇表,该词汇表与我们的推荐设置页面一起,应该可以帮助用户了解每个设置的作用以及建议更改的内容。
此外,为了解决不查看我们官方频道的用户的问题,byte[] 将设置移动到选项卡底部,并重命名,确保没有以前的配置文件在没有用户干预的情况下再次启用它。 如果您确实需要扩展内存布局,请确保再次手动启用它。 或者不要,我们不会评判你...太多了。System
用户报告说这不可玩。 Vonchenplus调查了原因,并在我们的音频仿真中找到了原因。 显然,游戏在 Switch 上实现其音频代码方面做得不是很好,并且无法初始化新的音频输出会话,这应该返回错误。 因此,正确返回此错误足以使游戏正常工作。IGS Classic Arcade Collection
我们的 LDN 用户可用的选项之一是能够创建私人房间,为主机提供多种选项来根据需要配置其服务器。
Twitchax 知道对于某些服务器主机,例如 ,需要自定义绑定地址。 他们实现了该功能,现在用户可以将参数传递给房间的配置。 谢谢!fly.io--bind-address
Morph 继续致力于提高 CPU 时序精度,修复了原始 CPU 频率和 或 CNTFRQ 之间的混淆。 两者之间的区别在于 CNTFRQ 报告系统时钟的频率,而不是 CPU 频率。 在解决这个问题的同时,他还将测量计时信息所需的时间减少了约60%。Counter-timer Frequency
这对用户意味着什么? 甜蜜的 1-7% 性能提升。
输入更改
也称为german77的部分。
您与游戏的交互方式可能比图形或音频更重要。毕竟,这是它与CG动画电影的区别。 按照现在的传统,我们亲爱的海妖一直致力于进一步改进柚子的输入模拟。
编写模拟器的很大一部分工作涉及逆向工程,因此他一直致力于使NFC服务与Switch内部的功能相匹配 - 在这种情况下,实现所有剩余的缺失接口,将它们与真正的控制台处于同一水平。
下一个变化是来自TAS工作的简单启示。 如果您实现虚拟控制器,它将不需要范围和死区设置,因为它几乎是完美的。
但并非所有工作都是由 german77 完成的,v1993 抓住了一个令人讨厌的小错误。 鼠标移动的运动仿真由 3D 矢量 (x, y, z) 处理。是的,惊喜数学课,处理它。 无论如何,柚子是这样做的:
(x, y, z) = (x, y, z) + (1, 2, z)
这导致:
(x + 1, y + 2, 2z)
z 分量被错误地加倍了!
解决方案是改为执行以下操作:
(x, y, z) = (x, y, z) + (1, 2, 0)
这给了我们:
(x + 1, y + 2, z)
现在世界一切都好了。 对于那些喜欢使用键盘和鼠标获得 FPS 体验的人来说,这应该会提高鼠标运动的质量。 或者只是喜欢折磨自己。
硬件部分
用户在运行使用 Vulkan 的现代模拟器时面临的一个反复出现的问题是,如果程序崩溃,无法获得有用的反馈。 Vulkan非常挑剔。 中间的任何错误步骤都将拒绝启动,任何 Vulkan 层程序都可能导致这种情况。从过时的屏幕录像机到mod管理器,性能覆盖,甚至灾难代码主板供应商都称之为RGB软件。 特别令人讨厌的是Epic游戏商城的覆盖层,据报道,它会导致严重的性能问题。
在某种程度上,yuzu可以检测到这些问题并切换到OpenGL来避免它们,但这并不能告诉用户问题出在哪里。 我们最近发现了一个可爱的小程序,RPCS3社区已经使用了一段时间来诊断这些问题,VkDiag。 您可以在RPCS3社区找到其最新版本。
该程序的作用是列出影响 Vulkan 渲染的所有相关组件和层,并警告其中任何一个的潜在问题。
我们已经开始在我们的支持渠道中使用它,并取得了惊人的成功,我们建议自助服务用户将其保存在他们的工具包中。您永远不知道何时忘记更新的 OBS 安装会给您带来问题,或者何时 RGB 软件决定变得流氓。
英伟达,享受自动HDR
对于摇摆HDR显示器的Windows 11用户来说,这里有一些好消息。 前段时间,GitHub 用户 svonolfen 在我们的问题跟踪器中发现了一种有趣的方法,可以让 Auto HDR 与 NVIDIA GPU 配合使用。通过将柚子重命名为“Cemu”并执行其他步骤,自动 HDR 突然起作用。
塞穆确实获得了特权。 这仅适用于 NVIDIA Windows 驱动程序,因为至少目前只有 NVIDIA 控制面板提供了强制 DXGI 交换链的选项——有效地使 Vulkan 程序作为 Direct3D 程序呈现。 这有几个好处:自动HDR工作,大大改善动态范围,无边界优化应用于柚子,改善输入延迟和帧同步,并解决了G-Sync/Freesync问题。 它有一个值得一提的缺点,它可以比常规的 Vulkan 演示慢 5%。
虽然这种有趣的重命名效果很好,但我们也从 Windows 预览体验成员用户那里听说,Xbox 游戏栏应用程序的未来版本将允许柚子在不进行任何重命名的情况下使用自动 HDR。 这很可能需要更新的 NVIDIA 驱动程序才能工作。
如果您拥有兼容 HDR 的显示器并想要比较结果,这里有一个默认 Windows 11 照片查看器可以打开的 .jxr HDR 捕获,以及一个可比.png本机 SDR 捕获。 您当然需要在显示器和 Windows 11 设置中启用 HDR 输出。 注意天空和灯的区别。 色调映射并不完美,但无论如何,我们永远不会让 Switch 游戏输出原生 HDR。
您的作者没有调光区的简单HDR400显示器足以注意到其好处,因此这是您说服父母/妻子购买您已经关注了数周的OLED显示器的借口。哈哈,塞尔达,在 HDR 中。
可以在柚子中实现 Vulkan 扩展,以获得对任何 GPU 的全球支持。 你可以肯定,我会唠叨我们的 GPU 开发人员,直到它被添加。
AMD 兑现承诺
上个月,我们提到AMD引入了一种回归,导致某些游戏的图形损坏和崩溃。
我们很高兴地宣布,自驱动程序版本 23.4.2 及更高版本以来,Vega 及更高版本的问题已得到解决,允许 Radeon Windows 用户充分受益于最新驱动程序支持的新 Vulkan 扩展,从而将着色器构建卡顿降至最低。 正如AMD所承诺的那样,除了...
北极星(RX 400/500系列)卡在某些极少数情况下可能仍然不稳定,但修复程序应该不会花太长时间出现。 与此同时,北极星用户应该坚持使用驱动程序23.3.1,除非他们想面对这样的结果:
在另一个主题上,我们向AMD报告了我们怀疑是Pentelas地区顶崩溃的原因,这也影响了其新扩展中的初始区域。Xenoblade Chronicles 3 Future Redeemed异度神剑3:崭新的未来
由于这个问题不分青红皂白地影响了官方的AMD和Mesa驱动程序,我们怀疑这是一个硬件限制 - 可能是缺乏对D24深度格式的支持,许多游戏都使用D<>深度格式(包括Xenoblade游戏),以及NVIDIA和英特尔的支持。
英特尔。。。
正如我们之前报道的那样,Intel Windows Vulkan驱动程序不稳定。 SPIR-V 编译器(处理 Vulkan 管道着色器的部分)在处理计算着色器和某些特定着色器指令时可能会崩溃。
我们发现了一种情况,即在开关块中编译具有 5 个以上案例的着色器时,驱动程序崩溃,或者相同条件的 if-else 块超过 5 个。 也许优化出错了?
六个月前,我们向英特尔报告了这次崩溃,他们本月的回复是:
感谢您报告此问题。我们的首要任务是定位最受欢迎的游戏和应用,集中精力为最广泛的用户群提供高质量、稳定的体验。我们将在 2023 年及以后继续提高软件性能和兼容性。
因此,即使在提供测试用例后等待六个月,原因解释,甚至在指出驱动程序中发生崩溃的位置之后,英特尔也无法找到时间来解决问题。 这是某种扭曲的笑话。 相比之下,当您与 NVIDIA 合作时,他们会雇用您。
我们别无选择,只能尽可能减轻崩溃。 为此,Morph 完全禁用了英特尔 Windows 驱动程序的计算着色器,确保像这样的游戏仍然可以启动 - 即使它们因此会出现游戏问题。The Legend of Zelda: Breath of the Wild塞尔达传说:旷野之息
这不足以解决所有崩溃问题。一些游戏,如仍然会使着色器编译器崩溃。我们尚未诊断出这一点,但相信它可能与我们已经报告的同一问题密切相关。Xenoblade Chronicles 3异度之刃3
禁用计算着色器会对某些游戏产生这种可爱的副作用,例如:Super Smash Bros. Ultimate
对于那些喜欢在英特尔Windows驱动程序上正确渲染,可以容忍随机崩溃,并且不想只使用实际工作的Linux Mesa驱动程序的人来说,Mainline 1414是目前支持计算着色器的最后一个版本。 我们正在努力添加一个可以为每个游戏配置的切换开关。
但是等等,还有更多,乐趣并不止于此。 Reddit用户发现,在Windows 12上运行的英特尔第13代和第11代CPU的帧时间明显比在Windows 10上运行的相同硬件差。
因此,如果您在玩游戏时发现卡顿,解决方案可能非常简单:执行干净的 Windows 10 安装!
未来项目
因此,部分发布得到了回报。 Blinkhawk正在研究它的最后一部分,其中包括GPU精度设置的重组,以及其他一些惊喜。 敬请关注。Project Y.F.C
您很快就会听到有关新闻的消息!Project Lime
这就是所有人!感谢您阅读到最后,没有什么能让我们更快乐。
本月总结:
1:设置-图形-高级-精度-Normal 可以有效提高性能
大多数过去需要高 GPU 精度才能正确渲染的游戏现在可以在正常上运行了。
并将每个人的性能提高了 87%(平均 50%)
2.Enable asynchronous presentation (Vulkan only)选项可以提高低端硬件的性能,但并不适用于所有游戏及所有人,个人自行测试。
3.AMD和inetl的显卡更需要有效切及时的更新最新驱动,且对每个游戏进行单独的设置,因为它并不适用常规全局设置。
4.扩展6G存储变更成8G,大多数人都不需要勾选此项,此项也不能带来性能提升,它只是为了更大的mod存在,不要被人误导。
5.有些音频选项会导致游戏不可玩或者卡顿现象,此时应改变声音选项中的音频输出auto为sdl2,如暗黑破坏神3
6.键鼠得到了进一步改进,但是还是建议使用手柄进行游戏,除非你喜欢折磨自己。
7.RPCS3社区有一个软件VkDiag,它可以测试Vulkan存在的潜在问题。
8.AMD驱动23.4.2及之后版本,修复了很多问题,建议更新,但RX400/500系列仍然建议使用23.3.1驱动。(不要再买过时的垃圾了)
9.intel显卡及驱动团队没有时间和精力来解决问题,因为它在用尽全力来割韭菜,请不要当韭菜。
10.主线1414是目前最后一个支持计算着色器的版本。
11.在Windows 12上运行的英特尔第13代和第11代CPU的帧时间明显比在Windows 10上运行的相同硬件差,因此要解决很多未知问题,那么你需要一个干净的windows10系统。