Skip to content

v1.0.1

Choose a tag to compare

@StArraySharp StArraySharp released this 20 Oct 21:48
· 92 commits to main since this release

修复

正确性(输出错误结果):

  • 字面量通道选择: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)上实测。