Repository navigation
v1.0.1
修复
正确性(输出错误结果):
- 字面量通道选择:
Comps()/ImmLane()双重映射与取模回绕(dstSw 为 yz/zw/yw/xzw/yzw 时全错,如add r2.yz, r2.yyzy, l(0,2,4,0)) ushr改为无符号右移(原先有符号移位会符号扩展高位)and/or非布尔掩码退化为真实位运算(原先按 bool 启发式翻译,位打包代码静默出错)- v14+ SerializedFile 的 ScriptTypes 步长 12→16 字节(Externals 列表全部错位)
- UnityFS flags 带 0x80(blocksInfo 在尾部)的 bundle 数据块起点算错,导致整包跳过
崩溃 / 资源泄漏:
- DXC 反汇编的 HGlobal 内存与 COM 对象泄漏(每次调用确定性增长)
DecodeSlots对畸形数据的越界读- bundle 目录扫描遇无权限子目录整个进程崩溃
--mat-check报告路径参数被误吞为数据目录
次要:
- GLSL 分支补
#include "UnityCG.cginc"(使用内建 uniform 的产物原先无法编译) - StructuredBuffer 按 stage 重复声明导致重定义编译错误
- 同名 shader 的 Disassembly 目录互相覆盖(去重提前)
|reg|绝对值修饰符被静默丢弃(现在输出abs())- v22 64 位 byteStart 不再截断,损坏条目跳过而不是产出错误数据
- d3d9 SM2 的 TEXCRDOUT 寄存器名修正(oT#)
- ShaderLab 字符串转义引号;
round_ne语义差异注释
新功能
--file <path>:直接指定单个输入文件——.assets序列化文件或.bundle/.assetbundle/.unity3d容器(第一个位置参数直接给文件路径也可以)--list-shaders <file>:真正实现,列出 SerializedFile/bundle 中的全部 shader 名--schema参数接通(原先被静默忽略)
下载
ShaderRipper.exe:Windows NativeAOT 单文件(约 30 MB)ShaderRipper:Linux 单文件(自包含运行时,约 53 MB)
均内嵌 schema/数据资源,下载即用。Linux 构建已在 Unity 6000.3.10f1 数据(418 shaders)上实测。