glslang/gtests
Nathan Reed fc9897d1ba
Fix OpImageRead result type when compiling HLSL (#2706)
Fix OpImageRead result type when compiling HLSL

- Per the Vulkan spec, OpImageRead must return a 4-component vector always. When compiling HLSL, loads from a RWTexture of a template type with < 4 components would incorrectly generate an OpImageRead with a < 4 component result, resulting in validation errors.
- This was previously fixed for OpImageFetch in commit 4425f24; this commit does the same thing for OpImageRead.
- Added associated tests and expanded existing image fetch tests to check all the different types of textures, in both float and int incarnations, for completeness.
- Update other HLSL tests involving OpImageRead
2021-07-28 09:29:17 -06:00
..
AST.FromFile.cpp Revert "Atomic memory function can only be used for shader storage block member or shared variable." 2021-07-08 13:10:58 -06:00
BuiltInResource.FromFile.cpp Gtests can be run on another source tree 2016-10-05 10:28:32 -04:00
CMakeLists.txt Merge pull request #2522 from dneto0/intlog2 2021-04-14 15:16:04 -06:00
Common.cpp Add IntLog2 and use it 2021-04-13 14:09:44 -06:00
Config.FromFile.cpp Build/Test: Dropping 2013 allows using the latest googletests. 2020-08-05 11:07:07 -06:00
GlslMapIO.FromFile.cpp Revert "Revert "GL_ext_vulkan_glsl_relaxed extension support, and cross stage aware IO mapper"" 2021-03-15 11:26:11 -06:00
HexFloat.cpp Build/Test: Dropping 2013 allows using the latest googletests. 2020-08-05 11:07:07 -06:00
Hlsl.FromFile.cpp Fix OpImageRead result type when compiling HLSL (#2706) 2021-07-28 09:29:17 -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 Remove executable bits from code/data files (#2420) 2020-10-12 10:08:47 -06:00
Link.FromFile.Vk.cpp Partial fix for inconsistencies re: #2578 2021-03-19 16:18:42 -04:00
main.cpp SPV: Implement Vulkan 1.1 features and extensions. 2018-03-06 16:12:04 -07:00
pch.h Use precompiled headers for some glslang projects 2018-10-31 15:38:08 -05:00
Pp.FromFile.cpp Build/Test: Dropping 2013 allows using the latest googletests. 2020-08-05 11:07:07 -06:00
README.md Link in Google Test framework. 2016-03-31 10:31:30 -04:00
Remap.FromFile.cpp Build/Test: Dropping 2013 allows using the latest googletests. 2020-08-05 11:07:07 -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 Fix loading bool arrays from interface blocks 2021-07-15 22:29:48 -04:00
TestFixture.cpp Add support for GLSL_EXT_ray_tracing 2020-03-17 20:42:47 -04:00
TestFixture.h Remove executable bits from code/data files (#2420) 2020-10-12 10:08:47 -06:00
VkRelaxed.FromFile.cpp Fix warnings about int comparisons of different signness 2021-03-23 10:47:59 +00: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.