Unity里使用BC7 RDO压缩

今天玩了下机械恋心Demo,发现开发组有些4K背景贴图还在使用BC1。在群里水了会,问了为啥没用BC7(毕竟现在DX11已经是标配了)——开发组是处于包体大小的考虑,Unity官方的crunch压缩只支持了ETC和DXT。 像UE的话收购oodle之后就集成BC7 RDO了,开箱即用非常省心。不过抱着折腾的心态,我快速试了手在不破坏Unity资源管线+没有Unity源代码的情况下是否也能用起来。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 5月 25, 2024

Steam Deck接入笔记

前段时间摸鱼的时候把自研在Steam Deck上跑起来了,发现网上相关资料比较少,记录下过程中一些好玩的坑。ps. 花时间搞这个一方面是接入手柄之后,实体操作感逼格瞬间上来了 还有一个原因是我有这个设备。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 12月 25, 2023

XCode 15打包性能问题排查

这两天升级了下XCode 15,一开始遇到了Xcode 15 linking error、unary_function、NWEndpoint.hostPort(host: , port: ) crash in Xcode15几个都是小问题。结果打了个包发现Build时间暴增: 本来单次编译需要1小时左右,现在直接涨到2.5小时还不太够。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 10月 18, 2023

惹人嫌的warning MSB8028

今天在等编译过程中,抽空了解了下一直出现的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.     阅读全文
Kanglai Qian's avatar
Kanglai Qian 6月 30, 2023

angle追加折腾笔记

之前在angle折腾笔记里提到恢复angle作为ES3模拟器,方便PC上查BUG。当时为了模拟EXT_copy_image使用了Vulkan Backend,别的用起来都挺好,但是很蛋疼的一点是RenderDoc抓帧的API其实都是vlk的… 这礼拜查别的BUG的时候,索性痛定思痛尝试使用GLES Backend。 这里记录下补全功能以及修复了若干Angle/RenderDoc相关问题的笔记…     阅读全文
Kanglai Qian's avatar
Kanglai Qian 6月 04, 2023

BSS段内存问题排查笔记

本周版本的时候QA同学跑过来说iPhone 13进游戏闪退,而且没有抓到闪退的堆栈信息; 盲猜是内存问题,当时手头在忙就直接找人试了下低端一些的设备,结果没有翻车orz 就一时间有点摸不到头脑。后来腾出手直接XCode连着看了下,雀实是内存冲到2G之后被系统干了,在- (void)applicationDidReceiveMemoryWarning:(UIApplication*)application里打了行LOG也触发到了。 昨天在家终于有空仔细研究下这个问题,最后发现还是蛮少见的情况… 特意记录一下笔记。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 4月 03, 2023

高版本安卓注入RenderDoc

几年前在公司内部KM分享过如何方便的将RenderDoc内嵌到内部版本中从而方便调试,以及如何向下兼容更低版本的Android系统(RenderDoc Android最低系统要求是6.0)。 手法其实非常简单: 直接将libVkLayer_GLES_RenderDoc.so这个打包进apk中然后手动加载下即可; 这样做额外的好处是不需要依赖其hook系统的机制,所以不需要interceptor-lib,进而压低系统版本要求。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 2月 12, 2023

angle折腾笔记

时隔多年重新编译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,瞬间觉得有戏就折腾了下。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 5月 07, 2022

从DX角度看SRPBatcher

最近抽空研究了下Unity的SRPBatcher,根据官方文档说法这货能极大降低DrawCall代价,从而达到提升性能的目的,而且这个行为大多数情况下对于使用者是透明的。正好对这块比较感兴趣其实是最近在尝试优化这块,看看有什么思路可以白嫖,抓了帧稍微研究了下原理。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 5月 01, 2022

IL2CppDumper笔记

最近研究了一段时间的IL2Cpp编译出来的dll,整理下笔记记录下中间遇到的一些问题和解决方法。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 4月 23, 2022