WebGPU Shader Compiler¶
更新记录
2023/7/25 增加该文档
2023/7/25 增加
源码说明文档2023/7/25 增加
发布 0.1文档2023/7/26 增加
发布 0.2文档2023/7/26 将跳转链接更改成卡片样式
2023/7/27 增加
发布 0.3文档2023/7/28 增加
发布 0.4文档2023/7/29 增加
发布 0.5文档2023/7/31 增加
发布 0.6文档
您可以点击该卡片跳转至 Shader Compiler
编译示意图¶
图示说明
表示编译器支持的着色器语言
表示编译器支持的编译路径
表示编译器不支持的编译路径
表示源码中对应调用的函数
发布 0.6
WebShader Compiler
July 31, 2023 发布
更新记录
修正将
Miss,Callable,Task和Mesh着色器识别成Vertex着色器的Bug修正成功编译
HLSL,MSL,C++,Reflection时输出的文字提示错误
存在的问题
Tessellation Control,Tessellation Evaluation,Geometry,Compute着色器转成HLSL时会导致异常。对于光线追踪着色器转成
HLSL或MSL时会导致异常。
发布 0.5
WebShader Compiler
July 29, 2023 发布
重要功能
提供编译到
GLSL功能。提供编译到
HLSL功能。提供编译到
MSL功能。提供编译到
C++功能。提供编译到
Reflection功能。
更新记录
菜单选项中增加 子菜单。
菜单选项中增加 子菜单。
菜单选项中增加 子菜单。
菜单选项中增加 子菜单。
菜单选项中增加 子菜单。
发布 0.4
WebShader Compiler
July 28, 2023 发布
重要功能
提供
SPIR-V代码的编译功能。
更新记录
Language窗口选项中增加 和 选项。
存在的问题
SPIR-V Binary与SPIR-V Disassemble之间转换时没有做完整性检查(有基本错误检查)。这是应为该编译器底层使用的 SPIRV-Tools 进行的SPIR-V序列化和反序列化,该库中对于SPIR-V的验证功能还在建设中。
发布 0.3
WebShader Compiler
July 27, 2023 发布
重要功能
提供着色器代码到
SPIR-V二进制的反编译代码(可阅读格式)的功能。
更新记录
优化输出的
SPIR-V十六进制数组格式。修正当更改
Target Language所对应的SPIR-V版本后编译器错误识别的Bug。增加对于 Ctrl+C 快捷键的支持。现可以通过该快捷键直接复制编辑器中的代码。
增加
Code Viewer窗口。用于展示和获取编译结果。修改
Shader Code Editor窗口的 菜单。菜单,增加 子菜单。
子菜单,增加 按钮。
使用教程
首先将要编译的着色器代码选中后 Ctrl+V 粘贴至剪贴板。
进入 在线着色器编译器 页面。如果是第一次进入会弹出
允许访问剪贴板的弹窗,点击允许。允许访问剪贴板
需要通过访问剪贴板将着色器代码粘贴至编译器。
直接 Ctrl+V 或依次点击 将代码粘贴至编译器页面中
配置着色器语言
Language选项(GLSL或HLSL),配置Shader Type选项(顶点着色器还是片元着色器等)
依次点击 进行输出配置。包括
Target Client目标端和Target Language目标语言标准(如果没有特定需求保持默认即可)。
如上配置完成后依次点击 将代码编译成
SPIR-V二进制代码。或依次点击 将SPIR-V二进制代码反编译成可阅读的SPIR-V代码。
如果编译失败,说明代码有错误,相关错误会在
Console中进行显示。
如果编译成功,相关的
SPIR-V将会写入剪贴板中,并在Console中给出成功提示。并弹出Code Viewer窗口用于显示编译结果。用户直接 Ctrl+V 将编译的结果粘贴即可。SPIR-V Binary 输出结果为
C/C++格式的SPIR-V的十六进制数组,可以直接用于Vulkan等API。SPIR-V Disassemble 输出结果为
SPIR-V二进制的反编译结果,为SPIR-V的可阅读格式。
成功编译成
SPIR-V Binary格式¶
成功编译成
SPIR-V Disassemble格式¶
开发计划
提供
HLSL,GLSL和SPIR-V的相互转换功能提供
SPIR-V输出为文件的功能提供
WGSL着色器支持提供对于
#include着色器头文件的支持控制台输出考虑是否输出时间信息
发布 0.2
WebShader Compiler
July 26, 2023 发布
更新记录
增大可视大小,之前的太小了。
增加对于 Ctrl+V 快捷键的支持。现可以通过该快捷键将
Shader代码直接粘贴进代码编辑器中。
发布 0.1
WebShader Compiler
July 25, 2023 发布
使用教程
首先将着色器代码选中后 Ctrl+V 粘贴至剪贴板。
进入 在线着色器编译器 页面。如果是第一次进入会弹出
允许访问剪贴板的弹窗,点击允许。
依次点击 将代码粘贴至编译器页面中
存在的问题
必须进行 操作才能将代码粘贴至编译器中,直接在编译器中 Ctrl+V 没有反应。
考虑如何设置引用着色器的
include头文件。
配置着色器语言
Language选项(GLSL或HLSL),配置Shader Type选项(顶点着色器还是片元着色器等)
依次点击 进行输出配置。包括
Target Client目标端和Target Language目标语言标准(如果没有特定需求保持默认即可)。
如上配置完成后依次点击 将代码编译成
SPIR-V
如果编译失败,说明代码有错误,相关错误会在
Console中进行显示。
如果编译成功,相关的
SPIR-V将会写入剪贴板中,并在Console中给出成功提示。用户直接 Ctrl+C 将编译的SPIR-V代码进行粘贴即可(输出结果为C/C++格式的SPIR-V的十六进制数组,可以直接用于Vulkan等API)
开发计划
提供
HLSL,GLSL和SPIR-V的相互转换功能提供
SPIR-V输出为文件的功能提供
SPIR-V输出为可阅读的文本格式提供
WGSL着色器支持提供对于头文件的支持