在华为麒麟980,Mali-G76 MP10上,Android9系统,跑Vulkan,VT显示不正确

[Image Removed]

石头是采样地形VT效果不正常,只在Mali-G76 MP10,并且系统是Android 9 上跑Vulkan时出现

重现步骤
打Android包在 [Image Removed]这些机型上运行

Hi,

引擎应该默认在Android 9上是不用Vulkan的,因为Android 9的Vulkan驱动是有一些bug的。可以先验证一下android 10以上的设备是否也有类似的问题。另外可以的话,也用新版本的UE5测试一下。

只有Android 9会出,其他版本的系统都是正常的。我用5.7测试采出来有些是灰的不会更新(树的白色是shader的问题可以无视,草和山石是采了VT)。

[Image Removed]

我对比发现,5.7用的是ETC2_EAC_RGBA8_UNORM [Image Removed]5.3.2用的是ETC_EAC_RGBA8_SRGB

[Image Removed]我改成了ETC2_EAC_RGBA8_UNORM后采VT正常了。

但是出现另一个问题,四台机器中,mate20pro正常了。 [Image Removed]其他3台出现建筑和石头泛白的情况,建筑用的SVT

[Image Removed]

请问你改的是哪里,我看关于mobile VT的两个改动应该都已经在UE5.3里了。​

https://github.com/EpicGames/UnrealEngine/commit/42a985fa2aa83de7d72402a17543b8359eee3066

https://github.com/EpicGames/UnrealEngine/commit/037300a96d9e1071c6df44aaa0a18676214a1d9b

我是在void FVirtualTexturePhysicalSpace::InitRHI(FRHICommandListBase&)中将VT_SRGB强制设置=TexCreate_None

应该可以看看是否能在VT上设置SRGB的开关?另外我们的确遇到过之前GBufferC用SRGB后,在一些OpenGL设备上有兼容性问题。

不过总归来说,这还是一些设备兼容性的问题,引擎只能找一些workround(比如把改用SRGB的改为不用),但是这样也会导致色彩空间不正确,除非在shader里再做补偿。

不过这些引擎应该不会再考虑了。首先Android9的设备我们是不开Vulkan的,所以尽量让他们跑GL看一下吧。

好的明白了。我们大量的贴图都是SRGB格式的,感觉去掉srgb不太现实,OpenGL是正确的,还是不折腾用OpenGL算了。

好的,有问题再沟通。

我们查看了引擎默认DeviceProfile,发现只有Adreno设备限制了Android10以下设备DisableVulkan,Mali设备并没有做处理。请问是保持现状比较好,还是将Mali设备在Android10以下也DisableVulkan​比较好呢?

mali设备有的,我不太确定5.3是否添加了,不过你可以看一下5.6的版本。​ [Image Removed]

[Image Removed]

了解,感觉这些是G72和匹配不到的设备才会去判断android版本?而Mali-G76的GPU会直接走这个分支而不会判断android版本了?

[Image Removed]

我猜测是G76没有Android10以前的设备?

嗯嗯了解了,其实Wetest平台还有不少Android9 的G76😂

[Image Removed]

好的,那就尽可能规避掉吧。