--
v6: vkd3d: Implement ID3D12Resource2.
tests/d3d12: Add a test for zero description count in test_resource_allocation_info().
vkd3d: Return DXGI_ERROR_NOT_FOUND from GetProtectedResourceSession().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/627
An alternative approach to `EnumAdapters2` that does not directly call to GDI driver and therefore does not require GDI driver functions to be expanded. The implementation now lives in `sysparams.c` to make it closer to win32u caches it accesses. It still uses `OpenAdapterFromLuid` internally because that's where adapter handles are actually assigned and to make sure returned handles are usable with other functions that rely on GDI driver being aware of what the handle represents to be able to function correctly (like `QueryVideoMemoryInfo`).
See !4791 for some background and why this version might be preferable over the one submitted there.
--
v9: win32u: Implement NtGdiDdDDIEnumAdapters2.
win32u: Maintain a list of GPUs in cache.
gdi32: Add D3DKMTEnumAdapters2() stub.
gdi32/tests: Add D3DKMTEnumAdapters2 tests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4857
As per discussion in 606, plumbing constant buffer reflection through
vkd3d-shader requires interface design and API documentation for an interface
which is inherently quite specific to one format. Instead of wasting time on
this interface, just implement RDEF parsing in vkd3d-utils itself. If we change
our mind about this, we can always move the implementation to vkd3d-shader
anyway.
This does not copy the existing implementation from Wine, because:
* Wine does not validate offsets; adding this changes the parsing code
significantly;
* Wine incorrectly handles types, deduplicating them into an rbtree;
* Wine skips several fields which I have been able to find the purpose of.
The implementation is not that complex to begin with, so reimplementing it from
scratch is not much work.
--
v2: vkd3d-utils: Implement ID3D12ShaderReflectionType::GetMemberTypeByIndex().
vkd3d-utils: Implement ID3D12ShaderReflectionVariable::GetType().
vkd3d-utils: Implement ID3D12ShaderReflectionConstantBuffer::GetVariableByIndex().
vkd3d-utils: Parse the RD11 section.
vkd3d-utils: Implement ID3D12ShaderReflection::GetConstantBufferByIndex().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/626
--
v2: server: Enumerate desktop processes for rawinput messages.
server: Keep a list of threads connected to each desktop.
server: Send hardware input to the visible input desktop.
server: Keep track of the winstation input desktop.
win32u: Introduce new NtUserSwitchDesktop syscall stub.
user32/tests: Run in-desktop tests from a new thread.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5066
--
v7: vkd3d-shader/ir: Do not validate SSA with a zero write mask.
vkd3d-shader/dxil: Ignore the auto binding space property.
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
--
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