hlslcc
https://cdn2.unrealengine.com/Resources/files/UE4_OpenGL4_GDC2014-514746542.pdf
ue的跨平台编译器
hlsl cross compiler
https://github.com/aras-p/glsl-optimizer
https://www.mesa3d.org/
从这俩过来的
把它改成解析shader model 5 HLSL的而不是原本的glsl
这个跨平台编译器 让你只写一个shader就可以离线编译成各种不同平台啦
unity里面有好几个compiler
有hlslcc 还有glsl-optimizer
还有hlsl2glsl
看了半天代码看的云里雾里的 原来是缺少这篇paper
hlslcc中间是抽象语法树 转成对应平台shader source
之后 compiler再编成byte code
http://aras-p.info/blog/2010/09/29/glsl-optimizer/
有关metal2 features 整合到unity里面的一个解决方案
因为unity走的是dx编过来再转成metal的
那么对于dx里没有的 feature 怎么能让metal再生成出来
可以在编dx的时候 把那些metal2的feature编成占位的替代变量或者宏
失去真正metal2的意义 但是存在于dx转完的code里
然后从dx到metal的时候 识别这些 占位变量替换成metal2的features
比如 rasterize order group / image layout
4.26用DXC了 里面有用hlslcc的代码 没开启