glslang-zig/gtests
Pankaj Mistry 228c67228a GL_EXT_mesh_shader/SPV_EXT_mesh_shader implementation
Added following updates to GL_EXT_mesh_shader implementation:

1. Added SPIRV and GLSL test cases
2. Added checks to ensure NV and EXT mesh shader builtins cannot be used interchangeably.
3. Updated the language name by removing the postfix "NV" to MeshShader and TaskShader.
4. Added checks for grammar checking to comply with the spec.

5. Added gl_NumWorkGroups builtin to Mesh shader
6. Fixed data type of gl_PrimitiveLineIndicesEXT and gl_PrimitiveTriangleIndicesEXT
7. Added new constants to the resources table
8. Updates to handle new storage qualifier "taskPayloadSharedEXT"
9. Updated test cases by replacing "taskEXT" with storage qualifier "taskPayloadSharedEXT"

Addressed  Review comments
1. Fixed instruction description used by glslang disassembly.
2. Updated OpEmitMeshTasksEXT as per spec update
3. Fixed implementation that errors out if there are more then one taskPayloadSharedEXT varjables.
4. Fixed miscellaneous error logs and removed unwanted code.

SPIRV 1.6 related build failure fixes
- Update SPIRV header to 1.6
- Fix conflict wiht SPIRV 1.6 change, where localSizeId is used for execution mode for mesh/task shaders

Enable SPIRV generated for EXT_mesh_shader to be version 1.4

GL_EXT_mesh_shader: Add checks for atomic support and corresponding test cases
2022-09-01 18:02:21 -07:00
..
AST.FromFile.cpp The first redeclarations of gl_FragCoord must appear before any 2022-03-11 14:42:11 +08:00
BuiltInResource.FromFile.cpp Gtests can be run on another source tree 2016-10-05 10:28:32 -04:00
CMakeLists.txt build: install glslang-config.cmake to libdir 2022-08-25 23:15:14 +02: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 Fix GCC sign-compare warnings 2022-01-04 19:55:41 -07:00
HexFloat.cpp Build/Test: Dropping 2013 allows using the latest googletests. 2020-08-05 11:07:07 -06:00
Hlsl.FromFile.cpp Add test for the instance param (geometry shader) 2022-05-24 18:53:39 +02: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 link time validation for unused gl_PerVertex members 2021-11-08 15:23:02 -08: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 GL_EXT_mesh_shader/SPV_EXT_mesh_shader implementation 2022-09-01 18:02:21 -07:00
TestFixture.cpp GL_EXT_mesh_shader/SPV_EXT_mesh_shader implementation 2022-09-01 18:02:21 -07:00
TestFixture.h Add whitelist filtering for debug comments in SPIRV-Remap. 2022-05-11 12:08:25 -04:00
VkRelaxed.FromFile.cpp fix cases where symbols in the tree didn't get updated during block merging 2022-01-28 23:38:56 -05: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.