diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2021-09-10 16:31:26 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-10 13:31:26 -0700 |
| commit | 27ce5eb0de9f792f3e433bcb239c07d79371cf45 (patch) | |
| tree | bb85155ceafd280a3931432141fc1cc1dae20959 /tools | |
| parent | 28adf8917e53953dbfebd746410a427a55eed814 (diff) | |
First Slang LLVM integration (#1934)
* #include an absolute path didn't work - because paths were taken to always be relative.
* First integration with 'slang-llvm'.
* Fix project.
* Fix test output.
* First pass assert support.
* Add inline impls for min and max.
* Add abs inline abs impl for llvm.
* Make abs not use ternary op
* Fix typo in slang-llvm.h
* Sundary fixes to make remaining tests using llvm backend pass.
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/slang-test/slang-test-main.cpp | 46 | ||||
| -rw-r--r-- | tools/slang-test/test-context.h | 3 |
2 files changed, 22 insertions, 27 deletions
diff --git a/tools/slang-test/slang-test-main.cpp b/tools/slang-test/slang-test-main.cpp index f477faf57..18ac05477 100644 --- a/tools/slang-test/slang-test-main.cpp +++ b/tools/slang-test/slang-test-main.cpp @@ -3430,46 +3430,40 @@ SlangResult innerMain(int argc, char** argv) // An un-categorized test will always belong to the `full` category categorySet.defaultCategory = fullTestCategory; - TestCategory* fxcCategory = nullptr; - TestCategory* dxcCategory = nullptr; - TestCategory* glslangCategory = nullptr; - TestCategory* nvrtcCategory = nullptr; + // All following values are initialized to '0', so null. + TestCategory* passThroughCategories[SLANG_PASS_THROUGH_COUNT_OF] = { nullptr }; // Work out what backends/pass-thrus are available { SlangSession* session = context.getSession(); + StdWriters::getOut().print("Supported backends:"); + for (int i = 0; i < SLANG_PASS_THROUGH_COUNT_OF; ++i) { - SlangPassThrough passThru = SlangPassThrough(i); + const SlangPassThrough passThru = SlangPassThrough(i); + if (passThru == SLANG_PASS_THROUGH_NONE) + { + continue; + } if (SLANG_SUCCEEDED(spSessionCheckPassThroughSupport(session, passThru))) { context.availableBackendFlags |= PassThroughFlags(1) << int(i); + + StringBuilder buf; + + auto name = TypeTextUtil::getPassThroughName(passThru); + + buf << " " << name; + + SLANG_ASSERT(passThroughCategories[i] == nullptr); + passThroughCategories[i] = categorySet.add(buf.getBuffer() + 1, fullTestCategory); + + StdWriters::getOut().write(buf.getBuffer(), buf.getLength()); } } - StdWriters::getOut().print("Supported backends:"); - if (context.availableBackendFlags & PassThroughFlag::Fxc) - { - StdWriters::getOut().print(" fxc"); - fxcCategory = categorySet.add("fxc", fullTestCategory); - } - if (context.availableBackendFlags & PassThroughFlag::Glslang) - { - StdWriters::getOut().print(" glslang"); - glslangCategory = categorySet.add("glslang", fullTestCategory); - } - if (context.availableBackendFlags & PassThroughFlag::Dxc) - { - StdWriters::getOut().print(" dxc"); - dxcCategory = categorySet.add("dxc", fullTestCategory); - } - if (context.availableBackendFlags & PassThroughFlag::NVRTC) - { - StdWriters::getOut().print(" nvrtc"); - nvrtcCategory = categorySet.add("nvrtc", fullTestCategory); - } StdWriters::getOut().print("\n"); } diff --git a/tools/slang-test/test-context.h b/tools/slang-test/test-context.h index a4b92790b..67707028d 100644 --- a/tools/slang-test/test-context.h +++ b/tools/slang-test/test-context.h @@ -28,7 +28,8 @@ struct PassThroughFlag GCC = 1 << int(SLANG_PASS_THROUGH_GCC), Clang = 1 << int(SLANG_PASS_THROUGH_CLANG), Generic_C_CPP = 1 << int(SLANG_PASS_THROUGH_GENERIC_C_CPP), - NVRTC = 1 << int(SLANG_PASS_THROUGH_NVRTC) + NVRTC = 1 << int(SLANG_PASS_THROUGH_NVRTC), + LLVM = 1 << int(SLANG_PASS_THROUGH_LLVM), }; }; |
