In the current implementation, the main UI will be blocked
after the uninstaller is launched. Put the uninstall process
in a thread to avoid that, and popup a message while trying
to launch multiple uninstallers.
--
v2: appwiz.cpl: Handle WM_CLOSE and WM_COMMAND(IDCANCEL) in the support info dialog.
appwiz.cpl: Process messages while waiting for the uninstaller to terminate.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2571
Otherwise, in the added test, we get:
```
vkd3d-compiler: vkd3d-shader/hlsl.c:452: hlsl_init_deref_from_index_chain: Assertion `chain' failed.
```
because on the path that triggers the following error:
```
E5002: Wrong type for argument 1 of 'tex3D': expected 'sampler' or 'sampler3D', but got 'sampler2D'.
```
a NULL params.resource is passed to hlsl_new_resource_load() and
then to hlsl_init_deref_from_index_chain().
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/183
--
v2: d3d9: Pass the container to d3d9_surface_create().
d3d9: Create sub-resource surfaces manually.
d3d9: Move surface allocation to d3d9_surface_create().
dxgi: Create d3d11 swapchain textures directly from d3d11_swapchain_init().
dxgi: Introduce IWineDXGIDeviceParent::register_swapchain_texture() and use it in IDXGIDevice::CreateSurface().
https://gitlab.winehq.org/wine/wine/-/merge_requests/2676
Mainly comprises support for allocating arrays of resources, and loading from them, for both SM1 and SM4.
--
v5: vkd3d-shader/hlsl: Support resource arrays when writting SM4.
vkd3d-shader/hlsl: Write resource loads in SM1.
vkd3d-shader/hlsl: Write sampler declarations in SM1.
vkd3d-shader/hlsl: Track objects sampling dimension.
vkd3d-shader/hlsl: Track object components usage and allocate registers accordingly.
tests: Test objects as parameters.
vkd3d-shader/hlsl: Skip object components when creating input/output copies.
vkd3d-shader/hlsl: Add fixme for uniform copies for objects within structs.
vkd3d-shader/hlsl: Support multiple-register variables in object regsets.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/159
SPIR-V already handled DSX/DSY, so only D3DBC/TPF needed new case blocks.
You'll notice that there's no test for this one - in addition to being a pretty straightforward translation for all possible formats, this feature uses the render target width/height and I wasn't sure if there was a good way to ensure that the test would always make sense.
Instead, I did the test manually, and it's what you'd expect (EDIT: Previously the test used a uniform which always optimized to 0, new test uses VPOS instead):
HLSL:
```
float4 main(float4 pos : sv_position) : sv_target
{
float4 x = ddx(pos.x);
float4 y = ddy(pos.y);
return x + y;
}
```
D3DBC:
```
ps_3_0
dcl_position0 vPos
mov r0.xyzw, vPos.xyzw
mov r1.x, r0.x
dsx r1.x, r1.x
mov r0.x, r0.yxxx
dsy r0.x, r0.x
mov r1.xyzw, r1.x
mov r0.xyzw, r0.x
add r0.xyzw, r1.xyzw, r0.xyzw
mov oC0.xyzw, r0.xyzw
```
DXBC-TPF:
```
ps_4_0
dcl_input_ps_siv linear v0.xyzw, position
dcl_output o0.xyzw
dcl_temps 2
mov r0.xyzw, v0.xyzw
mov r1.x, r0.x
dsx r1.x, r1.x
mov r0.x, r0.yxxx
dsy r0.x, r0.x
mov r1.xyzw, r1.x
mov r0.xyzw, r0.x
add r0.xyzw, r1.xyzw, r0.xyzw
mov o0.xyzw, r0.xyzw
ret
```
Fixes https://bugs.winehq.org/show_bug.cgi?id=54827
--
v4: tests: Add test for ddx(), ddy() intrinsics
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/179
SPIR-V already handled DSX/DSY, so only D3DBC/TPF needed new case blocks.
You'll notice that there's no test for this one - in addition to being a pretty straightforward translation for all possible formats, this feature uses the render target width/height and I wasn't sure if there was a good way to ensure that the test would always make sense.
Instead, I did the test manually, and it's what you'd expect (EDIT: Previously the test used a uniform which always optimized to 0, new test uses VPOS instead):
HLSL:
```
float4 main(float4 pos : sv_position) : sv_target
{
float4 x = ddx(pos.x);
float4 y = ddy(pos.y);
return x + y;
}
```
D3DBC:
```
ps_3_0
dcl_position0 vPos
mov r0.xyzw, vPos.xyzw
mov r1.x, r0.x
dsx r1.x, r1.x
mov r0.x, r0.yxxx
dsy r0.x, r0.x
mov r1.xyzw, r1.x
mov r0.xyzw, r0.x
add r0.xyzw, r1.xyzw, r0.xyzw
mov oC0.xyzw, r0.xyzw
```
DXBC-TPF:
```
ps_4_0
dcl_input_ps_siv linear v0.xyzw, position
dcl_output o0.xyzw
dcl_temps 2
mov r0.xyzw, v0.xyzw
mov r1.x, r0.x
dsx r1.x, r1.x
mov r0.x, r0.yxxx
dsy r0.x, r0.x
mov r1.xyzw, r1.x
mov r0.xyzw, r0.x
add r0.xyzw, r1.xyzw, r0.xyzw
mov o0.xyzw, r0.xyzw
ret
```
Fixes https://bugs.winehq.org/show_bug.cgi?id=54827
--
v3: tests: Add test for ddx(), ddy() intrinsics
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/179
--
v5: tests: Add a simple test for "discard".
tests: Remove rtv clears in Vulkan runner.
tests: Remove rtv clears in d3d12 runner.
vkd3d-shader/hlsl: Handle discard statement.
vkd3d-shader/trace: Add separate id for discard.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/136