glslang/gtests
steve-lunarg 7f7c2ed780 HLSL: Add location offsets per resource type
This PR adds the ability to offset sampler, texture, and UBO bindings
from provided base bindings, and to auto-number bindings that are not
provided with explicit register numbers. The mechanism works as
follows:

- Offsets may be given on the command line for all stages, or
  individually for one or more single stages, in which case the
  offset will be auto-selected according to the stage being
  compiled. There is also an API to set them. The new command line
  options are --shift-sampler-binding, --shift-texture-binding, and
  --shift-UBO-binding.

- Uniforms which are not given explicit bindings in the source code
  are auto-numbered if and only if they are in live code as
  determined by the algorithm used to build the reflection
  database, and the --auto-map-bindings option is given. This auto-numbering
  avoids using any binding slots which were explicitly provided in
  the code, whether or not that explicit use was live. E.g, "uniform
  Texture1D foo : register(t3);" with --shift-texture-binding 10 will
  reserve binding 13, whether or not foo is used in live code.

- Shorter synonyms for the command line options are available.  See
  the --help output.

The testing infrastructure is slightly extended to allow use of the
binding offset API, and two new tests spv.register.(no)autoassign.frag are
added for comparing the resulting SPIR-V.
2016-09-20 20:31:27 -06:00
..
AST.FromFile.cpp PP: Fix issue #408: # as last character in macro. 2016-07-30 12:41:35 -06:00
BuiltInResource.FromFile.cpp Rename DefaultResourceLimits.* to ResourceLimits.*. 2016-05-19 13:53:16 -04:00
CMakeLists.txt Remapper: move remapper tests into the glslangtests executable. 2016-09-02 09:21:12 -06:00
Config.FromFile.cpp Front-end: Fix known crashes by early exit on error (issue #29, issue #34, issue #35). 2016-07-09 14:53:11 -06:00
Hlsl.FromFile.cpp HLSL: Add string basic type and recognize string declaration grammar. 2016-09-19 20:29:45 -06:00
Initializer.h Infrastructure: Make shared symbol-table cache complete, delete work around. 2016-08-09 19:15:17 -06:00
Link.FromFile.cpp Front-end: Fix known crashes by early exit on error (issue #29, issue #34, issue #35). 2016-07-09 14:53:11 -06:00
main.cpp Link in Google Test framework. 2016-03-31 10:31:30 -04:00
Pp.FromFile.cpp Remove duplicated tests from the runtests script. 2016-06-28 17:54:07 -04:00
README.md Link in Google Test framework. 2016-03-31 10:31:30 -04:00
Remap.FromFile.cpp WIP: SPV Remapper: add remapper test framework 2016-08-25 10:46:51 -06:00
Settings.cpp Link in Google Test framework. 2016-03-31 10:31:30 -04:00
Settings.h Link in Google Test framework. 2016-03-31 10:31:30 -04:00
Spv.FromFile.cpp HLSL: Add location offsets per resource type 2016-09-20 20:31:27 -06:00
TestFixture.cpp WIP: SPV Remapper: add remapper test framework 2016-08-25 10:46:51 -06:00
TestFixture.h HLSL: Add location offsets per resource type 2016-09-20 20:31:27 -06:00

Glslang Tests based on the Google Test Framework

This directory contains Google Test based test fixture and test cases for glslang.

Apart from typical unit tests, necessary utility methods are added into the GlslangTests fixture to provide the ability to do file-based integration tests. Various *.FromFile.cpp files lists names of files containing input shader code in the Test/ directory. Utility methods will load the input shader source, compile them, and compare with the corresponding expected output in the Test/baseResults/ directory.

How to run the tests

Please make sure you have a copy of Google Test checked out under the External directory before building. After building, just run the ctest command or the gtests/glslangtests binary in your build directory.

The gtests/glslangtests binary also provides an --update-mode command line option, which, if supplied, will overwrite the golden files under the Test/baseResults/ directory with real output from that invocation. This serves as an easy way to update golden files.