Switch模拟器YUZU进度报告2023-12月

Switch模拟器YUZU进度报告2023-12月

首页模拟经营asylum77中文联机版更新时间:2024-04-19

Switch模拟器Yuzu进度报告2023-12月

新年快乐,yuz-ers!我们告别了 2023 年,发生了一些重大变化,从驱动程序修复到大量内存节省,以及介于两者之间的相当多的变化!我们开始吧。

图形更改和驱动程序修复Vulkan

驱动是个奇幻的生物。他们喜欢在遵循 Vulkan 规范的同时表现出重大的行为变化,这个问题是 SPIR-V 规范。

NVIDIA驱动程序就是这种情况。自 9 月份发布 540 分支以来,用户报告说在游戏中构建特定着色器时突然崩溃,最常见的例子是 Bayonetta 3 .然而,这个问题在意想不到的地方扩展到了许多其他游戏。

在调查了这个问题之后,你的作者和 byte[] 得出的结论是,问题不在于驱动程序,而在于 yuzu 的着色器编译器中对纹理渐变操作的错误编译。

讨厌的着色器,我们为什么不让它们消失呢?好吧,除非你喜欢你的游戏显示除了停电之外的任何东西,那么你还是需要它们,所有的东西。

在某些情况下,柚子会错误地(并且无意中)将梯度导数作为整数 (U32) 获取,而它们打算按位重新解释为浮点数 (F32)。虽然较旧的驱动程序在使用错误的类型时会隐式重新解释,但 540 驱动程序系列将引发正确的着色器验证错误,这是此类 bug 的正确行为。

这意味着,如果使用任何 NVIDIA GPU 的用户在更新到 540 系列驱动程序后使用受影响的着色器加载管道缓存,或者达到构建新的受影响着色器的时刻,游戏将崩溃。同时,如果用户将驱动程序还原为较旧的 536/537 系列驱动程序,则相同的缓存可以正常工作。

罪魁祸首找到了(一直都是我们),这句话决定了:纹理渐变操作现在将在衍生物上强制执行 F32 类型,以符合 SPIR-V 规范。现在游戏不必崩溃,用户可以让他们的驱动程序保持最新状态,而您的作者知道这个问题已经解决,晚上可以安然入睡。任何使用 NVIDIA GPU 的人,无论使用何种操作系统,都可以随时更新到适用于您平台的最新版本。

猎天使魔女 (Bayonetta 3)

Android 用户有查找错误的诀窍,部分原因是我们用于小屏幕的不同默认设置集。例如,默认情况下选择手持模式以提高性能(Mali 用户非常欣赏这一点)并节省一点 RAM,但是,我们还没有进入 Android 部分!

Fight'N Rage 战斗狂怒,一个梦幻般的打斗游戏,在手持模式下它的屏幕被切成两半,这是大多数桌面模式用户没有看到的,因为它在停靠模式下运行良好。问题在于——这是精灵游戏的经典之作——如何处理旋转和窗口原点调整。视口转换和窗口原点模式在 GPU 中是分开处理的,因此拆分这两个作业是 doctor byte[] 的命令。现在随意粉碎那个攻击按钮。

相当大的不同(Fight'N Rage)

猜猜谁回来了。一款在许多方面都很特别的游戏,一个模拟器本身,Switch 上为数不多的原生 Vulkan 游戏之一,一款在数字发行时代甚至绝版的游戏,以及 byte[] 开始为柚子做出贡献的原因。

没错,它又回到了一份报告中, Super Mario 3D All-Stars 这次解决了它剩下的一个有趣的怪癖:其介绍视频在非NVIDIA和非Mesa驱动程序上的表现非常缓慢。

这种古怪是游戏的结果,导致柚子在每一帧上不断重新创建其交换链。交换链是图形 API 和 GPU 用来绘制到屏幕的一组帧缓冲图像。

该游戏在启动期间使用其帧缓冲图像之一作为 sRGB,这导致 yuzu 将其检测为 sRGB。另一个帧缓冲图像仅用作线性图像。由于 yuzu 试图尊重输出图像的色彩空间,这个问题导致 yuzu 错误地认为它需要在每一帧上重新创建交换链。这种恒定的、每帧交换链的娱乐在 NVIDIA 和 Mesa 驱动程序上并不昂贵,但其他任何东西(英特尔、AMD、Android 驱动程序)都可以花费多达 30 毫秒的时间来处理这种切换。在应该以 60 渲染的游戏中,这大约损失了 30 FPS!

我们如何避免这种情况?好吧,Vulkan 总是将当前呈现在屏幕上的任何帧缓冲区解释为 sRGB,因此用非 sRGB 帧替换帧只会增加不必要的额外工作并惹恼几个驱动程序。更改逻辑以忽略帧缓冲图像中的 sRGB 可为这些驱动程序的用户提供流畅的帧时间。

马里奥用这么多星星做什么?(超级马里奥 3D 全明星)

与此相关的是,让我们来谈谈演示限制以及它们如何影响异步演示,异步演示将屏幕演示移动到不同的 CPU 线程。

由于多种因素,yuzu 的 Vulkan 渲染器一次最多只能处理 6 帧。虽然这在桌面上通常不是问题,特别是对于未启用异步演示(在 Emulation > Configure… > Graphics > Advanced 中可用)的用户,但 Android 是一个需要始终使用异步演示的平台,它向我们展示了无论操作系统或平台如何,在打开设置的情况下性能足够低,都可能导致交换链图像队列增长超过 6 帧的限制。因此,导致驱动程序崩溃并丢失您的进度。哎哟。

立即启用它

Android 用户很早就找到了解决这个问题的方法:将游戏速度限制降低到 100% 以下,这会减慢演示速度,从而通常将柚子保持在 6 帧限制以下。

虽然这在技术上是可行的,但这个想法是尽可能以至少 100% 的速度运行游戏,对吧?

在确定这个问题后,针对此问题找到的简单解决方案是强制演示过程在达到限制之前等待,从而大大提高了低端硬件(包括 Android 设备)的稳定性,同时还改善了输入延迟!现在,异步演示可以安全使用,缩短帧时间,减少输入延迟,这对每个人来说都是一个坚实的胜利。

关于演示已经够多了,现在让我们来谈谈剪辑距离。

大多数 GPU 允许着色器为顶点数据设置自定义剪裁平面,这允许 GPU 剪切视口不可见的几何体,而不会生成额外的三角形或渲染成本。在着色器中声明的全局变量和浮点数组的成员 gl_ClipDistance 表示到每个顶点上裁剪平面的距离。

许多游戏都使用这些值,包括 Red Dead Redemption 、 、 DEAD OR ALIVE Xtreme 3 Scarlet 、 Hyrule Warriors: Definitive Edition Fire Emblem Warriors: Three Hopes 和 Portal 。

在大多数桌面驱动程序上,所有全局变量的默认值将隐式为零。然而,SPIR-V表示,这些值实际上是未定义的。这个假设打破了 radv Mesa 驱动程序 Portal 的渲染 - 特别是针对剪辑距离。

Byte[] 的第一个修复尝试仅声明一个与实际需要的大切削距离数组一样大,这将防止任何未定义的值在数组中保留。虽然某些着色器(如 Portal 中使用的着色器)直接写入剪辑距离数组值,但其他着色器(如 中 Red Dead Redemption )使用循环变量来访问数组。因此,第一次修复尝试导致在这些游戏中声明一个零剪辑距离数组,这在 SPIR-V 中是非法的。

死或生:沙滩排球3 绯红(DEAD OR ALIVE Xtreme 3 Scarlet)

在重新审视该问题后,byte[] 实现了一个更强大的解决方案:当使用剪辑距离时,请始终声明一个数组,其中包含主机驱动程序支持的剪辑距离,并使用默认值来确保数组成员都设置为零,避免任何未定义的行为。除 Mali 外,所有驱动程序都支持 8 个剪辑距离;Mali 支持零,因此必须为该驱动程序制作一个特殊情况。马里时刻#1。

这是一场胜利

GPU 通常处理各种格式的纹理数据。ASTC 和 BCn 等压缩纹理使用的参数之一是 pitch ,即一行压缩块的大小。这最终会被模拟器除以纹理的块大小,从而给出每行的块数。这对于线性 1x1 块大小的未压缩纹理完美无缺,但破坏了具有较大块大小的压缩纹理。Vulkan 希望间距是每行纹素的数量(纹理贴图的最小单位,想想像素,但纹理除外),加上一些填充,但 yuzu 计算错误了该值。

新的锦标赛开始了(拳皇XIII全球比赛)

修复缓冲区行长度,并调整 BCn 解码器 Mali 所需的软件(Mali 时刻 #2),这就是 GPUCode 修复 Eatsa Pizza 迷你游戏的渲染 THE KING OF FIGHTERS XIII GLOBAL MATCH 和 Mario Party Superstars .

你的作家已经足够大了,还记得在任天堂 64(马里奥派对超级巨星)上玩过这个

Vulkan 部分到此结束,所以剩下的就是跟进:

而且你不能证明克罗诺斯错了

OpenGL

因为 epicboy 不会让旧的 API 休息。

OG 开放 API 的一个剩余问题(许多问题)是 Metroid Prime Remastered 阴影的错误。通过将首次在 Vulkan 中看到的计数器查询准确性引入 OpenGL,这个问题现在得到了解决。

SPAAAAACE(银河战士 Prime 重制版)

OpenGL 用户看到了另一个胜利,即实施了两个修复 Xenoblade Chronicles 3 程序。这对于 Windows 或 Linux 的 AMD 用户尤为重要,因为大多数 AMD GPU 在主线故事的 Pentelas 区域和 DLC、Future Redeemed 中使用 Vulkan 运行游戏时无法避免顶点爆炸。

首先,通过实现 DrawTransformFeedback 宏(相当于 Vulkan 的 DrawIndirectByteCount OpenGL 宏),粒子被固定。

还记得游戏奖的长笛家伙吗?(异度之刃编年史 3)

其次,一个简单的错别字如何造成严重破坏,修复了变形反馈绑定 strides sizes ,阻止了游戏中的草成为某种太空恶魔的可憎之物。

通过这些更改,遭受 Pentelas/DLC 顶点爆炸错误的 AMD 用户可以安全地在 OpenGL 中玩游戏。

但是你知道什么会更有帮助吗?如果 epicboy 还为 AMD 专有的 OpenGL 驱动程序添加了更多优化。这正是他所做的。

随着 2022 年 7 月新 OpenGL 驱动程序的发布,yuzu 代码为红色供应商提供的几个令人讨厌的变通方法可以被删除(现在已经删除),从而提高了性能。

Android 冒险和具有优势的内核

让我们先从重大变化开始,而不是像前几篇文章那样使用项目符号列表。

节省 RAM 可加快游戏启动速度

GNU/Linux 发行版和 Android 受益于 Linux 内核的特性之一,是它的灵活性以及社区和贡献者不断取得的进步。一个这样的例子是 Linux 内核扩展 MADV_REMOVE,它允许释放给定范围的内存页,在指定的内存范围内“打孔”。

由于 byte[] 的工作,模拟器可以利用此扩展来消除启动游戏后立即需要 3GB 可用 RAM 的要求,并显着减少启动时间。对于大多数拥有 16GB 系统 RAM 的用户来说,内存不是问题(除非您有太多的后台进程),但对于使用 8GB 或更低容量运行带有 Linux 内核(桌面 Linux 或 Android)的操作系统的用户,这大大降低了即时内存需求,甚至允许 Celeste 在 4GB 设备上工作......

...一时间。虽然系统现在不需要在游戏启动时提供完整的 3GB,但游戏在运行时仍会慢慢要求该数量。但这可能足以让 8GB 设备,甚至 6GB 设备(我们不正式支持,但用户仍然使用它们)到达下一个保存点。

现在,您可以在 8GB Linux 笔记本电脑或手机上畅玩最复杂的游戏,并享受改进的启动时间!我们相信现在只需要 The Legend of Zelda: Tears of the Kingdom 在 ASTC 兼容设备(Android 设备或 Intel iGPU)上仍然需要 12GB 才能安全播放。

对于 Windows 帮派,对不起:只有坏消息。Windows 内核没有等同于 MADV_REMOVE,因此如果您拥有具有少量 RAM 的低端设备,Linux 是您的不二之选。

不过这并不奇怪。

4K

还记得吗 Paper Mario: The Origami King 纸片马力欧:折纸国王 ,好游戏,漂亮的图形和有趣的幽默。这款游戏手上有一个独特的情况,它的 ARM CPU 代码是非法的。不是“FBI OPEN UP”是非法的,而是“由于堆栈指针对齐处理的差异而无法在当代系统上本地运行”类型的非法。Switch 会清除检查堆栈指针对齐情况并生成异常的硬件位,但实际上所有其他操作系统都会设置它,并且如果不修改内核,就无法将其关闭。

这意味着现代设备无法在启用 NCE 的情况下运行此游戏。直到现在。

通过使用 DynARMic 的 ARM 解析器,byte[] 解析了由于该游戏产生的对齐错误而导致崩溃的指令,并在软件中解释它们。结果呢?添加了 3,858 行代码,以获得在 Android 启动时无法正确呈现的游戏,并且它仍然需要保存文件才能通过介绍......

路易吉肯定勇敢地在黑暗森林中开车(纸片马力欧:折纸国王)

那么,浪费精力了吗?用 byte[]?从不。游戏无法正确呈现,因为模拟器将浮点图像与不匹配的采样器类型绑定在一起。通过强制对着色器缓存中未显式声明为整数的所有像素格式使用浮点数,移动驱动程序现在能够正确渲染马里奥兄弟的所有平淡荣耀,以及至少 71 款其他游戏!

现在是这样,它只花费我们一个着色器失效(纸片马力欧:折纸国王)

前面提到的 NVIDIA 540 驱动程序系列的修复略有似曾相识,对吧?这项工作是额外的一百八十四行代码,总共提供了四千三十八行代码,4K,花在折纸上,仅适用于Android。

其他特定于 Android 的 GPU 更改

Android 构建面临的另一个特殊问题是 ,例如 SUPER MARIO ODYSSEY 以视频弹出教程而闻名的游戏中的视频解码性能缓慢。罪魁祸首是不必要地下载了一些纹理内存,无论如何都会被覆盖。Blinkhawk 对 DMA 代码进行了一些调整,性能现已修复!

(超级马里奥奥德赛)

柚子在首次引入 Android 版本时的一个早期回归影响了 FXAA 抗锯齿过滤器。事实证明,在桌面硬件上修复 FXAA(byte[] 在 6 月份实现)上遇到的色带问题错过了将渲染通道更新为正确的格式。通过正确使用渲染通道的 VK_FORMAT_R16G16B16A16_SFLOAT 格式,GPUCode 解决了这个问题。

从被诅咒的三力到真正的死亡三角

Switch 提供 JIT 服务(不要与 yuzu 的 JIT、Dynarmic 混淆),允许游戏在运行时写入代码内存——由于平台的限制,这通常是不可能的。这目前仅用于官方 Nintendo 64 模拟器和 Super Mario 3D All-Stars Nintendo Switch Online 集合。

正确使用代码内存句柄允许 JIT 服务与 yuzu 的 NCE 后端一起工作,让用户从 Nintendo 64 - Nintendo Switch Online 库运行游戏。感谢 byte[] 再次使模拟器在模拟器中工作。

看,savestates!(超级马里奥 64)

作为 11 月在改善 Mali 稳定性方面进展的延续,由于缺乏对 nullDescriptor 的支持,byte[] 现在添加了不传递空视图的解决方法。

马里时刻#3

nullDescriptor 是在 2020 年为 API 1.1 版添加的 Vulkan 扩展VK_EXT_robustness2。Vulkan 当前版本为 1.3。鉴于该功能在所有兼容 Direct3D 的 GPU 上都具有本机硬件支持,并且在驱动程序中模拟起来很简单,我们不确定为什么尚未实现此功能......

Turnip 驱动程序是 Mesa 开发人员正在进行的一项工作——虽然它们通常性能和渲染非常好,但它们仍在开发中。一个案例证明了这一点,为提高驱动程序兼容性而做出的改变如何导致 Turnip 在响应中倒退。马里时刻#4?不。这是上个月的事了。

这仅在运行 Turnip 驱动程序时特别影响 Adreno 610 系列 GPU。byte[] 对此问题的解决方案是在我们等待 Mesa 解决问题时故意错误地将 Vulkan API 用于 Turnip。现在Adreno 610用户可以再次运行Turnip驱动程序。

特定于 Android 的界面和其他更改

让我们总结一下 Android 的变化——我们还有更多内容要介绍,也会影响桌面和 Android 用户。

首先也是最重要的一点,t895 超越了自己并完成了 Game Properties 的实现。

让你久等了,呵呵

可以通过长按列表中的游戏来访问此新功能,并允许访问以下菜单:

用于检查程序 ID、游戏开发者、运行的游戏版本和游戏 ROM 路径的游戏信息页面。

非常适合诊断更新安装

每个游戏的设置页面,可以选择将设置恢复为全局默认值。

作为一名游戏测试人员和 8GB 用户,您的作者认为这是一个巨大的祝福

同样,对于高通正确执行某些操作或较旧的 Turnip 版本的情况,每个游戏的驱动程序选择器更好。

用于安装、启用和禁用更新、DLC 和模组的附加组件管理器。虽然有计划支持压缩模组,但现在必须在此处解压缩并手动选择它们。

打赌你最喜欢这个

这涵盖了 Android 版本留下的最大缺失组件之一。唯一剩下的设置是用于删除已安装内容的内容管理器和控制器映射 UI。请放心,我们正在研究它们。

t895 继续致力于使 Android 在功能上与桌面版本相当,同时考虑移动平台的特定需求。最近包括的一些变化包括:

独特的 Android 功能之一是他们的双声道音频后端,正如该平台所期望的那样,它非常强大。Byte[] 将其实现到 Yuzu 中,以在更改音频输出(例如切换到无线耳机)或开始屏幕视频捕获时阻止音频中断。

该选项可在 中找到 Settings > Advanced settings > Audio > Output engine 。虽然 Auto 是推荐值(它在 Android 上将始终使用 Oboe),但用户可以利用每个游戏的设置在他们想要的任何游戏中测试双声道与立方声。

最后,对最终用户进行一个小改动,我们认为有人会喜欢。在游戏属性部分的工作中,t895 还必须均衡配置文件 config.ini ,使其在桌面和 Android 版本上都能正常工作。

内存堆分配,或者 Linux 内核有时可能出错

是的,Linux 做了一个哎呀,他们将如何恢复?

Linux 内核有大量的运行时参数。特别是对程序可以使用 mmap 系统调用的次数进行限制。默认的最大值是 65530,这“对任何人来说都应该足够了”,或者模因是这样说的,但实际上情况并非总是如此。

通常,Switch 游戏将查询其可用的内存堆量,保留所有内存,然后在用完内存时从其操作系统级别预留中进行子分配。在基于 Linux 的操作系统上使用主机映射寻址(通常称为 fastmem)时,这已经得到了很好的支持,因为它只需要几次调用即可映射组成堆的物理内存块。

基于虚幻引擎 4 的游戏不会这样做。它们不会立即保留所有可用的内存堆,而是按需保留内核中的小块。如果仅使用软件页表,则没有问题,因为块不会导致对 mmap 的调用。

当 yuzu 使用主机映射寻址时,模拟器会将所有这些映射传播到主机地址空间中。如果不是虚幻引擎 4 可以分配数十万个小堆块,轻松超过内核限制,并使整个程序崩溃,这本身通常不会成为问题。

柚子并不是唯一一个受到这种完全任意限制影响的项目——它已经被投诉了很长时间。

为了解决这个限制,byte[] 在软件页表和主机映射系统之间插入了一个层,不断跟踪程序所做的堆分配,并自动回收一些最近不太使用的映射,这会导致一些卡顿——但这比游戏崩溃要好。收集会将映射数量减少到大多数系统附带的 65530 限制的一半左右。

是的,64k 对每个人来说都不够。

利维坦计划、小程序和输入乐趣

像往常一样,german77 在输入和原生小程序上一直很开心。

列表中的第一个是具有只读权限的 Amiibos 解决方案。如果程序将它们挂载为只读,yuzu 不会访问它们的任何加密数据,并且可以将它们标记为损坏,但事实并非如此。由于只读数据是在出厂时设置的,因此跳过损坏检查允许在类似 The Legend of Zelda: Tears of the Kingdom 的游戏中使用只读挂载。

接下来,发布公告。german77 开始重写 HID(人机接口设备)代码,旨在 Project Leviathan 进一步提高 Yuzu 输入仿真的准确性。到目前为止,只做了初步工作,但一些成果已经投入使用。

完成的第一部分是模拟 ,它允许开发人员在不久的将来开始研究多进程支持,以及其他必要的资源 AppletResource ,如 AppletResourceUserId 或简称为 aruid 。

随后,german77 实现了必要的代码,允许创建多个 HID 共享内存实例,删除了旧的解决方法,并使内核不再负责处理共享内存,这反过来又允许每个 aurid 有一个共享内存实例。

由于这次 HID 重写,另一个开始形成的地方是对象创建,更具体地说, InitializeVibrationDevice 这会导致游戏崩溃 Rocket League 。

但是,本月不仅 german77 在输入方面工作,新来的 HurricanePootis 还为我们带来了一个有趣的 Linux 用户修复程序。Linux 在每个用户级别处理硬件权限。例如,如果出于某种原因管理员需要它,则可以完全阻止用户访问该 video 组,或者 audio 等。

连接的设备通常只能由 root 用户或组访问。虽然这通常不是仅使用设备的问题,但无论用户运行的是 appimage 还是 Flatpak yuzu 构建,它都会阻止对 german77 实现的自定义 Joy-Con 和 Pro Controller 驱动程序的访问。通过添加 udev 规则来授予 hidraw 对设备的访问权限,HurricanePootis 规避了此限制。谢谢!

其他更改多进程前期工作

我们谈到了多进程支持的初步工作。关于此事还有更多内容要介绍。

byte[] 重构了 yuzu 模拟 CPU 内核激活的方式。他向我们保证,编写三千行代码可以简化仿真器使用的 ARM 接口的设计。这还有一个额外的好处,即允许来自多个来宾进程的代码同时运行,这是启动多进程工作的另一个先决条件。

ARM 来宾仿真还获得了对多个内存实例的支持,这些实例现在可以与多个服务器会话共存和交互。每个拉取请求都更近了一步。

核心、内核和文件系统更改

german77 发现一些...意外。。。用户配置文件管理器的行为方式。它生成了大约 13 个实例,这导致了多个与用户数据相关的难以解释的错误,包括模拟器崩溃后配置文件的突然丢失。拍打配置文件管理器并告诉它运行单个实例应该可以缓解大多数随机配置文件丢失问题。

有时,游戏会采用意想不到的文件组织策略。这种现象的最近一集影响了 Batman: Arkham 三部曲:基础游戏附带了一个空的 RomFS。这应该不是问题;拥有 RomFS 从来都不是运行程序的必要条件。 Batman: Arkham Asylum 确实有一个 RomFS,并且启动良好,但 Batman: Arkham City Batman: Arkham Knight 需要安装他们的更新才能玩(他们的基本游戏大小只有 8MB)。该更新包含 RomFS,但由于基础游戏不包含它,因此即使安装了更新,yuzu 也无法找到要加载的 RomFS。

处理这个奇特的案件落入了byte[]的手中,世界上最伟大的侦探现在可以放心地到处取 ? 标志了。

我要复仇!我就是黑夜!(蝙蝠侠:阿卡姆骑士)

另一个文件系统实现 byte[] 给了我们支持该 OpenDirectoryMode 标志,它允许 Portal 2 正确保存和加载。人们不禁要问,为什么这个问题没有早点解决。

我们要去太空吗?(传送门 2)

需要做一些额外的工作才能使这个杰作完全可玩。整个服务需要一些修补,特别是 ro ,或可重定位的对象(允许程序动态加载库),需要重写一点 - 只有一千多行代码。

最后, vi 负责在屏幕上绘图的服务之一,需要区分关闭和破坏图层才能 Portal 2 进入游戏。

有没有那种似曾相识的感觉?(传送门 2)

在 SSL 缓冲区大小配置中出现的一个愚蠢的问题 byte[] 破坏了 SUPER MARIO MAKER 2 的 Open Course World 部分。修复此配置错误可使游戏运行其“主模式”。

byte[] 的另一组发现,又一次战胜了关机崩溃的战斗。这一次,我们解决了核心时序中与时序相关的崩溃问题,以及内核中相当罕见的关机崩溃问题。

让我们关闭这个比预期更长的报告,然后转到硬件部分。列表中的最后一部分是:

UI 更改

german77 在 UI 配置文件中发现了一个 oopsie,导致语言选择从未被保存。如果有人注意到柚子总是选择默认语言,你现在知道原因是什么了。使此值持久化解决了问题。

最后,对 Linux 桌面用户的最后一个小增益,来自新人 ReillyBrogan 的手中。

使用 Wayland 合成器时,程序窗口与其 .desktop 快捷方式文件匹配。 appId window 属性旨在与 .desktop 文件的名称匹配,例如 org.yuzu_emu.yuzu.desktop .默认情况下,Plasma 桌面将此属性设置为二进制文件的名称,在本例中,该名称仅 yuzu 为 ,并且与 的预期值不匹配 org.yuzu_emu.yuzu 。这导致 Plasma 桌面用户(包括 Steam Deck)在没有我们光荣图标的情况下显示柚子。一次手动覆盖后,图标就在那里。谢谢!

硬件部分NVIDIA,可安全更新专有的NVIDIA驱动程序

如前所述,由于 byte[] 实现的修复,可以安全地更新到最新的驱动程序版本。一旦 Ada 卡的 SUPER 更新出来,这将变得更加关键,所以那里的时机是完美的。希望他们最终能提供良好的价值。

NVK 值得期待的驱动

这是怎麽?适用于 Turing 和更高版本的 NVIDIA 硬件的免费开源 Mesa Vulkan 驱动程序?

现在还处于早期阶段,Mesa 刚刚开始为这个新驱动程序提供初步支持,但我们迫不及待地想在它足够成熟后尝试一下。没有什么比有选择权更好的了。

AMD

我们专门在 RDNA1 硬件(RX 5000 系列)上发现了 Pokémon Scarlet & Violet 崩溃。遵循通常的标准程序,在错误报告中提供了自定义测试用例。

Intel… 英特尔。。。

相比之下,英特尔再次让我们失望了。目前还没有关于我们在 10 月份报告的几何着色器崩溃修复的消息。

我们希望这只是假期的延迟。2024 年是 Linux 台式机运行英特尔 Windows 驱动程序的一年。

Qualcomm 高通专有的高通驱动程序

我们最近拿到了骁龙 8 Gen 3 设备(红魔 9),虽然官方的高通驱动程序充其量仍然是平庸的,但我们对新 Adreno 750 GPU 的性能印象深刻。尽管有驱动程序,但它还是设法暴力破解了惊人的帧率数字。它仍然产生了与任何其他 Adreno 卡相同的图形故障,这些故障与各自的官方驱动程序相同。

某些游戏达到了设备屏幕刷新率施加的 120 FPS 限制。简而言之,红魔 9 中的平衡模式比之前红魔 8 中的暗黑破坏神模式更快。

即使是萝卜,在早期的支持下也已经显示出出色的成果。这是 Adreno 740 与 Adreno 750:

i9-14900K 谁?(塞尔达传说:旷野之息)

Turnip 萝卜

暂时搁置 Adreno 750,Turnip 的支持网络继续改进。当前版本增加了对稀有 GPU 变体的支持,例如 Adreno 642L 和 Adreno 644。性能和稳定性也有所提高。

及时了解萝卜的发布;它们通常只会带来改进。

Mali moment 天玑时刻

本月Mali时刻总数: 3.

但这并不全是坏消息,亲爱的Mail受苦者!

代号为“Panthor”的新一代 Mali 硬件将有一个官方支持的 Mesa 驱动程序,即已经存在但几乎被遗弃的 Panfrost/PanVK 驱动程序。这意味着 Mali 时刻可能会在未来的某个时候不复存在,就像 Turnip 为 Adreno 用户提供更好的体验一样。

未来项目

多亏了 Blinkhawk,多进程 GPU SMMU 支持现在几乎已经完成。我们将在下个月更详细地介绍它,但您可以同时查看拉取请求草稿,看看它带来的预期好处。

也许团队的其他成员还有更多的事情要做,是的。但是,让我们把这个惊喜留到以后,这样会更有趣(这绝不意味着任何泄露当前进度图片的尝试都被所有开发人员拒绝了,不,不)。

这就是所有的人!感谢您阅读到最后,我们希望在 2024 年的第一份进度报告中再次见到大家!

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved