yuzu模拟器吧 关注:175,627贴子:735,289

Ryujinx 2022年8月进度报告(机翻)

只看楼主收藏回复

1楼祭


IP属地:上海1楼2022-09-21 17:33回复
    进度报告
    进度报告2022年8月
    又一个月过去了,这意味着你最喜欢的任天堂Switch仿真器,不,是有史以来最喜欢的软件开发的另一个进度报告。让我们告诉你,做这样卑微的人很辛苦。
    抛开那些客套话,你能期待在下面读到什么?我们已经对我们的GPU、CPU、内核和服务模拟进行了常规的滚动改进,进行了大量的代码清理最后新发行的LDN唱片。
    GPU:
    使用来宾OpenGL驱动程序的Switch游戏对于出现在进度报告中并不陌生,本月也不例外。诸如Digimon Cyber Sleuth、River City Girls Zero和Layton's Mystery Journey等游戏会出现小的纹理损坏,通常是以线条或彩色顶点的形式出现在不应该出现的地方。这最终是由于Ryujinx用于将纹理数据刷新到CPU的方法效率相当低,并且容易出现自身的错误。虽然修复刷新机制中的潜在问题对每个人来说都很重要,但修复这些OpenGL标题的解决方案是实现一个新的这些纹理数据传输的快速路径,完全绕过刷新。



    IP属地:上海2楼2022-09-21 17:34
    收起回复


      Vulkan合并后,AMD和Intel GPUs的所有者很快意识到,当选择API时,Mii编辑器小程序有些崩溃。虽然它在OpenGL中运行良好,但试图在Vulkan中打开Mii编辑器要么会导致彻底崩溃,要么会出现图形错误,如一些可视元素根本不会显示:

      这个特殊的问题可以追溯到一个无效的bool常量(1字节)的赋值,然后这个常量被直接赋值给一个整数(4字节)。这导致了某些GPU供应商的SPIR-V解析失败,所以这里的修复方法是删除这些无效的分配。
      (明天继续)


      IP属地:上海3楼2022-09-21 17:35
      收起回复
        惊吓过度警报
        这两个问题都追溯到最终Vulkan rebase期间的一个疏忽,在新添加的采样器池缓存之后,纹理绑定将使用错误的采样器池。这里只需要一行代码就可以通过正确的取样器池作为论据。
        抛开“纹理”这个词,这个月在定义的格式和它们相关的格式表方面做了一些常规的修改。Vulkan中增加了ETC2纹理格式不过,奇怪的是,这次实际上是英伟达不支持它们的使用。AMD和英特尔的所有者应该看到拉斯维加斯党,辐射岛和任何其他使用上述格式变得可玩。
        这整个格式表也被重构给格式起一个有意义的名字,而不是使用所谓的“幻数”。编程中的幻数是一个原始使用的值,没有关于

        数字梅森!
        最佳实践是给这些神奇的数字分配一个常数,以便将来贡献者能够理解其含义。这并不总是容易的,尤其是在你可能不知道的逆向工程和仿真中精确地直到很久以后。对我们来说,谢天谢地,我们对开关的了解已经过了好几年才成熟;NVIDIA最近发布了一款文件的装载也是!即使对于许多阅读这些报告的非编码人员来说,可读性的差别也是不分昼夜的:

        在...之后
        一些颜色格式(如RGBX)没有alpha(透明度),因此,当应用期望alpha的某些操作时,这些操作在理想情况下不应该触及没有所需分量的颜色格式。不幸的是,这并不容易做到,但我们可以做到表现得好像阿尔法总是一个静态的1(完全不透明)。这解决了LA MULANA中的一个问题,即地面被渲染为黑色矩形,而不是…嗯,不是黑色矩形。


        IP属地:上海5楼2022-09-22 17:08
        回复
          好奇,隔壁Rxxxxxxx吧 没见这帖子,反而这里有···


          IP属地:湖北6楼2022-09-22 17:16
          收起回复
            补发:
            关于Vulkan的话题:分娩不是没有牙疼和一些小的倒退。其中一个倒退表现为Vulkan和OpenGL图形API上的动物穿越:新视野和Atelier Ryza中的闪烁。
            https://tieba.baidu.com/p/8034857211


            IP属地:上海7楼2022-09-22 18:07
            回复

              委婉地说,《异刃编年史3》是一个有趣的版本。一方面,这款游戏在图形上似乎在硬件上表现不错;另一方面,稳定性已经被击中或错过了不是一个,而是三个不同的崩溃,都围绕着菜单。
              第一个需要调查和解决的问题是OpenGL特有的,它以TDR(超时检测和恢复)的形式表达自己。
              OpenGL不允许指定顶点缓冲区的大小,这意味着函数有时可能会从缓冲区边界之外调用地址。要解决这个问题,一个创建第二个临时缓冲区以适应这些越界访问情况。具有讽刺意味的是,这个问题是众所周知的;最明显的二级修复其实是《超级马里奥奥德赛》中的瀑布。

              用户已经注意到4年了,在水烟雾效果中可以看到三角形的人工制品,在《蛤蟆队长:寻宝追踪者》中也可以看到。这是由导致XC3中TDR的完全相同的问题引起的,并展示了为什么您应该总是推迟今天的一件事情,而明天可能会解决两件事情!

              Vulkan仍然可以在游戏过程中和XC3的菜单中显示DeviceLoss崩溃,尽管我们还不确定原因,并且正如人们所料,这里为OpenGL修复的问题不会影响NVIDIA Vulkan。


              IP属地:上海8楼2022-09-22 22:00
              收起回复
                还有一个与内存相关的最终崩溃,与所选的图形API无关。为什么他们都选择发生在完全相同的菜单上,做完全相同的事情,并且似乎出于完全不同的原因,这是我们暂时无法理解的;我们希望在不久的将来你能有更多的进步。
                不过,我们还没有完成XC3,因为第二个补丁已经在这个月推出,这次是专门针对AMD用户的。不满足于让NVIDIA成为本月格式支持缺点的唯一罪犯,AMD不支持Vulkan上的RGB16顶点格式,因此,需要一个后备格式。如果不支持RGB16,则使用RGBA16顶点格式解决了这些GPU在尝试启动游戏时面临的即时崩溃。用于渲染目标的HLE宏被清除也被添加,因为AMD的驱动程序强烈抗议清除个别切片。
                如果你希望我们逃离异种刃的领地,请三思。最近的一个变化带来了《XC:最终版》中分辨率缩放的回归,看起来有些不对劲。一些刻度值未被正确更新跨纹理和图像,导致上述问题。游戏现在又可以正常缩放了。


                结束本月GPU部分的几个更小的变化包括:
                几何着色器直通回退将不再被触发如果支持该功能。修正了NVIDIA上漫威终极联盟3的一个倒退。
                对一些先前未定义的更改SPIR-V值进行初始化,而不是像潜在未定义,由于NVIDIA驱动程序似乎不喜欢这一点。修正了Link的唤醒中的倾斜模糊效果和Splatoon 2中潜在的一些闪烁,都是在使用Vulkan时。
                新超级马里奥兄弟U Deluxe中的OpenGL专用回归导致NullReferenceException崩溃。经过在尝试获取纹理的层数之前,确保帧缓冲区确实存在,回归已修复。
                OpenGL着色器重新编译现在又是多线程的。在Vulkan合并之后,OpenGL在启动时用一个线程重新编译着色器,而不是预期的最大8个线程!
                CPU:
                CPU重新编译器在继续改进,本月见证了一批新指令的加入,它们的名字听起来很复杂,变得有点模糊。
                更多32位Thumb指令:
                LDM/STM
                LDAEX/STLEX
                LDR海峡
                LDRD/STRD
                更多32位指令:
                SHA256
                Rd夫人
                第二批是最有趣的,因为他们现在,似乎无处不在,需要最新的马里奥赛车8豪华更新:2.1.0。作为一个直接的Wii U端口,马里奥赛车8豪华版是少数几个在32位指令集上运行的著名开关游戏之一,因此从一开始就考验着我们。有了这些新的指令,游戏又回到了它一贯的辉煌。

                SHA256指令专门接受了硬件加速处理并且添加了一个检查来确保指令支持vex编码;没有这一点,就有可能出现无效分配。


                IP属地:上海9楼2022-09-22 22:03
                回复




                  IP属地:上海12楼2022-09-22 22:10
                  收起回复
                    内核/服务:
                    虽然Ryujinx目前阻止了任天堂在线服务的连接,但这并不意味着我们不必与一系列网络相关的问题进行斗争。如果一些应用程序“认为”它们连接到了互联网,它们在启动时会有不同的反应:试图连接到服务器,调用不同的服务,或者仅仅是令人讨厌。
                    考虑到这一点,让我们看一下本月完成的几个服务实现:
                    LoadNetworkServiceLicenseKindAsync启用访客互联网访问时,神奇宝贝传奇阿尔宙斯需要。游戏仍然有点卡在载入中,但是一次一个路障,对吗?
                    '自由交流结束'防止一些游戏,如splat toon 3:splat fest World Premiere在第一次闪屏后崩溃。

                    ' ResolverSetOptionRequest '被踢断,这使得危险老鼠在游戏中领先。

                    不一个但是二网络套接字实施中的疏忽已得到解决,最终结果是《我的世界》可启动,而来宾互联网可启动有缺陷的。如果启用此设置,游戏仍然会崩溃;如果《《我的世界》》出于某种原因让你对Switch感兴趣,请记住这一点。

                    gdkchan还利用8月份全面优化内核查找内存块的方式,从链表迁移到红黑树。


                    IP属地:上海14楼2022-09-23 00:00
                    回复
                      如果你没有上过计算机科学课程,那么这些对你来说没什么意义,但是请放心,新方法要快得多。对你们中的一些人来说有以CS课程为例:链表的复杂度为O(n ),而红黑树的复杂度为O(log n ),这意味着在最坏的情况下,新方法在找到所需的内存块时效率显著提高。
                      图形用户界面/杂项:
                      贡献者CloneDeath这个月拿了一个拖把到我们的代码库,并决定它需要一个春季大扫除很… 一些…. 不同的… 区域其他贡献者也加入进来,移除各种未使用的字符串,重命名函数并减去冗余代码。这不是最有魅力的工作,但对于这么大的项目来说,基础工作同样重要。

                      如此干净。如此整洁。
                      WIP Avalonia GUI的翻译和区域更新越来越多,多得我们应接不暇,但我们非常感谢社区在这方面的广泛支持!抛光剂和日本人添加了区域设置日本人(又对了),中国人, 德国人和土耳其的所有接收更新以包括最新的字符串。现在,翻译列表本身的排序更加直观,每一个都以自己的母语显示。


                      我们有一个由来已久的谎言,是时候最终承认了。


                      IP属地:上海15楼2022-09-23 00:01
                      回复




                        IP属地:上海16楼2022-09-23 00:03
                        回复


                          IP属地:上海18楼2022-09-23 00:10
                          回复



                            IP属地:上海19楼2022-09-23 00:10
                            回复
                              看看


                              IP属地:上海来自Android客户端22楼2022-09-23 10:53
                              回复