--
v5: Force Vulkan 1.1
vkd3d-shader/dxil: Handle constexpr pointer cast.
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
> Vulkan extension `VK_EXT_depth_range_unrestricted` should be detected and enabled to set the bounds freely.
We probably should, but I think we're also allowed to just clamp to [0, 1]. It's not immediately clear to me whether a corresponding caps bit exists for this in d3d12.
> Conversely, availability of this feature should be advertised with `DepthBoundsTestSupported` in `D3D12_FEATURE_DATA_D3D12_OPTIONS2`.
We already do that, actually. We support enabling depth bounds through D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1, but didn't implement adjusting the min/max values through OMSetDepthBounds() yet.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/632#note_61244
A points that might require some more work:
* According to Microsoft docs, NaN values are automatically mapped to zero. I can't quickly find any hint in the Vulkan specs of how NaN values are supposed to be handled, so I would assume that nothing is enforced and we should do the mapping ourselves.
* Vulkan extension `VK_EXT_depth_range_unrestricted` should be detected and enabled to set the bounds freely.
* Conversely, availability of this feature should be advertised with `DepthBoundsTestSupported` in `D3D12_FEATURE_DATA_D3D12_OPTIONS2`.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/632#note_61243