Just using the servers to test for now because this test seems to pass on Windows.
This test seems to be passing for me on Windows 10.
Signed-off-by: David Kahurani k.kahurani(a)gmail.com
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3558
Here is a preview of my shader cache work for early comments. It isn't complete, but does successfully cache things.
What's there:
* A new vkd3d API that is used internally for caching, can be used to implement the ID3D12ShaderCacheSession interface and hopefully be used by wined3d as well
* Simple saving and loading of the cached objects
* It is used to cache render passes, root signatures and pipeline states
What is not yet there
* Partial cache loading and eviction
* ID3D12ShaderCacheSession - largely because it needs bumping ID3D12Device up to version 9, which may bring unrelated regressions. For this and tests see my "cache-rework" branch (which
* Cache file compression
* Incremental updates of cache files - right now they are rewritten from scratch on exit
* Loading the cache in an extra thread. The pipeline state creation code will need some refactor for that
I am not quite happy yet with the two patches that write and reload actual graphics pipelines. The way I am storing the d3d settings aren't quite consistent yet either - in some cases I use the d3d input data as key directly, in others I store them as values attached to a hash value. The latter is usually the case if I need to cross-reference something, e.g. have a link from the pipeline state to the root signature. This kind of setup shows how wined3d can build a chain of linked state though.
There are also known issues with locking, explained in comments in the patches.
--
v2: vkd3d: Try to find a read-only cache in C:\windows\scache
vkd3d: Cache and preload compute pipelines.
DEBUG: Make cache profiling more visible
vkd3d: Add some cache efficiency debug code.
vkd3d: Add EXT_pipeline_creation_feedback.
vkd3d: Catch and release graphics pipelines.
Store graphics pipelines in the cache.
vkd3d: Precreate root signatures from cache
vkd3d: Keep root signatures around.
Store render passes in the on-disk cache and recreate them on startup.
vkd3d: Store the VK pipeline cache in an on-disk vkd3d cache.
vkd3d: Keep the application name around.
Add a win32 version of vkd3d_get_program_name.
vkd3d: Basic shader cache writing and reading.
vkd3d: Replace the custom render pass cache with vkd3d_shader_cache.
vkd3d: Implement vkd3d_shader_cache_enumerate.
Add cache locking.
vkd3d: Implement vkd3d_shader_cache_get.
vkd3d: Implement vkd3d_shader_cache_put.
Create and destroy the shader cache tree.
vkd3d: Implement shader_cache_open/close.
vkd3d: Define and stub the shader cache API.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/541
After running 'make check', this script can be used to see which tests are not passing, showing the test line and a \[XP\], \[XF\], or \[F\] tag, for each backend.
It can be used like this:
```plaintext
python3 lightboard.py [-b] <vkd3d_build_path>/tests/hlsl
```

So we can say "All lights green across the board" in a cinematic way.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/427
moniker_tree_get_rightmost(root) can return the same pointer as the root parameter so node can
equal to root. moniker_tree_discard(node) frees node, which could be same as root. Then
moniker_create_from_tree(root) could access the already freed pointer.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4768
Based on [a patch](https://www.winehq.org/mailman3/hyperkitty/list/wine-devel@winehq.or… by Jinoh Kang (@iamahuman) from February 2022.
I removed the need for the event object and implemented fast paths for Linux.
On macOS 10.14+ `thread_get_register_pointer_values` is called on every thread of the process.
On Linux 4.14+ `membarrier(MEMBARRIER_CMD_GLOBAL_EXPEDITED, ...)` is used.
On x86 Linux <= 4.13 and on other platforms `madvise(..., MADV_DONTNEED)` is used, which sends IPIs to all cores causing them to do a memory barrier.
--
v11: ntdll: Add thread_get_register_pointer_values-based implementation of NtFlushProcessWriteBuffers.
ntdll: Add sys_membarrier-based implementation of NtFlushProcessWriteBuffers.
ntdll: Add MADV_DONTNEED-based implementation of NtFlushProcessWriteBuffers.
https://gitlab.winehq.org/wine/wine/-/merge_requests/741
This adds the missing interfaces for `ID3D11On12Device1` and `ID3D11On12Device2` so they can be used in projects using mingw.
--
v2: d3d11on12: Add interfaces for ID3D11On12Device1 and ID3D11On12Device2
https://gitlab.winehq.org/wine/wine/-/merge_requests/4951
Currently GetFileType() ends up returning the file type solely based on Unix fd type if it gets it from server. The problematic case is when our process gets a pipe or socket fd as a stdin or stderr from Unix. The server object which gets created through wine_server_fd_to_handle is a regular file regardless of the underlying Unix fd type. It probably can't be anything else, at least for pipes, as the pipe should have both ends but we have only one in this case.
That causes problems, e. g., with libuv (used, e. g., by Vampire Survivors). It checks stdout handle type and if it is pipe it tries to do SetNamedPipeHandleState() on it and does not tolerate the failure.
It looks more sensible to me to report all the pipes and sockets created through wine_server_fd_to_handle() as regular files as that matches the server objects we have for them. When that is not the case we should get the correct type from server fd type.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1425