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:
HLSL:
```
uniform float f;
float4 main() : sv_target
{
float4 x = ddx(f);
float4 y = ddy(f);
return x + y;
}
```
D3DBC:
```
ps_3_0
mov r0.x, c0.x
dsx r1.x, r0.x
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_constantBuffer cb0[1], immediateIndexed
dcl_output o0.xyzw
dcl_temps 2
mov r0.x, cb0[0].x
dsx r0.y, r0.x
dsy r0.x, r0.x
mov r1.xyzw, r0.y
mov r0.xyzw, r0.x
add r0.xyzw, r1.xyzw, r0.xyzw
mov o0.xyzw, r0.xyzw
ret
```
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/179
custom.c does not use the test.h and debug.h definitions and presumably has a good reason not to. But this resulted in the printf-format compiler attribute getting lost. So copy it from debug.h to allow proper checks of the ok_() format string.
Also fix said format strings.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2692
Mainly comprises support for allocating arrays of resources, and loading from them, for both SM1 and SM4.
--
v3: 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
This should finally fix the ref leaks that keep all gecko nsDocuments alive even on the most basic docs.
--
v2: mshtml/tests: Fix element leak in elem_fire_event.
mshtml: Pass actual node_ccp to ccref_decr for nodes.
mshtml: Fix nsChannel's load_info leak.
mshtml: Support cycle collection for nsChannel.
mshtml: Ensure SnowWhite objects are cleared when forcing cycle collection.
mshtml: Supply dummy logger when forcing cycle collection.
mshtml: Flush all gecko thread events after detaching Gecko browser.
mshtml: Fix nsProgressEvent leak for pre IE10 modes.
mshtml: Fix URI leak in NewURI on failure.
mshtml: Fix nsIFile dir leak in init_xpcom.
mshtml: Fix factory leak in init_nsio.
mshtml: Do not release the principal returned by GetPrincipal.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2691
On Mon Apr 24 17:46:10 2023 +0000, Nikolay Sivov wrote:
> Another option is to build separate modules with PARENTSRC. Was it dismissed?
Right, sorry, meant to mention that. I was trying to avoid having a multiple-megabyte copy of libxml2 in each msxml*.dll.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2700#note_31019
Currently, all the Wine msxml versions point to msxml3. So if there
is a native override for msxml3, all the other versions will cease to
work, since they expect our msxml3. This change moves the actual
implementation to winexml.dll, so that all versions will function
even if msxml3 is native.
Suggestions welcome. I wasn't quite sure what should end up where, so
I took the approach of only moving the absolutely necessary
components to winexml.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2700
Valgrind support requires a fork, which I've published to https://gitlab.winehq.org/rbernon/valgrind. The fork implements loading DWARF debug info from PE files, instead of the old and broken upstream PDB support. I've tried to upstream these changes a long time ago but didn't receive any feedback.
I think we could maybe consider keeping a fork, which I'm happy to maintain, as the changes aren't too large. We may want to investigate adding 32-on-64 support, which may require a bit more changes (to VEX specifically, because its amd64 guest doesn't support segment register manipulation).
The changes here are not all related to Valgrind, and I'll create separate MR for those which may make sense independently from Valgrind / GDB.
Also included is a suppression file to silent some annoying false positives, many of which are coming from the cross-stack accesses during syscalls, which are confusing Valgrind's stack heuristics. One can try this out with something like:
`WINELOADERNOEXEC=1 valgrind --suppressions=tools/valgrind.supp wine64/loader/wine64 wine64/programs/winecfg/winecfg.exe`
--
v6: ntdll: Avoid writing to invalid memory in i386 unix dispatcher.
ntdll: Set %rsp before args in x86_64 call_user_mode_callback.
ntdll: Fix incorrect i386 call_user_mode_callback CFI.
ntdll: Fix valgrind notifications from ntdll.so.
ntdll: Import valgrind headers for PE side ntdll.
ntdll: Allocate a truly separate stack for the kernel stack.
ntdll: Maintain a PE module link map and expose it to GDB.
ntdll: Pass a UNICODE_STRING to load_builtin and virtual_map_image.
loader: Expose a shadow copy of ld.so link map to GDB.
ntdll: Add .cfi_signal_frame to __wine_syscall_dispatcher.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1074