4425f245a5
HLSL allows image and texture types to be templatized on sub-vec4 types, or even structures. This was mostly handled already during creation of sampling operations. However, for operator[] which can generate image loads, this wasn't happening. It also isn't very easy to do at that point in time, because operator[] does not know where the results it produces will end up. They may be an lvalue or an rvalue, and there's a post-process to convert loads to stores. They may end up in atomic ops. To bypass that difficulty, GlslangToSpv now looks for this case and adds the appropriate conversion. LIMITATION: this only works for cases for which a simple conversion opcode suffices. That is to say, it will not work if the type is templatized on a struct. |
||
---|---|---|
.. | ||
AST.FromFile.cpp | ||
BuiltInResource.FromFile.cpp | ||
CMakeLists.txt | ||
Config.FromFile.cpp | ||
HexFloat.cpp | ||
Hlsl.FromFile.cpp | ||
Initializer.h | ||
Link.FromFile.cpp | ||
Link.FromFile.Vk.cpp | ||
main.cpp | ||
Pp.FromFile.cpp | ||
README.md | ||
Remap.FromFile.cpp | ||
Settings.cpp | ||
Settings.h | ||
Spv.FromFile.cpp | ||
TestFixture.cpp | ||
TestFixture.h |
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.