vkd3d-shader/ir: Synthesize selection constructs from conditional jumps.
This applies on top of !711 (merged), the last three commits belong here.
This MR and the following ones will introduce a number of optimization passes on the structured representation of the shader, with the goal of fixing the idiosyncrasies of the code generated by the new structurizer. The general pattern is that we want to recognize when the combination of loops and jumps can be rather written with selection constructs. Ideally that should bring to removing all the synthesized loop intervals, but that cannot be guaranteed in general. We still want to do remove all the loops we can, first to make the generated code easier to read and to recompile, and second because having fewer loops also means that more multilevel jumps become ordinary single level jumps, which do not require overhead to be represented in SPIR-V.
Merge request reports
Activity
added 4 commits
Toggle commit listadded 27 commits
-
624384fa...164608a0 - 24 commits from branch
wine:master
- 3fe1fca0 - vkd3d-shader/ir: Move `continue's to the false branch when possible.
- 37eb130f - vkd3d-shader/ir: Remove trailing `continue's.
- 9b155572 - vkd3d-shader/ir: Synthesize selection constructs from conditional jumps.
Toggle commit list-
624384fa...164608a0 - 24 commits from branch
added 51 commits
-
9b155572...b1eaf832 - 48 commits from branch
wine:master
- 52d4914b - vkd3d-shader/ir: Move `continue's to the false branch when possible.
- ff284137 - vkd3d-shader/ir: Remove trailing `continue's.
- 8abcc97f - vkd3d-shader/ir: Synthesize selection constructs from conditional jumps.
Toggle commit list-
9b155572...b1eaf832 - 48 commits from branch
added 18 commits
-
8abcc97f...e1e63672 - 15 commits from branch
wine:master
- 2e0e7673 - vkd3d-shader/ir: Move `continue's to the false branch when possible.
- f812e592 - vkd3d-shader/ir: Remove trailing `continue's.
- a28bb9e9 - vkd3d-shader/ir: Synthesize selection constructs from conditional jumps.
Toggle commit list-
8abcc97f...e1e63672 - 15 commits from branch
added 8 commits
-
a28bb9e9...4b0a328a - 5 commits from branch
wine:master
- ce68e61e - vkd3d-shader/ir: Move `continue's to the false branch when possible.
- 5c856096 - vkd3d-shader/ir: Remove trailing `continue's.
- 93418825 - vkd3d-shader/ir: Synthesize selection constructs from conditional jumps.
Toggle commit list-
a28bb9e9...4b0a328a - 5 commits from branch