某些颜色格式(如 RGBX)没有 alpha(透明度),因此,当应用某些需要 alpha 的操作时,理想情况下,这些操作不应接触没有所需组件的颜色格式。不幸的是,这不可能轻易做到,但我们可以让它们表现得好像alpha总是一个静态的1(完全不透明)。这解决了 穆拉纳秘宝 中的一个问题,即地面被渲染为黑色矩形而不是...好吧,不是一个黑色的矩形。
《异度之刃3》是一个有趣的版本。一方面,游戏在图形上似乎在硬件方面表现非常出色。另一方面,稳定性被击中或错过,不是一个,而是三个不同的崩溃,都以菜单为中心。
其中第一个要调查和解决的问题是 OpenGL 独有的,它以 TDR(超时检测和恢复)的形式表示。
OpenGL 不允许指定顶点缓冲区的大小,这可能表示函数有时可能会从缓冲区边界之外调用地址。为了解决此问题,需要创建第二个临时缓冲区来容纳这些越界访问方案。具有讽刺意味的是,这个问题是众所周知的。最明显的次要修复实际上是超级马里奥奥德赛中的瀑布。
4年来,用户已经注意到,在水烟效果中可以看到三角形的伪像,在《前进!奇诺比奥队长》中也可以看到。这是由导致 异度之刃3中TDR的完全相同的问题引起的,并展示了为什么您今天应该总是推迟一件事,而明天可能会解决两件事!
在游戏过程中和 异度之刃 3 的菜单中,Vulkan 仍然可能会出现 DeviceLoss 崩溃,尽管我们还不确定原因,并且 OpenGL 在这里修复的问题不会影响 NVIDIA Vulkan,正如人们所期望的那样。还有一个与内存相关的最终崩溃,与选定的图形API无关。为什么他们都选择发生在完全相同的菜单上,做完全相同的事情,并且似乎出于完全不同的原因,这暂时超出了我们的理解范围;我们希望在不久的将来为您取得更多进展。
不过,我们还没有完成 异度之刃3,因为本月已经推出了第二个修复程序,这次是专门针对AMD用户的。AMD不满足于让NVIDIA成为本月格式支持缺陷的唯一罪犯,AMD不支持Vulkan上的RGB16顶点格式,因此需要回退格式。如果不支持 RGB16,则使用 RGBA16 顶点格式解决了这些 GPU 在尝试启动游戏时面临的即时崩溃问题。还添加了用于清除渲染目标的 HLE 宏,因为 AMD 驱动程序强烈反对清除单个切片。
如果你希望我们逃离异度之刃的领地,再想一想。最近的一项变化带来了 异度之刃:最终版分辨率缩放的回归,看起来有点不对劲。某些比例值未跨纹理和图像正确更新,导致上述问题。游戏现在再次正确缩放。
结束本月GPU部分的一些小变化包括:
如果支持该功能,则不会再触发几何着色器直通的回退。修复了英伟达上《漫威终极联盟 3》中的回归问题。
更改一些以前未定义的 SPIR-V 值以进行初始化,而不是保留为可能未定义的值,因为 NVIDIA 驱动程序似乎不喜欢这样做。修复了 塞尔达传说:织梦岛 中的倾斜模糊效果,以及使用Vulkan时可能出现的一些闪烁。