Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-12-01Add MIT dual license for the SPIRV-Cross API.Hans-Kristian Arntzen
2020-01-16Update license headers to 2020.2020-01-16Hans-Kristian Arntzen
2019-09-06Refactor into stronger types in public API.Hans-Kristian Arntzen
Some fallout where internal functions are using stronger types. Overkill to move everything over to strong types right now, but perhaps move over to it slowly over time.
2019-08-27Move branchless analysis to CFG.Hans-Kristian Arntzen
Traverse backwards instead, far more robust. Should elide basically all redundant continue; statements now.
2019-07-03Fix variable scope when an if or else block dominates a variable.Hans-Kristian Arntzen
Just like loops, we need complicated hoisting again to make this work.
2019-06-06Deal with case where a variable is dominated by inner part of a loop.Hans-Kristian Arntzen
There is a risk that we try to preserve a loop variable through multiple iterations, even though the dominating block is inside a loop. Fix this by analyzing if a block starts off by writing to a variable. In that case, there cannot be any preservation going on. If we don't, pretend the loop header is reading the variable, which moves the variable to an appropriate scope.
2019-04-09Reduce pressure on global allocation.Hans-Kristian Arntzen
- Replace ostringstream with custom implementation. ~30% performance uplift on vector-shuffle-oom test. Allocations are measurably reduced in Valgrind. - Replace std::vector with SmallVector. Classic malloc optimization, small vectors are backed by inline data. ~ 7-8% gain on vector-shuffle-oom on GCC 8 on Linux. - Use an object pool for IVariant type. We generally allocate a lot of SPIR* objects. We can amortize these allocations neatly by pooling them. - ~15% overall uplift on ./test_shaders.py --iterations 10000 shaders/.
2019-03-29Add an option to override the namespace used for spirv_cross.Hans-Kristian Arntzen
This is a pragmatic trick to avoid symbol collision where a project links against SPIRV-Cross statically, while linking to other projects which also use SPIRV-Cross statically. We can end up with very awkward symbol collisions which can resolve themselves silently because SPIRV-Cross is pulled in as necessary. To fix this, we must use different symbols and embed two copies of SPIRV-Cross in this scenario, now with different namespaces, which in turn leads to different symbols.
2019-01-10Use hashmaps in CFG as well.Hans-Kristian Arntzen
The arrays are incredibly sparse for the most part as we only need entires per basic block. For a small shader with ID bound of 8 million, we now have about 30x uplift.
2019-01-04Nonfunctional: Update copyright headers for 2019.Hans-Kristian Arntzen
2018-04-04Run format_all.sh.Hans-Kristian Arntzen
2018-02-01Update copyright dates to 2018 in main files.Bill Hollings
2018-01-24Fix CFG::update_common_dominator.Hans-Kristian Arntzen
The algorithm was too conservative causing lots of unnecessary temporaries to be created.
2017-07-25Fix parsing time explosion for huge shaders.Hans-Kristian Arntzen
Need to prune already walked blocks.
2017-03-25Run format_all.sh.Hans-Kristian Arntzen
2017-03-25Analyze parameter preservation for functions.Hans-Kristian Arntzen
This is kinda tricky, because if we only conditionally write to a function parameter variable it is implicitly preserved in SPIR-V, so we must force an in qualifier on the parameter to get the same behavior in GLSL.
2017-01-28Update license headers for 2017.Hans-Kristian Arntzen
2016-12-15Begin implementing for loop initializer propagation.Hans-Kristian Arntzen
2016-11-18Handle more corner cases with the CFG traversal.Hans-Kristian Arntzen
2016-11-18Distinguish between cross edges and back edges.Hans-Kristian Arntzen
Handle the weird opcodes CopyMemory/CopyObject.
2016-11-18Improve handling of dead blocks.Hans-Kristian Arntzen
All tests pass now. Still need to handle OpFunction, atomics, OpPhi, etc ...
2016-11-17Start adding CFG analysis.Hans-Kristian Arntzen
Not complete yet, but partly working ...