WGSL Shader 属性预处理方法疑问
-
WebGPU里当前没有类似getActiveAttrib/getActiveUniform接口,无法预判ShaderModule里属性的location和数据类型,这样封装接口的时候就还是需要开发者填入Layout信息比较麻烦啊。
难道需要自行开发一个WGSL文本解析器么?
-
您好,这个问题本质上是 shader reflection,目前 WebGPU 的标准中还没有加入该特性,但社区中已经有很多人提出过相关问题,e.g. https://github.com/gpuweb/gpuweb/issues?q=reflection+
官方已经计划在下一个版本中加入 reflection 的相关功能,届时可以都过 createShaderModule 返回所有 属性和location等相关信息。
目前的话,社区中有第三方开发的相关组件,e.g. https://github.com/brendan-duncan/wgsl_reflect 也可以得到基本的信息,如果需要可以关注试用一下
-
@shuangliu 十分感谢,插件的思路确实是预处理WGSL文本得到反射类型的,很受启发