This first MR create an internal structured representation of the CFG and computes the domination relationship. Over a few other MRs I will implement an algorithm inspired to [this article](https://medium.com/leaningtech/solving-the-structured-control-flow… to compute a better structure than the one we already have, but for the moment the computed data is immediately wasted. A working prototype of the new structurizer is now available in https://gitlab.winehq.org/giomasce/vkd3d/-/commits/cfg4, though further improvement is planned on top of that too.
--
v4: vkd3d-shader/ir: Dump the domination relationship.
vkd3d-shader/ir: Compute the domination relationship.
vkd3d-shader/ir: Dump the control flow graph in the GraphViz format.
vkd3d-shader/ir: Build a representation of the control flow graph.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/656
`%gs` is not set until `call_init_thunk()`, this caused a crash on macOS when starting the second thread in a process.
(Paul was curious why this didn't fail on Linux, and found that `%fs` is being inherited from the creating thread.)
Also, adjust TEB accesses in other assembly functions to be consistent with the surrounding code (using registers, not fs/gs).
Fixes a crash on macOS introduced by 7ae488a2bb58501684c6475d4942277b852475fc
("ntdll: Don't hardcode xstate size in syscall frame.")
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5129
--
v17: vkd3d-shader/spirv: Support bool comparisons.
vkd3d-shader/dxil: Support scalar ALLOCA.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/648
--
v15: vkd3d-shader/dxil: Handle resource handle creation in a pre-pass.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/648