glslang/gtests
Shahbaz Youssefi 8c49d15fbf
Use GLSLANG_ANGLE to strip features to what ANGLE requires
This change strips a few features similar to GLSLANG_WEB but doesn't
remove every detail like the latter.  It also hardcodes profile/version
to core/450.

In particular, TBuiltIns::initialize is specialized to remove most of
what is not supported or won't be supported by ANGLE.  The result of
this function is parsed with TParseContext::parseShaderStrings which is
a performance bottleneck.

This change shaves about 300KB off of ANGLE's binary size and reduces
the cost of SetupBuiltinSymbolTable to nearly a sixth.

Signed-off-by: Shahbaz Youssefi <ShabbyX@gmail.com>
2020-07-08 15:33:20 -04:00
..
AST.FromFile.cpp Fix xfb stride limit issue (#2088) 2020-06-09 02:30:14 -06:00
BuiltInResource.FromFile.cpp Gtests can be run on another source tree 2016-10-05 10:28:32 -04:00
CMakeLists.txt License headers: s/Google/The Khronos Group 2020-07-03 12:21:01 +01:00
Config.FromFile.cpp Build: Remove extra commas in calling INSTANTIATE_TEST_SUITE_P. 2019-01-29 16:00:42 -07:00
HexFloat.cpp Build: Remove extra commas in calling INSTANTIATE_TEST_SUITE_P. 2019-01-29 16:00:42 -07:00
Hlsl.FromFile.cpp Add pack_matrix test 2020-06-25 17:54:16 +09:00
Initializer.h Infrastructure: Make shared symbol-table cache complete, delete work around. 2016-08-09 19:15:17 -06:00
Link.FromFile.cpp fix incorrect error when multiple compilation units don't declare layouts (#2238) 2020-05-21 00:10:33 -06:00
Link.FromFile.Vk.cpp Use GLSLANG_ANGLE to strip features to what ANGLE requires 2020-07-08 15:33:20 -04:00
main.cpp SPV: Implement Vulkan 1.1 features and extensions. 2018-03-06 16:12:04 -07:00
pch.cpp Use precompiled headers for some glslang projects 2018-10-31 15:38:08 -05:00
pch.h Use precompiled headers for some glslang projects 2018-10-31 15:38:08 -05:00
Pp.FromFile.cpp Remove execute permissions 2018-08-07 03:16:20 +09:00
README.md Link in Google Test framework. 2016-03-31 10:31:30 -04:00
Remap.FromFile.cpp Remapper: handle embedded opcode in OpSpecConstantOp 2017-05-18 16:13:04 -06:00
Settings.cpp Gtests can be run on another source tree 2016-10-05 10:28:32 -04:00
Settings.h Gtests can be run on another source tree 2016-10-05 10:28:32 -04:00
Spv.FromFile.cpp SPV: RelaxedPrecision: use the result precision for texture sampling. 2020-06-30 07:52:05 -06:00
TestFixture.cpp Add support for GLSL_EXT_ray_tracing 2020-03-17 20:42:47 -04:00
TestFixture.h Use GLSLANG_ANGLE to strip features to what ANGLE requires 2020-07-08 15:33:20 -04: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.