In preparation for nulldrv display modes support.
--
v7: win32u: Move display placement logic out of graphics drivers.
win32u: Move full display mode lookup out of graphics drivers.
win32u: Use current mode position if desired mode doesn't specify it.
win32u: Always copy devmode in validate_display_settings.
win32u: Read registry or current mode when validation needs it.
win32u: Do not keep display modes driver extra in the registry.
https://gitlab.winehq.org/wine/wine/-/merge_requests/576
Clang 16 is defaulting -Wincompatible-function-pointer-types to
an error instead of a warning. This isn't an issue for most of Wine,
but the error shows up in a lot of cases if doing a non-PE build for
ARM (32 bit, 64 has no such issues), in particular around the integration
of libxml2 and faudio.
The root cause of the issue is that some functions are specified with
e.g. __attribute__((pcs("aapcs-vfp"))) - which is equal to the
default calling convention when compiling with -mfloat-abi=hard - but
Clang's warning doesn't treat such function pointers as equal. (This
could maybe be considered a bug or limitation in Clang though.)
There's also some smaller amount of cases where our attributes
actually do conflict, where we mix __attribute__((pcs("aapcs"))), i.e.
arm softfloat calling convention, with the default calling convention
(which is set to hardfloat), but they drown in the noise from the
other ones.
Therefore, on arm, try to downgrade this diagnostic back to a warning,
not an error - while keeping the warnings visible.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/643
Don't assume that enums and uint32_t parameters are identical. Clang
16 changes the diagonstic for incompatible function pointer types
from a warning into an error by default.
This fixes the following error, when built (for aarch64, but probably
also for other architectures) in MSVC mode:
```
../src/libs/vkd3d/libs/vkd3d-shader/spirv.c:1083:13: error: incompatible function pointer types passing 'uint32_t (struct vkd3d_spirv_builder *, uint32_t, SpvDim, uint32_t, uint32_t, uint32_t, uint32_t, SpvImageFormat)' (aka 'unsigned int (struct vkd3d_spirv_builder *, unsigned int, enum SpvDim_, unsigned int, unsigned int, unsigned int, unsigned int, enum SpvImageFormat_)') to parameter of type 'vkd3d_spirv_build7_pfn' (aka 'unsigned int (*)(struct vkd3d_spirv_builder *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)') [-Wincompatible-function-pointer-types]
vkd3d_spirv_build_op_type_image);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/libs/vkd3d/libs/vkd3d-shader/spirv.c:612:68: note: passing argument to parameter 'build_pfn' here
SpvOp op, const uint32_t *operands, vkd3d_spirv_build7_pfn build_pfn)
^
```
--
v2: vkd3d-shader/spirv: Fix the signature of vkd3d_spirv_build_op_type_image
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/8
Don't assume that enums and uint32_t parameters are identical. Clang
16 changes the diagonstic for incompatible function pointer types
from a warning into an error by default.
This fixes the following error, when built (for aarch64, but probably
also for other architectures) in MSVC mode:
```
../src/libs/vkd3d/libs/vkd3d-shader/spirv.c:1083:13: error: incompatible function pointer types passing 'uint32_t (struct vkd3d_spirv_builder *, uint32_t, SpvDim, uint32_t, uint32_t, uint32_t, uint32_t, SpvImageFormat)' (aka 'unsigned int (struct vkd3d_spirv_builder *, unsigned int, enum SpvDim_, unsigned int, unsigned int, unsigned int, unsigned int, enum SpvImageFormat_)') to parameter of type 'vkd3d_spirv_build7_pfn' (aka 'unsigned int (*)(struct vkd3d_spirv_builder *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)') [-Wincompatible-function-pointer-types]
vkd3d_spirv_build_op_type_image);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/libs/vkd3d/libs/vkd3d-shader/spirv.c:612:68: note: passing argument to parameter 'build_pfn' here
SpvOp op, const uint32_t *operands, vkd3d_spirv_build7_pfn build_pfn)
^
```
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/8
--
v4: d3d9/tests: Add more tests for dirty rect handling.
d3d8/tests: Add more tests for dirty rect handling.
d3d8/tests: Read back directly from the specified surface if possible.
d3d9/tests: Expand tests for valid pools in UpdateTexture().
d3d8/tests: Expand tests for valid pools in UpdateTexture().
wined3d: Use wined3d_array_reserve() in wined3d_adapter_create_output().
https://gitlab.winehq.org/wine/wine/-/merge_requests/581