目前在研究学习Vulkan
,Vulkan
使用SPIR-V
工具链进行编译,在macOS Mojave(10.14.1)
中使用如下命令安装工具链:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
$ brew info glslang glslang: stable 7.10.2984 (bottled), HEAD OpenGL and OpenGL ES reference compiler for shading languages https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/ Not installed From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/glslang.rb ==> Dependencies Build: cmake ✘ ==> Options --HEAD Install HEAD version ==> Analytics install: 1,147 (30 days), 1,770 (90 days), 2,664 (365 days) install_on_request: 383 (30 days), 696 (90 days), 1,537 (365 days) build_error: 0 (30 days) $ brew install glslang ==> Downloading https://homebrew.bintray.com/bottles/glslang-7.10.2984.mojave.bo ######################################################################## 100.0% ==> Pouring glslang-7.10.2984.mojave.bottle.tar.gz ? /usr/local/Cellar/glslang/7.10.2984: 58 files, 6.7MB $ glslangValidator -v Glslang Version: 7.10.2984 ESSL Version: OpenGL ES GLSL 3.20 glslang Khronos. 10.2984 GLSL Version: 4.60 glslang Khronos. 10.2984 SPIR-V Version 0x00010300, Revision 1 GLSL.std.450 Version 100, Revision 1 Khronos Tool ID 8 SPIR-V Generator Version 7 GL_KHR_vulkan_glsl version 100 ARB_GL_gl_spirv version 100 |
但是,需要注意的是,使用HomeBrew
安装的版本,缺少部分功能,如果使用"-Os
"(代码大小优化)参数的时候,会报告错误,如下:
1 2 |
$ glslangValidator -V -Os glslangValidator: Error -Os not available; optimizer not linked (use -h for usage) |
这是由于代码大小优化部分需要spirv-tools
执行,然而HomeBrew
编译的版本没有关联spirv-tools
导致安装的程序没办法使用这个功能。
如果需要这部分功能,我们只能手动编译安装:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# 移除brew安装的版本 $ brew remove glslang # 编译安装 glslang $ git clone https://github.com/KhronosGroup/glslang.git $ cd glslang # 目前(2018.12.17)的正式版,最稳定的版本,试过最新的版本,编译部分代码存在问题 $ git checkout 7.10.2984 # 下载 spirv-tools 部分的功能代码 $ python update_glslang_sources.py $ mkdir build $ cd build $ cmake .. $ make $ sudo make install |
上述的代码如果不能成功更新下来,那么可以本站下载一份:点击这里下载 glslang
关于GLSL
语言比较有用的参考资料如下:
也可在本站查看如下:
也可在本站查看如下:
官方GLSL
语法手册