In `Makefile`, `foobar.tab.c` is made from the following rules:
```
foobar.tab.h: foobar.y
bison -o foobar.tab.c -d foobar.y ---- Rule X
foobar.tab.c: foobar.y foobar.tab.h
bison -o $@ foobar.y --- Rule Y
```
Normally, `Rule X` is used. In parallel makes, if `foobar.tab.c` is
considered while updating `foobar.tab.h` by `Rule X`, `Rule Y` is used.
So, if we compare build directories, there might be a difference in that
`foobar.tab.c` may or may not contain `#include "foobar.tab.h"`.
To avoid the above situation, this patch introduces [Grouped Targets](https://www.gnu.org/software/make/manual/html_node/Multiple-Target… which is
new in GNU Make 4.3.
The previous rules still apply to prevent build failures on older
systems, such as Ubuntu 20.04 LTS.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3797
--
v2: tests: Compile HLSL shaders at runtime in test_unknown_dsv_format().
tests: Compile HLSL shaders at runtime in test_unknown_rtv_format().
tests: Compile HLSL shaders at runtime in test_multiple_render_targets().
tests: Compile HLSL shaders at runtime in test_create_compute_pipeline_state().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/337
This goes on top of !325 (which was already approved).
--
v4: include: Add some misc D3D12 structs/enums/macros.
include: Add some D3D12 raytracing specific structs.
include: Add the D3D12_BARRIER_GROUP struct.
include: Add the ID3D12Tools interface.
include: Add the ID3D12VirtualizationGuestDevice interface.
include: Add the ID3D12Device10 interface.
include: Add the ID3D12Device9 interface.
include: Add the ID3D12ShaderCacheSession interface.
include: Add the ID3D12GraphicsCommandList4 interface.
include: Add the ID3D12MetaCommand interface.
include: Add the ID3D12Heap1 interface.
include: Add the ID3D12Resource{1,2} interfaces.
include: Add the ID3D12Device8 interface.
include: Add the structs D3D12_FEATURE_DATA_D3D12_OPTIONS{6,7}.
include: Add the ID3D12Device7 interface.
include: Add the ID3D12ProtectedResourceSession1 interface.
include: Add the ID3D12Device6 interface.
include: Add the ID3D12DeviceRemovedExtendedData{,1,2} interfaces.
include: Add the ID3D12DeviceRemovedExtendedDataSettings{,1} interfaces.
include: Add the ID3D12Device5 interface.
include: Add the ID3D12StateObjectProperties interface.
include: Add the ID3D12StateObject interface.
include: Add the ID3D12LifetimeTracker interface.
include: Add the ID3D12SwapChainAssistant interface.
include: Add the ID3D12LifetimeOwner interface.
include: Add the ID3D12Device4 interface.
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/332
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v4: vkd3d-shader/hlsl: Add constant folding for the ternary operator.
vkd3d-shader/hlsl: Use conditional moves for arithmetic operators instead of branching.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/336
I wanted to use ._xy element access to make it shorter, but that attempt was crushed by the reality - such indexing apparently compiles but does not produce correct element access loads. I'm going to update once this is fixed.
--
v5: vkd3d-shader/hlsl: Add determinant() function.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/329
Fixes Starfield not being able to take photos in photo mode (due to failing to creating windowscodecs' image factory due to COM apartment being initialized). Turns out on Windows RoGetActivationFactory() initializes implicit MTA apartment when called from STA thread, and so after that called once COM is implicitly uninitialized for any (new) thread until COM is uninitialized in the thread which called RoGetActivationFactory (or that thread exited). This is not the case on Win8 (where the function was first introduced) but looks consistent after that.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3806
And discard irrelevant parts in select request. We currently store something in CTX_PENDING and ignore it later in select request if we're currently running in wow context.
--
v6: ntdll/tests: Add tests for setting context on unsuspended thread.
server: Store both contexts in pending context object.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3566