switch模拟器吧 关注:11,518贴子:7,489
  • 5回复贴,共1

Yuzu进展报告2021年9月【edge浏览器机翻】

只看楼主收藏回复

嗨, 尤兹!欢迎收听我们每月进度报告的最新条目。我们有更多的 GPU 渲染修复, TAS 支持, 8 玩家混乱, 输入和 UI 变化, 一些初步工作, 为未来的大变化, 等等!
然而,更多的 AMD 特定更改和其他图形修复
某些 AMD 和英特尔 GPUs 无法使用 Vulkan API 的 yuzu 解锁 FPS 功能,因为演示模式缺乏驱动程序支持。然而,他们支持,另一种模式,允许Vulkan呈现在一个更高的帧速率比屏幕刷新率,所以史诗男孩做了必要的改变,以解锁这些GPU上的FPS。由于此演示模式的性质,这可能会导致屏幕上的可见撕裂,因此请记住,如果您尝试这样做。VK_PRESENT_MODE_MAILBOX_KHRVK_PRESENT_MODE_IMMEDIATE_KHR

这是只有 Rx 550 (地铁恐惧)
使用英特尔 Mesa 驱动程序在 Linux 中启动标题时,由于设备丢失错误,导致碰撞。问题在于帧的渲染和随后的演示之间的同步性。
以前,Yuzu 会发布 Vulkan 命令,然后等待帧呈现,然后再继续处理过程。虽然这对其他驱动程序和供应商来说很好,但 ANV(英特尔的 Vulkan 驱动程序)预计在此命令之前已经呈现了帧,从而导致此错误。Present
史诗男孩修复了同步行为,使玉豆现在等待,直到框架完全呈现和准备之前提出它。
随着 AMD 的 Windows 驱动程序版本 21.9.1 的发布,以及其等效的 AMDVLK 和 AMDGPU-PRO Vulkan Linux 对应产品,用户开始注意到大多数游戏在启动时出现崩溃。我们再次指责 AMD 打破了另一个扩展, 因为这不会是第一次。我们甚至挑出罪魁祸首, 提供了一个替代路径, 降低所有运行非 RADV 驱动程序的 AMD GPUs 的性能。Int8Float16
我们错了
原来,这是我们的错。史诗男孩发现,在初始化Vulkan的过程中,模拟器分配了国际8Float16的值后,其内存被释放。令人惊讶的是,这才开始影响官方AMD驱动器最近,在他们的定期Vulkan版本更新后。所以这次我们不得不放下草叉。此 PR 推出后,性能恢复正常。
AMD Windows 用户还熟悉完全变白或重影的某些阶段,类似于应用程序在 Windows XP 时代冻结时。那是好日子Super Smash Bros. Ultimate
嗯, 无论如何, AMD Radeon GPU 缺乏对固定点 24 位深度纹理的支持, 或 D24 简而言之, 一个相对常见的纹理格式的支持。为了绕过此硬件限制,Yuzu 改用 D32 纹理,这可能会在转换过程中导致精度问题。通过调整玉豆 D24 仿制的深度偏差和多边形偏移,闪烁鹰可以永远解决问题。

公平竞赛, 请 (超级粉碎兄弟终极)
还有一个AMD拉登的具体问题,是可见的,当播放。地形纹理是丰富多彩和损坏的,就像当 PC 玩家拨号 RGB 到 11。The Legend of Zelda: Breath of the Wild
这个问题影响了我们的常规嫌疑人,GCN4设备(Polaris,RX 400/500系列)和更老的,运行在Windows和Linux专有的Vulkan驱动程序。GCN5 (Vega)、RDNA1 和 RDNA2 设备未受影响。问题在于我们如何猜测游戏正在处理纹理。
一些信息首先:有几个方法来处理纹理,在这个特殊的例子,我们需要专注于两个,和。Cube MapsTexture Arrays
立方体地图是一个立方体,其六张面充满了不同的纹理。用于获取数据的坐标与常规 X 值和 Y 值不同,是源自中心并指向立方体表面的单个转角。

另一方面,纹理阵列就像名称所暗示的,一个接一个的纹理有序阵列,X 和 Y 用于在纹理内定位信息,Z 轴用于确定该阵列的纹理在使用中。

TL;DR,一个是球体,另一个是列表。
Vulkan 允许在以后需要时将纹理标记为可转换为立方体地图,但采样(读取)由游戏的着色器说明指定的纹理类型决定。然后,此类型传递到图形 API。我们这样做,游戏决定保持其纹理作为阵列,这是它自己的决定。但是,AMD 驱动程序决定将纹理采样为立方体地图,而忽略之前确定的纹理视图。
虽然这本身应该不是问题,因为坐标仍然可以从错误的纹理类型中拉出,但驱动程序最终可能会读错 texel。这可能导致快乐的彩虹地面,或黑暗和邪恶的地形。The Legend of Zelda: Breath of the WildHyrule Warriors: Age of Calamity
通过禁用 GCN4 上的 Cube 兼容性和运行官方 AMD 专有驱动程序的旧设备,史诗男孩将适当的意义回归到被破坏的 Hyrule 土地上。

我不喜欢 Rgb, 谢谢 (塞尔达传奇: 狂野的气息)

但没那么黑!(海鲁勇士:灾难时代)
说到 RGB,正如早在二月份讨论的那样,Yuzu 必须使用计算阴影器在 OpenGL 中转换大多数 BGR 纹理格式,以避免颜色不匹配。虽然这在大多数当前的 GPU 上都可能正常工作,但性能成本会影响较旧和较慢的产品。
开普勒系列 Nvidia GPU(通常是 GTX 600/700 系列,其中有几个也改名为 800 和 900 系列)的用户可能会经历这些性能处罚,同时也会产生渲染腐败。史诗男孩认为,我们只能使用(或PBO简称PBO)来代替所有受影响的纹理格式,而不是使用计算阴影器来挥动纹理。这有很多好处:它解决了开普勒 BGR 问题,提高了来自任何 GPU 供应商的弱设备的性能,并且也是(开发中的分辨率扩展器)的必修方法。Pixel Buffer ObjectsA.R.T.

及时的帽子
关于分辨率刻度器所需的更改主题,闪烁鹰对查询和索引采样器实施了修复。其结果是在英特尔和 AMD GPU 上玩时,无论是 Windows 还是 Linux 上的崩溃次数都更少。此 PR 也有助于提高稳定性。Luigi’s Mansion 3A.R.T.
另一个影响的问题是它在武尔坎使用泰塞尔德阴影。Vulkan 规范要求输入组装拓扑处于销售阶段。并非所有的游戏都遵循这一点,所以手动强制它解决一些司机经历的崩溃,更具体地说,你可能已经猜到了,AMD的专有。这一切都要归功于我们的鱼史诗男孩。Luigi’s Mansion 3PATCH_LIST
epicboy还修复了一些小错误与模具,一种数据缓冲,旨在帮助限制渲染区域的大小。因此,正确渲染其模型。WarioWare: Get It Together!

哇!(瓦里奥沃: 一起!
vonchenplus增加了对传统 GLSL 的支持,并将属性添加到我们的 Vulkan 后端,以便使用它们的任何游戏在使用此 API 时都能正确渲染。gl_Colorgl_TexCoord
这两个属性都是具有特定定义和用途的一组属性的一部分。但是,在 OpenGL 的新版本中,它们被弃用,转而支持程序员可以根据自己的需要自由定义的"通用"属性。
虽然 OpenGL 仍能够运行用于此传统功能的阴影,以便向后兼容,但到 Vulkan 创建时,它们已经被视为过时,这意味着此 API 缺乏后退。
vonchenplus 所做的是使用 Vulkan 中的通用属性来模拟这些功能,以便它们的行为与传统的 GLSL 属性完全一致。
之后,vonchenplus 更正了用于混合纹理的一个内纳姆中值的定义。
这两个变化都会影响,修复此游戏中存在的图形错误。DRAGON QUEST III: The Seeds of Salvation

龙任务三:救恩的种子
工具辅助速度运行
怪物德鲁伊德 1增加了塔斯支持yuzu!这意味着可以在游戏中记录和重播精确输入命令。用于存储它们的格式是TAS-nx实现的格式,我们在此处有关于如何启用和使用此功能的指南。
您可以通过访问 TAS 配置Tools > Configure TAS…


IP属地:湖北1楼2021-10-12 10:30回复
    TAS 配置窗口
    其他输入更改
    让我们从德国 77的漂亮添加开始, 这将使玩家快乐, Parsec 用户尤其如此。现在有一个选项,使8个玩家支持XInput设备,以禁用网络苹果特为代价。与朋友进行史诗般的战斗需要付出很小的代价。Super Smash Bros. Ultimate
    你可以在。Emulation > Configure… > Controls > Advanced > Enable XInput 8 player support (disables web applet)

    玉豆控制配置窗口
    v1993后来隐藏了非 Windows OSes 的选项,因为此限制不适用于 Windows SDL 构建之外。
    Joy- Cons 的 Linux 内核驱动程序使用与我们在 Windows 上使用的命名约定不同的命名约定。正确遵循此约定,使双欢乐-康输入显示在设备列表中。德国77想到企鹅。
    UI 更改
    随着哈迪斯项目的发布,Yuzu 开始在 Vulkan 和 OpenGL 中使用图形管道的完整而不是单一阶段。这意味着我们的 UI 的某些部分已经过时,因此您的退化编写器决定简单地将上下文菜单条目从 Shader 缓存更新到管道缓存。Pipeline cache
    紧随其后,Moonlacer帮助将使用磁盘阴影阴影器缓存替换为"使用磁盘管道缓存"。谢谢!
    后来,Moonlacer 从音频设置中取出切换,因为它不再有任何用途。一般来说,可用选项越少越好。Enable audio stretching
    莫夫决定消除一个2岁的功能,盒猫。
    BCAT 是任天堂交换机用于向游戏添加内容而无需不断更新的网络服务。我们的旧 BCAT 实施只添加了一些"礼物",我们的开发人员放置在当时可玩的游戏中。它无法支持实际使用案例,如游戏更新定期推送。Animal Crossing: New Horizons
    虽然该计划将在未来为此增加支持,但文件系统仿真的重大更改需要首先进行。
    behunin 对我们的调试配置窗口进行了非常需要的清理。查看以下结果:

    之前和之后,调试配置设置
    一般错误修复
    史诗男孩注意到一个内存泄漏, 将逐渐增长后, 停止和重新启动模拟, 这是由 yuzu 没有清理造成的。通过在停止模拟时破坏此过程,资源现在得到适当释放,从而修复泄漏。main_process
    此外,史诗男孩还减轻了当模拟停止时发生的崩溃,使用 std:jthread 为工人线程。
    std::jthread是最近推出的C++20的线程类的新实现,它减轻了他们的管理和使用,因为它们简化了一些多阅读固有的同步挑战。
    随着这种变化,关闭时工作线之间因种族条件而导致的碰撞次数本应减少,但它也引入了一个新的错误,当模拟停止时,会导致 yuzu 挂起。
    这个问题是由物体被摧毁的顺序引起的,史诗男孩固定在后续的公关中。
    bunnei还向cpu_manager介绍了 std:jthreads,赞成使用这个更高效的课程来实现 yuzu 的主线程。
    他还进行了更改,以便 nvflinger服务和队列中使用的 KEvents 由这些服务拥有,而不是由模拟游戏的过程拥有,这使得实现更加准确。
    我们一直试图专注于改善我们的自制支持,因为这不仅仅是一个强大的工具,只有开发人员使用。例如,Modders 拥有 Switch 社区所喜欢的非常强大的自制应用程序。一个重要的例子是终极模式经理,简而言之,它拒绝在玉豆工作目前。
    为了解决这个问题,ogniK允许在玉豆的自制运行也创建子方向,而不仅仅是父目录,导致UMM管理至少开始。这是一个临时的解决方案,直到我们急需的文件系统重写完成。此外,Morph推动了GetFileTimeSampRaw功能的部分实现,删除了多个警告。
    这还不足以允许完全的 UMM 兼容性,但我们正在达到这个功能。
    进入生活质量的变化,一些游戏弹出一个确认窗口时,试图停止模拟。

    像这样,结束模拟确认窗口
    这种多余的问题是由游戏本身产生的,虽然我们总是有一个切换跳过它,它不能正常工作。史诗男孩来救援,修复切换为好, 并节省我们宝贵的秒退出我们的游戏。
    如果你想改变这种行为,选择是在。Emulation > Configure… > General > Confirm exit while emulation is running
    v1993将所有 QtWebEngine 数据移到了更有条理的集中式文件夹中,提高了一致性,减少了用户存储中的杂乱。默认情况下,信息现在被保存在玉豆的目录中,而不是单独的文件夹。%localappdata%%appdata%\yuzu\qtwebengine
    吐司不受限制地进行了他的第一个存根手术与音频输入服务开始,注册缓冲事件,和附录音频输入自动。这样,现在可以通过局域网播放,而无需使用自动存根。快乐飞溅!Splatoon 2
    german77存根设置触摸屏幕配置, 并实施了获取指定储存渠道,使可玩。Dr Kawashima's Brain Training for Nintendo Switch

    川岛博士任天堂开关的大脑训练
    他还把比赛存根, 使可玩。这个游戏经历了一些崩溃,所以有更多的工作要做。Cruis'n Blast

    克鲁伊斯恩爆炸
    ognik实现了"确保托克尼德卡切亚西姆"功能,使游戏中运行,尽管带有一些图形错误,我们必须在未来解决。Death Coming

    死亡来了
    莫夫一直在努力实施工作所需的内容。最初,阅读插座服务被实施,但这一任务也实施更复杂的服务,如和。 是特别棘手的,因为没有本地支持它在Windows上,所以需要大量的工作来正确地模仿它在最流行的操作系统。Diablo II: ResurrectedSelectEventFDEventFD
    作为一个临时的替代方案,里德只是存根,让游戏启动。

    迪亚布洛二世:复活
    未来项目
    对于任何想知道的人来说,以下图像不言而喻。Project A.R.T.

    异种刀片纪事确定版
    关于正在进行的工程,有更多的渲染修复正在进行中,我们已经开始计划完成后要关注什么。A.R.T.
    都是人!谢谢你的注意,下个月见!


    IP属地:湖北2楼2021-10-12 10:34
    收起回复
      大佬,下载好之后啥都正常运行了,但是帧率有点低,塞尔达经常个位数帧率,电脑是暗影精灵5,i5-9300 1650 4g 16g内存,是设置问题还是硬件配置跟不上呀


      来自Android客户端3楼2021-10-30 23:20
      收起回复