Commit Graph

155435 Commits

Author SHA1 Message Date
Jan Sikorski 8e0ab7363d wined3d: Implement event queries using Vulkan events.
This makes event results available sooner, i.e. after they are executed
by the GPU, and also moves the polling from CS to application's thread.

Signed-off-by: Jan Sikorski <jsikorski@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 20:33:00 +01:00
Jan Sikorski 1a7a50a140 wined3d: Poll Vulkan queries directly on the application thread.
We want to avoid using the poll list, for occlusion queries especially,
as in some games the number of occlusion queries can reach the hundreds.
OpenGL backend already does this by using ARB_QUERY_BUFFER_OBJECT.
We could mimic this in Vulkan too using compute shaders to accumulate
pending queries, however, unlike with OpenGL, we can also just directly
call vkGetQueryPoolResults() from the application's thread.
A downside of the approach taken here is that Vulkan queries allocated
to a wined3d_query are only released after the query is reused or
destroyed. In principle, if this ever becomes a problem, it could be
avoided by protecting the query pool with a mutex and releasing queries
after reading the results.

Signed-off-by: Jan Sikorski <jsikorski@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 20:32:57 +01:00
Jan Sikorski 7f1473e4be wined3d: Track pending Vulkan queries separately for each query.
This is mostly to enable polling queries from the application thread by
removing the need to access the shared context.

Signed-off-by: Jan Sikorski <jsikorski@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 20:32:54 +01:00
Jan Sikorski 9204569061 wined3d: Add poll_in_cs field to wined3d_query().
Its eventual purpose is to allow for skipping the poll list mechanism
by calling query_poll() in the application thread. In this patch it is
only used for when we don't have a separate CS thread.

Signed-off-by: Jan Sikorski <jsikorski@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 20:32:50 +01:00
Jacek Caban a58483c9b1 win32u: Move GetClassLong implementation from user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 20:32:12 +01:00
Jacek Caban 8fe050fbba win32u: Move NtUserSetClassLong from user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 20:32:02 +01:00
Jacek Caban 7c76aa05a9 win32u: Move class management implementation from user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 20:31:55 +01:00
Jacek Caban b1b0470083 user32: Store menu name as a struct.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 20:31:40 +01:00
Jacek Caban 0044b02d48 user32: Use UNICODE_STRING for passing window classes internally.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 20:31:35 +01:00
Jacek Caban 18697bb7b5 user32: Move module class registration to get_class_info.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 20:31:30 +01:00
Jacek Caban 7dfdf5a5ca user32: Use get_class_info for GetClasInfoEx implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 20:31:23 +01:00
Jacek Caban 5e75e5f66d user32: Introduce get_class_info.
And use it in WIN_CreateWindowEx to trigger class registration.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 20:31:15 +01:00
Francois Gouget ea79e50f98 windows.gaming.input: Add a linefeed to a TRACE() message.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 16:31:36 +01:00
Jactry Zeng f8426dbb3b d2d1: Add D2D1Shadow effect.
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 16:29:57 +01:00
Rémi Bernon e8dd8b0108 include: Add Windows.Devices.Power.IBatteryReport interface definition.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 11:23:42 +01:00
Alistair Leslie-Hughes a05ece8c51 include: Add IReference<T> interface.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 11:23:42 +01:00
Rémi Bernon aca853c73e windows.gaming.input: Add IGameControllerImpl undocumented interface declaration.
This is more likely some specialized interface of a parameterized type,
used to create mixin types, but we have no way and no clue where it
comes from or how it should be declared.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 11:23:42 +01:00
Rémi Bernon 00ff428b30 windows.gaming.input: Stub ICustomGameControllerFactory for Gamepad.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 11:23:42 +01:00
Rémi Bernon 5adbc011d9 windows.gaming.input: Stub ICustomGameControllerFactory for RawGameController.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 11:23:42 +01:00
Rémi Bernon 0d3c026bdb windows.gaming.input: Make QueryInterface implementations consistent.
When COM aggregation is involved it is important to add a reference to
the returned iface and not to the inner object.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 11:23:42 +01:00
Martin Storsjö ebe0fce6e4 configure: Tweak PE tools suggestion for ARM64.
llvm-mingw isn't strictly required - plain clang, llvm-dlltool and
lld also suffice. Those tools are commonly available in distribution
packages.

Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 11:23:42 +01:00
Santino Mazza 83bb9eb9aa bcrypt: Validate key size when importing RSA public key.
Signed-off-by: Santino Mazza <mazzasantino1206@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 11:21:43 +01:00
Christopher Egert 9799fa8009 gsm: Enable WAV49 support.
Fixes a regression introduced by 0e7fd41af9
causing missing audio elements in the 64k intros elysian by logicoma
and clean state by conspiracy.

Signed-off-by: Christopher Egert <cme3000@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 11:14:33 +01:00
Paul Gofman 18230d23c5 ws2_32: Base inet_addr() implementation on musl.
The imported algorithm is modified to match the tests.

Fixes a regression introduced by commit
671cf16f77.

Windows inet_addr() behaves basically the same as Unix
inet_addr() which is different from inet_pton().

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 21:10:40 +01:00
Rémi Bernon e171b58aae windows.gaming.input: Instantiate the WineGameControllerProvider runtimeclass.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 19:16:40 +01:00
Rémi Bernon 8b288980b2 dinput: Use a custom GUID to open a device from a device path.
So that we can access all the controller devices conveniently through
DInput without having to reimplement the whole HID client, or having
to enumerate the devices every time a new device needs to be open,
and being able to workaround the limitations of the device the XInput
controllers are usually exposing.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 19:16:40 +01:00
Rémi Bernon d6be529ce8 windows.gaming.input: Start a thread to monitor HID device addition and removal.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 19:16:40 +01:00
Rémi Bernon afaf061ede windows.gaming.input: Add an internal WineGameControllerProvider runtimeclass.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 19:16:39 +01:00
Martin Storsjö 482b6a6dea ntdll: Zero-initialize the syscall_frame used for starting threads on ARM/ARM64.
This fixes an inconsistency since
fed7e7a78b (ntdll: Simulate a syscall
return when starting a thread); in that commit, on i386 and
x86_64, the syscall_frame used for starting the thread was
zeroed with a memset, while it wasn't on arm and arm64.

This had a noticable effect on float maths, where the
uninitialized frame->restore_flags field could have the
CONTEXT_FLOATING_POINT bit set. (call_init_thunk only ORs in
CONTEXT_INTEGER into the restore_flags field, on all architectures).
If that bit was set, it would restore uninitialized data into the
fpscr register, possibly setting the FPU in a nondefault rounding
mode.

Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 19:14:59 +01:00
Jacek Caban 9b9d818252 user32: Ignore low instance word in find_class.
Like we do in wineserver.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 19:13:31 +01:00
Jacek Caban 7acd2f1ced user32: Store class instance as UINT_PTR.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 19:13:27 +01:00
Jacek Caban dc1f9a114b user32: Factor out find_class.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 19:13:23 +01:00
Jacek Caban cc4fb58d04 win32u: Move NtUserGetClassName implementation from user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 19:13:19 +01:00
Jacek Caban c722a0020b win32u: Implement NtUserGetAtomName.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 19:13:14 +01:00
Jacek Caban 77f3b54ef8 win32u: Move winproc array from user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 19:13:10 +01:00
Hans Leidekker 92821ebd49 crypt32: Add support for encoding OCSP requests.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 19:13:04 +01:00
Hans Leidekker 39d6ac0d9c include: Add OCSP definitions.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 19:12:57 +01:00
Brendan Shanks a906f13f77 ntdll: Ensure CONTEXT_EX on exception stack is initialized.
On non-AVX CPUs, CONTEXT_EX is not being initialized.
In WOW64 mode, this results in invalid exception records when
dispatch_wow_exception() uses RtlCopyContext().

Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 10:50:33 +01:00
Eric Pouech b73e310200 setupapi/tests: Enable compilation with long types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 10:07:51 +01:00
Eric Pouech 0e4c108490 setupapi/tests: Use correct integral type.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 10:07:45 +01:00
Eric Pouech 2add24bd7d serialui/tests: Enable compilation with long types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 10:07:37 +01:00
Eric Pouech a92db992c9 secur32/tests: Enable compilation with long types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 10:07:32 +01:00
Eric Pouech ff63f8165a scrobj/tests: Enable compilation with long types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 10:07:23 +01:00
Eric Pouech bb14e7b79f schedsvc/tests: Enable compilation with long types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 10:07:18 +01:00
Eric Pouech f953caf314 schannel/tests: Enable compilation with long types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 10:07:11 +01:00
Eric Pouech 0b3c158cb8 sapi/tests: Enable compilation with long types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 10:07:06 +01:00
Eric Pouech 18fe398290 rsaenh/tests: Enable compilation with long types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 10:06:59 +01:00
Eric Pouech c5a5143234 rpcrt4/tests: Enable compilation with long types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 10:06:50 +01:00
Eric Pouech 724dc6d53d riched32/tests: Enable compilation with long types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 10:06:41 +01:00
Eric Pouech 8c5a301deb rasapi32/tests: Enable compilation with long types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 10:06:33 +01:00