On Fri Apr 12 07:05:03 2024 +0000, Conor McCarthy wrote:
> The `Split handling * when emitting a structured program` commits do no
> more than move code to helper functions, right? Maybe the commit
> messages should state that instead.
Yes, that's what they do, and that's what "splitting" means in my mind. I'm not terribly attached to that formulation, though, so if you have another suggestion I can use yours.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/778#note_67687
Hull Shaders contain two functions instead of just one, so all the algorithms that require computing a CFG need to be run twice. Here we refactor the code so that this can be done more easily.
This MR is relatively long, but it is essentially just moving code around, so hopefully it is not too difficult to review anyway.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/778
~~This goes atop !764. The last three commits belong to this MR.~~
Since we want to get rid of loops and 'break's as much as possible, we try to move 'break's out of selection constructs as much as possible so it's easier to match them with loops. This MR introduces a few other tricks to help that.
--
v3: vkd3d-shader/ir: Move breaks out of selections again after having optimized loops.
vkd3d-shader/ir: Append code to the non-breaking branch if there is breaking one.
vkd3d-shader/ir: Prepare for changing the destination list in vsir_cfg_optimize_recurse().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/773
I'm working on adding all the intrinsics we haven't implemented yet. Here's sinh, cosh, and tanh.
Sinh/cosh are implemented in the same commit because they forward to the same backing function (because the identities used only differ by a plus or minus).
--
v5: vkd3d-shader/hlsl: Implement tanh.
vkd3d-shader/hlsl: Implement hyperbolic sin and cos.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/740