Goes atop !681. The last 8 commits belong here.
--
v6: vkd3d-shader/spirv: Emit a warning if atomic RMW flags are unhandled.
vkd3d-shader/dxil: Implement the DXIL ATOMICRMW instruction.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/707
On Tue Mar 12 14:10:01 2024 +0000, Alfred Agrell wrote:
> Yes, that certainly would explain your symptoms, and why I never saw
> those issues. That's why Proton has a beta period, isn't it? Sounds like
> an easy fix, easier than comparing media types.
> Code duplication certainly has drawbacks, but I don't think we can blame
> me or WineHQ for this one; if you fork an active codebase, you get merge
> conflicts, and sometimes even behavioral conflicts like this. We can't
> let a fork constrain upstream development, can we? The safest way to
> avoid such trouble is get your code upstreamed.
> The stream order is indeed not guaranteed; as long as the input video
> bytestream is the same, I'm trusting that the stream order is also the same.
> Maybe that's naive of me, maybe it is indeed safe. I didn't check.
I didn't mean to pass blame, so sorry if I came across as accusing. Information you provided helped me figure out the bug, so thanks again for that! And thank you for taking take to respond!
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4449#note_64497
~~This applies on top of !704, the last two commits belong here.~~
Here we finally emit the structured program, replacing the older simple structurizer. The advantage of the new structurizer is that the CFG if statically described in the generated program, without having to trace the value of a variable. Upcoming MRs will make the CFG even simpler, easier to read and hopefully to optimize for downstream compilers.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/711
~~This applies on top of !698, the last three commits belong here.~~
Here we reconstruct an internal representation of a structured program corresponding to the input CFG. The representation can be directly emitted (which will be the following MR) or other passes can be run on it to simplify the loop structure.
--
v3: vkd3d-shader/ir: Dump the reconstructed structured program.
vkd3d-shader/ir: Add jumps to the structured programs.
vkd3d-shader/ir: Reconstruct a structured program.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/704