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.
--
v4: vkd3d-shader/ir: Keep loops contiguous in the topological sort.
vkd3d-shader/ir: Dump the topological order of the control flow graph.
vkd3d-shader/ir: Topologically sort the control flow graph.
vkd3d-shader/ir: Allow adding to a block list without checking for duplicates.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/672
--
v22: vkd3d-shader/dxil: Emit a specific warning for explicit wave size.
vkd3d-shader/dxil: Emit a specific warning for RT acceleration structs.
vkd3d-shader/spirv: Implement the UNPACK_4X8 instruction.
vkd3d-shader/dxil: Implement DX intrinsic Unpack4x8.
vkd3d-shader/spirv: Implement the PACK_4X8 instruction.
vkd3d-shader/dxil: Implement DX intrinsic Pack4x8.
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
I _am_ wondering if there is any real value in the repeated tests for d3drm 1/2/3 on this MR.
I could potentially see some interest at some point in expanding tests around the flags argument of Clear, which only appears in 3. But I really find nothing of particular interest about 2.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5161#note_62880
--
v21: vkd3d-shader/dxil: Implement DX intrinsic Unpack4x8.
vkd3d-shader/dxil: Implement DX intrinsic Pack4x8.
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
This reverts commit 6f9d20806e821ab07c8adf81ae6630fae94b00ef.
6f9d208 was committed to work around a Nvidia driver bug that can cause vkGetRandROutputDisplayEXT()
to generate an X exception and crash applications. The bug is later fixed in Nvidia driver 450.56.11
and newer. Thus 6f9d208 is no longer necessary on the newer Nvidia drivers.
Then after 18ae96e, another bug in the Nvidia driver can cause vkGetRandROutputDisplayEXT() to hang
forever when XLockDisplay() is called before vkGetRandROutputDisplayEXT() and this bug is still not
fixed and affects multiple applications. Reverting 6f9d208 allows us to work around the
vkGetRandROutputDisplayEXT() hang bug because then it no longer calls XLockDisplay() before
vkGetRandROutputDisplayEXT().
Nvidia driver 455 was released on September 9th 2020 so hopefully the fix is already widespread. We
could theoretically still keep 6f9d208 on older Nvidia drivers by doing version checks. But it's
more straightforward to remove the workaround since it's not a bug of Wine.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53428
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5179