今天玩了下机械恋心Demo,发现开发组有些4K背景贴图还在使用BC1。在群里水了会,问了为啥没用BC7(毕竟现在DX11已经是标配了)——开发组是处于包体大小的考虑,Unity官方的crunch压缩只支持了ETC和DXT。
像UE的话收购oodle之后就集成BC7 RDO了,开箱即用非常省心。不过抱着折腾的心态,我快速试了手在不破坏Unity资源管线+没有Unity源代码的情况下是否也能用起来。
阅读全文
前段时间摸鱼的时候把自研在Steam Deck上跑起来了,发现网上相关资料比较少,记录下过程中一些好玩的坑。ps. 花时间搞这个一方面是接入手柄之后,实体操作感逼格瞬间上来了 还有一个原因是我有这个设备。
阅读全文
这两天升级了下XCode 15,一开始遇到了Xcode 15 linking error、unary_function、NWEndpoint.hostPort(host: , port: ) crash in Xcode15几个都是小问题。结果打了个包发现Build时间暴增: 本来单次编译需要1小时左右,现在直接涨到2.5小时还不太够。
阅读全文
今天在等编译过程中,抽空了解了下一直出现的MSB8028(这个警告其实出现了应该有几年了orz),有点意思…从表现上来说非常简单,就是编译项目的时候有几个工程(后来发现其实是名字要长…)很容易报这个warning
4>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(517,5): warning MSB8028: The intermediate directory (xxx\Engine\Intermediate\Build\Obj\x64\Hybrid\NvBlastExtSerialization\) contains files shared from another project (NvBlastExtSerialization.vcxproj). This can lead to incorrect clean and rebuild behavior.
阅读全文
之前在angle折腾笔记里提到恢复angle作为ES3模拟器,方便PC上查BUG。当时为了模拟EXT_copy_image使用了Vulkan Backend,别的用起来都挺好,但是很蛋疼的一点是RenderDoc抓帧的API其实都是vlk的… 这礼拜查别的BUG的时候,索性痛定思痛尝试使用GLES Backend。
这里记录下补全功能以及修复了若干Angle/RenderDoc相关问题的笔记…
阅读全文
本周版本的时候QA同学跑过来说iPhone 13进游戏闪退,而且没有抓到闪退的堆栈信息; 盲猜是内存问题,当时手头在忙就直接找人试了下低端一些的设备,结果没有翻车orz 就一时间有点摸不到头脑。后来腾出手直接XCode连着看了下,雀实是内存冲到2G之后被系统干了,在- (void)applicationDidReceiveMemoryWarning:(UIApplication*)application里打了行LOG也触发到了。
昨天在家终于有空仔细研究下这个问题,最后发现还是蛮少见的情况… 特意记录一下笔记。
阅读全文
几年前在公司内部KM分享过如何方便的将RenderDoc内嵌到内部版本中从而方便调试,以及如何向下兼容更低版本的Android系统(RenderDoc Android最低系统要求是6.0)。
手法其实非常简单: 直接将libVkLayer_GLES_RenderDoc.so这个打包进apk中然后手动加载下即可; 这样做额外的好处是不需要依赖其hook系统的机制,所以不需要interceptor-lib,进而压低系统版本要求。
阅读全文
时隔多年重新编译angle,主要是为了PC上能模拟ES3.1,特别是最好能支持VT相关操作。本来不抱希望,毕竟angle文档上写的很清楚,目前GL/GLES/Vulkan Backend都只支持到ES 3.1,ES 3.2还处于in progress。
但是突然发现EXT_copy_image这个扩展在Vulkan Backend上已经被支持Vulkan: Add support for EXT_copy_image,瞬间觉得有戏就折腾了下。
阅读全文
最近抽空研究了下Unity的SRPBatcher,根据官方文档说法这货能极大降低DrawCall代价,从而达到提升性能的目的,而且这个行为大多数情况下对于使用者是透明的。正好对这块比较感兴趣其实是最近在尝试优化这块,看看有什么思路可以白嫖,抓了帧稍微研究了下原理。
阅读全文