yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
c7584b29f
master
Our CI
There are github actions for building and testing slang.
Tests
Most configurations run a restricted set of tests, however on some self hosted runners we run the full test suite, as well as running Falcor's test suite with the new slang build.
Building LLVM
We require a static build of LLVM for building slang-llvm, we build and cache this in all workflow runs. Since this changes infrequently, the cache is almost always hit. A cold build takes about an hour on the slowest platform. The cached output is a few hundred MB, so conceivably if we add many more platforms we might be caching more than the 10GB github allowance, which would necessitate being a bit more complicated in building and tracking outputs here.
For slang-llvm, this is handled the same as any other dependency, except on Windows Debug builds, where we are required by the differences in Debug/Release standard libraries to always make a release build, this is noted in the ci action yaml file.
Note that we don't use sccache while building LLVM, as it changes very infrequently. The caching of LLVM is done by caching the final build product only.
sccache
Due to reliability issues, we are not currently using sccache, this is historical/aspirational.
The CI actions use sccache, keyed on compiler and platform, this runs on all configurations and significantly speeds up small source change builds. This cache can be safely missed without a large impact on build times.
1# Our CI 2 3There are github actions for building and testing slang. 4 5## Tests 6 7Most configurations run a restricted set of tests, however on some self hosted 8runners we run the full test suite, as well as running Falcor's test suite with 9the new slang build. 10 11## Building LLVM 12 13We require a static build of LLVM for building slang-llvm, we build and cache 14this in all workflow runs. Since this changes infrequently, the cache is almost 15always hit. A cold build takes about an hour on the slowest platform. The 16cached output is a few hundred MB, so conceivably if we add many more platforms 17we might be caching more than the 10GB github allowance, which would 18necessitate being a bit more complicated in building and tracking outputs here. 19 20For slang-llvm, this is handled the same as any other dependency, except on 21Windows Debug builds, where we are required by the differences in Debug/Release 22standard libraries to always make a release build, this is noted in the ci 23action yaml file. 24 25Note that we don't use sccache while building LLVM, as it changes very 26infrequently. The caching of LLVM is done by caching the final build product 27only. 28 29## sccache 30 31> Due to reliability issues, we are not currently using sccache, this is 32> historical/aspirational. 33 34The CI actions use sccache, keyed on compiler and platform, this runs on all 35configurations and significantly speeds up small source change builds. This 36cache can be safely missed without a large impact on build times.