GPU 着色器工具箱
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_15292d5a/yjkj-gpu-shader-toolkit。
技能介绍
适用问题
很多渲染问题不是语法错误,而是着色器在不同平台、驱动或封装格式下表现不一致。工程师需要快速判断 HLSL、GLSL、MSL、WGSL 等源码特征,比较函数与类型差异,并定位 STL、LDL、MUFU.SIN/COS 等指令带来的性能热点。更复杂的是,NVIDIA 驱动缓存、DirectX 字节码、游戏 .pak 包或 PPSSPP .ppdmp 帧转储里保存的并不是可直接阅读的源码,必须结合工具链还原与反汇编。
工作方式
技能把着色器工程拆成几条可复用路径:
- 语言识别与转换:通过
SV_Position、gl_Position、@vertex、texture等模式判断语言,并对照vec2/float2、mix/lerp等 API 差异。 - NVIDIA 缓存分析:围绕
nvcachetools、nvdisasm、envytools提取已编译着色器,检查指令统计与常量内存占用,辅助解释 OpenGL 与 Vulkan 编译差异。 - 游戏资产逆向:识别 PAK 表头、
FILELINK_____END、SDRB与DXBC边界,提取RDEF、ISGN等资源绑定信息;对 PSP/PPSSPP,则优先解析.ppdmp重建 GE 状态和生成的着色器。
边界与注意
资料偏重分析、优化与逆向,不覆盖完整游戏引擎集成或移动端图形驱动认证。浏览器加密缓存可能无法直接解析;PSP 原始资源通常没有传统着色器;游戏 PAK 格式因引擎而异,不能把 Warframe 示例当成通用模板。
使用场景
- 排查 HLSL 与 GLSL 编译差异时,对照 `lerp`、`saturate`、纹理采样等函数差异。
- 分析 NVIDIA OpenGL 着色器为什么比 Vulkan 慢时,提取驱动缓存并用 `nvdisasm` 查看 `STL` 指令。
- 从游戏 `pak` 包中提取 DXBC 字节码时,定位 `SDRB` 与 `RDEF`、`ISGN` 资源绑定信息。
- 调试 PPSSPP 渲染问题时,解析 `.ppdmp` 重建 GE 状态,查看运行时生成的着色器。
适合人员
- 做 Unity 或 Unreal 渲染优化的图形程序员,需要快速核对 HLSL 与 GLSL 的 API 差异。
- 排查 NVIDIA OpenGL 性能异常的引擎工程师,需要分析驱动缓存中的指令和常量内存。
- 研究游戏图形资产的逆向工程师,需要从 pak 包提取 DXBC 并查看资源绑定。
- 调试 PPSSPP 渲染异常的开源贡献者,需要解析 .ppdmp 帧转储和生成的着色器。