This applies on top of !656, the last three commits belong here.
--
v5: vkd3d-shader/ir: Sort each loop by block label.
vkd3d-shader/ir: Dump the loops in the control flow graph.
vkd3d-shader/ir: Keep track of loops by header block.
vkd3d-shader/ir: Compute the loops in the control flow graph.
vkd3d-shader/ir: Introduce a helper to express block domination.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/662
This applies on top of !662, the last four commits belong here.
Here we compute a topological order (plus some additional properties) of the shader blocks. Eventually the blocks will be emitted precisely in this order, after having been enriched with structured control flow information.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/672
This applies on top of !656, the last three commits belong here.
--
v4: vkd3d-shader/ir: Compute the loops in the control flow graph.
vkd3d-shader/ir: Add a debug buffer to struct vsir_cfg.
vkd3d-shader/ir: Properly handle function-local indexable temps when flattening control flow.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/662