这两天升级了下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代价,从而达到提升性能的目的,而且这个行为大多数情况下对于使用者是透明的。正好对这块比较感兴趣其实是最近在尝试优化这块,看看有什么思路可以白嫖,抓了帧稍微研究了下原理。
阅读全文
最近看的一个问题,最后想通很简单但一开始自己狠坑了自己一把,简单记录一下。
为了实现运行时喷涂,直接动态RT解决问题:
喷涂时利用2uv直接绘制到一张RenderTexture
模型正常渲染的时候采样这张RenderTexture。
阅读全文
这个话题其实已经连着好几次了orz(之前博客分享过Metal 2.1中的新关键字invariant和奇妙的Shader精度),但昨天有朋友又遇到PreZ挂了的情况: D3D11下如果关掉Shader Optimize后PreZ和Shading Pass的深度又对不上,但打开Shader Optimize就显示正常。
阅读全文