高版本安卓注入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

喷涂中遇到的光栅化问题

最近看的一个问题,最后想通很简单但一开始自己狠坑了自己一把,简单记录一下。 为了实现运行时喷涂,直接动态RT解决问题: 喷涂时利用2uv直接绘制到一张RenderTexture 模型正常渲染的时候采样这张RenderTexture。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 4月 22, 2022

奇妙的Shader精度(续)

这个话题其实已经连着好几次了orz(之前博客分享过Metal 2.1中的新关键字invariant和奇妙的Shader精度),但昨天有朋友又遇到PreZ挂了的情况: D3D11下如果关掉Shader Optimize后PreZ和Shading Pass的深度又对不上,但打开Shader Optimize就显示正常。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 1月 15, 2022

解决TextField光标乱飘

周五的时候UX同学换了一批字体,然后无意间发现TextField的光标鬼畜定位了orz 今天终于有空跟进下这个问题 顺便弥补下太久没更博客     阅读全文
Kanglai Qian's avatar
Kanglai Qian 12月 12, 2021

UE4中Auto Convex的诡异结果

最近尝试利用UE4自带的功能生成物理简模,参考Setting Up Collisions With Static Meshes有几种模式: 直接生成简单的包围盒/球/胶囊体; 利用DOP(discrete oriented polytopy)即若干对齐轴平面向内挤压; Auto Convex自动生成。 此外可以将多个简模组合使用,这里不再赘述。我们一开始是批量Auto Convex,结果发现对于一些”规则”网格生成的结果非常诡异。例如题图中的一个长方形盒子,生成的Auto Convex似乎只有一个表面。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 3月 06, 2021

NDK遇到Link Failed

这次是有几个同事遇到的一个问题: release版本编译引擎没问题,但是debug下会在链接步骤挂掉: [arm64-v8a] SharedLibrary : libGame.soD:\SDK\android-ndk-r21\toolchains\llvm\prebuilt\windows-x86_64\bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: final link failed: File truncatedclang++: error: linker command failed with exit code 1 (use -v to see invocation)     阅读全文
Kanglai Qian's avatar
Kanglai Qian 3月 06, 2021

利用IncrediBuild加速NDK编译

最近一段时间突然发现打包机上编译引擎安卓版本极慢,正好有现成的IncrediBuild所以研究下能不能用来加速。IB本身是商业软件,对Visual Studio的支持已经非常好了: 既可以使用Extension形式直接调用,又可以使用命令行传参sln。但是网上关于结合NDK使用的资料就非常少,这周花了大半天终于跑通流程,就此记录一下。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 3月 06, 2021