Lines Matching +full:glslang +full:- +full:master +full:-
1 Also see the Khronos landing page for glslang as a reference front end:
3 https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/
6 regarding the feature level of glslang.
8 glslang chapter
11 [![Build Status](https://travis-ci.org/KhronosGroup/glslang.svg?branch=master)](https://travis-ci.o…
12 …/status/q6fi9cb0qnhkla68/branch/master?svg=true)](https://ci.appveyor.com/project/Khronoswebmaster…
18 1. A GLSL/ESSL front-end for reference validation and translation of GLSL/ESSL into an AST.
20 …-end for translation of a broad generic HLL into the AST. See [issue 362](https://github.com/Khron…
22 3. A SPIR-V back end for translating the AST to SPIR-V.
24 4. A standalone wrapper, `glslangValidator`, that can be used as a command-line tool for the above.
27 comment in `glslang/MachineIndependent/Versions.cpp`.
32 -------------------------------
38 The applied stage-specific rules are based on the file extension:
46 There is also a non-shader extension
50 --------
53 platform directly from the [master-tot release][master-tot-release] on GitHub.
55 testing and they always reflect the current top of the tree of the master
64 * [Python 2.7][python]: for executing SPIRV-Tools scripts. (Optional if not using SPIRV-Tools.)
65 * [bison][bison]: _optional_, but needed when changing the grammar (glslang.y).
66 * [googletest][googletest]: _optional_, but should use if making any changes to glslang.
73 #### 1) Check-Out this project
76 cd <parent of where you want glslang to be>
77 git clone https://github.com/KhronosGroup/glslang.git
80 #### 2) Check-Out External Projects
83 cd <the directory glslang was cloned to, "External" will be a subdirectory>
96 If you wish to assure that SPIR-V generated from HLSL is legal for Vulkan,
97 or wish to invoke -Os to reduce SPIR-V size from HLSL or GLSL, install
98 spirv-tools with this:
110 mkdir -p $BUILD_DIR
117 cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$(pwd)/install" $SOURCE_DIR
124 cmake $SOURCE_DIR -DCMAKE_INSTALL_PREFIX="$(pwd)/install"
130 Also, consider using `git config --global core.fileMode false` (or with `--local`) on Windows
137 make -j4 install
140 cmake --build . --config Release --target install
141 # "Release" (for --config) could also be "Debug", "MinSizeRel", or "RelWithDebInfo"
149 The grammar in `glslang/MachineIndependent/glslang.y` has to be recompiled with
153 [GnuWin32][bison-gnu-win32].
158 bison --defines=MachineIndependent/glslang_tab.cpp.h
159 -t MachineIndependent/glslang.y
160 -o MachineIndependent/glslang_tab.cpp
164 `glslang/updateGrammar`.
167 -------
169 Right now, there are two test harnesses existing in glslang: one is [Google
171 runs unit tests and single-shader single-threaded integration tests, while
172 the latter runs multiple-shader linking tests and multi-threaded tests.
178 correct configuration to CMake (using `-DCMAKE_INSTALL_PREFIX`) when building;
181 Running Google Test-backed tests:
190 ctest -C {Debug|Release|RelWithDebInfo|MinSizeRel}
193 # (which gives more fine-grained control like filtering):
194 <dir-to-glslangtests-in-build-dir>/glslangtests
197 Running `runtests` script-backed tests:
213 tests. Both the tests and `baseResults/` are under source-code control.
218 `gtests/*.FromFile.cpp` source files. `glslangtests` provides a command-line
219 option `--update-mode`, which, if supplied, will overwrite the golden files
231 `localtestlist` to list non-tracked tests. This is automatically read
235 -----------------------
239 * A new C++ class-oriented interface, or
247 glslang namespace and contains the following.
278 The `Sh*()` interface takes a "compiler" call-back object, which it calls after
281 The following is a simplified resulting run-time call stack:
284 ShCompile(shader, compiler) -> compiler(AST) -> <back end>
291 ------------------------
297 * Code is parsed using bison on `MachineIndependent/glslang.y` with the
299 the back-end; the intermediate representation stands on its own.
303 * The intermediate representation is very high-level, and represented
304 as an in-memory tree. This serves to lose no information from the
306 parsing to the back-end. In the AST, constants are propogated and
309 To aid linking and reflection, the last top-level branch in the AST
312 * The primary algorithm of the back-end compiler is to traverse the
313 tree (high-level intermediate representation), and create an internal
317 * Reduction of the tree to a linear byte-code style low-level intermediate
320 * There is currently some dead old-style linker-type code still lying around.
329 - the object comes from the pool (its base class has the macro
332 - it is a `TString`, in which case call `NewPoolTString()`, which gets
335 - the object does not come from the pool, and you have to do normal
343 [bison-gnu-win32]: http://gnuwin32.sourceforge.net/packages/bison.htm
344 [master-tot-release]: https://github.com/KhronosGroup/glslang/releases/tag/master-tot