Commit graph

165491 commits

Author SHA1 Message Date
Alexandre Julliard 57bfaa7514 usbd.sys: Use nameless unions/structs. 2023-07-17 11:33:54 +02:00
Alexandre Julliard 72ee10b5d5 sane.ds: Use nameless unions/structs. 2023-07-17 11:33:39 +02:00
Alexandre Julliard fe8d66bf49 quartz: Use nameless unions/structs. 2023-07-17 11:33:22 +02:00
Alexandre Julliard 7dc37b2a09 prntvpt: Use nameless unions/structs. 2023-07-17 11:32:46 +02:00
Alexandre Julliard 1fba1185e4 pdh: Use nameless unions/structs. 2023-07-17 11:32:27 +02:00
Victor Chiletto fb296929f9 user32: Add hotpatch prologue to RegisterRawInputDevices.
re4_tweaks relies on this function being hotpatchable [1].

[1]: 7cfcf5c427/dllmain/input.cpp (L903)
2023-07-17 11:26:29 +02:00
Jinoh Kang 9de7c79153 winegcc: Enable SafeSEH only on i386.
SafeSEH is not applicable to architectures other than i386.

This fixes compiling with the clang ARM assembler, which cannot parse
".def @feat.00" since "@" is parsed as the start of a line comment.
2023-07-17 11:11:48 +02:00
Jinoh Kang 057467bff9 ntdll: Fix restoring X16 and X17 in ARM64 syscall dispatcher.
Today, NtContinue() on ARM64 does not restore X16 and X17 from the
context.

This is because the values for X16 and X17 are overwritten when the
current thread returns to the "user mode" (PE side) via
__wine_syscall_dispatcher, which in turn uses them as scratch registers
for restoring SP and PC respectively.

We cannot avoid using scratch registers when restoring SP and PC.  This
is because ARMv8 does not have an unprivileged (EL0) instruction that
loads SP and PC from memory or non-GPR architectural state.

Fix this by making ARM64 __wine_syscall_dispatcher perform a full
context restore via raise(SIGUSR2) when NtContinue() is used.

Since raising a signal is quite expensive, it should be done only when
necessary. To achieve this, split the ARM64 syscall dispatcher's
returning behaviour into a fast path (that does not involve signals) and
a slow path (that involves signals):

- If CONTEXT_INTEGER is not set, the dispatcher takes the fast path:
  the X16 and X17 registers are clobbered as usual.

- If X16 == PC and X17 == SP, the dispatcher also takes the fast path:
  it can safely use X16 and X17 without corrupting the register values,
  since those two registers already have the desired values.

  This fast path is used in call_user_apc_dispatcher(),
  call_user_exception_dispatcher(), and call_init_thunk().

- Otherwise, the dispatcher takes the slow path: it raises SIGUSR2 and
  does full context restore in the signal handler.

Fixes: 88e336214d
2023-07-17 11:11:44 +02:00
Nikolay Sivov 24557a257a d3dcompiler/tests: Add another test for matrix majority flags.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-07-17 09:40:34 +02:00
Alistair Leslie-Hughes 92f52d1eb4 gdiplus: Remove DECLSPEC_HIDDEN usage. 2023-07-17 09:40:20 +02:00
Alistair Leslie-Hughes 19c5016095 twain_32: Remove DECLSPEC_HIDDEN usage. 2023-07-17 09:40:20 +02:00
Bernhard Kölbl 91a84cff95 mfmediaengine: Add support for inserting audio effects. 2023-07-17 09:40:01 +02:00
Bernhard Kölbl 096b46cf8d mfmediaengine/tests: Add tests for audio effects. 2023-07-17 09:39:58 +02:00
Tim Clem 2238658e2f wmp: Release filter graph and interfaces if WMPControls::play fails. 2023-07-14 21:35:52 +02:00
Tim Clem 424994c933 wmp: Don't release a NULL typelib. 2023-07-14 21:35:52 +02:00
Tim Clem 710eec8fac shell32: Don't fall back to $HOME for missing user special folders.
Fall through in create_link and allow SHGetFolderPathAndSubDirW to
create an empty folder in place if the alternatives are not available.

Creating a link back to $HOME makes a recursive directory structure,
which results in crashes in programs that naively search %USERPROFILE%
(e.g. Quicken).
2023-07-14 20:32:39 +02:00
Biswapriyo Nath 788a61222c include: Add ID2D1DeviceContext4 in d2d1_3.idl. 2023-07-14 20:31:43 +02:00
Biswapriyo Nath a66504de8f include: Add ID2D1DeviceContext3 in d2d1_3.idl. 2023-07-14 20:31:42 +02:00
Biswapriyo Nath de1d097d29 include: Add ID2D1SvgGlyphStyle in d2d1_3.idl. 2023-07-14 20:31:41 +02:00
Biswapriyo Nath 70eb577f3e include: Add ID2D1SpriteBatch in d2d1_3.idl. 2023-07-14 20:31:39 +02:00
Zebediah Figura 166186ba46 wined3d: Move the wined3d_vk.h include to individual files. 2023-07-14 18:28:17 +02:00
Zebediah Figura 49e437a0c0 wined3d: Move vk_aspect_mask_from_format() functions to wined3d_vk.h. 2023-07-14 18:28:17 +02:00
Zebediah Figura e4e7c9b23f wined3d: Move remaining wined3d_context_vk functions to wined3d_vk.h. 2023-07-14 18:28:17 +02:00
Zebediah Figura e7de5a45a9 wined3d: Move struct wined3d_format_vk to wined3d_vk.h. 2023-07-14 18:28:17 +02:00
Zebediah Figura 85869cb78c wined3d: Move struct wined3d_swapchain_vk to wined3d_vk.h. 2023-07-14 18:28:17 +02:00
Zebediah Figura 63df7fc677 wined3d: Move struct wined3d_unordered_access_view_vk to wined3d_vk.h. 2023-07-14 18:28:17 +02:00
Hans Leidekker f74e119217 secur32/tests: Fix a test failure and extend tests.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55114
2023-07-14 13:25:43 +02:00
Alexandre Julliard ed4104d358 gitlab: Make sure that the tags are fetched before building. 2023-07-14 13:25:43 +02:00
Alexandre Julliard f082e4f216 oledlg: Use nameless unions/structs. 2023-07-14 09:26:44 +02:00
Alexandre Julliard 1ce80d35bc oledb32: Use nameless unions/structs. 2023-07-14 09:26:24 +02:00
Alexandre Julliard c94e218ff4 netprofm: Use nameless unions/structs. 2023-07-14 09:25:57 +02:00
Alexandre Julliard 6522c60fde netio.sys: Use nameless unions/structs. 2023-07-14 09:25:38 +02:00
Alexandre Julliard 240df39c1c ndis.sys: Use nameless unions/structs. 2023-07-14 09:25:19 +02:00
Alexandre Julliard 194b4025b0 msxml3: Use nameless unions/structs. 2023-07-14 09:24:57 +02:00
Alexandre Julliard 8de0a9dc74 msi: Use nameless unions/structs. 2023-07-14 09:24:29 +02:00
Alexandre Julliard 102a9bd94b mshtml: Use nameless unions/structs. 2023-07-14 09:24:17 +02:00
Alexandre Julliard 2ba8129ce0 mscoree: Use nameless unions/structs. 2023-07-14 09:24:05 +02:00
Zebediah Figura 59ecdbd43e opengl32: Correctly interpret glMapBuffer() access in wow64 mapping. 2023-07-14 09:15:10 +02:00
Zebediah Figura 77981d4548 opengl32: Copy to the wow64 buffer even for write maps.
GL_MAP_WRITE_BIT does not mean that the buffer will be filled, unless an
INVALIDATE bit is explicitly set. The application is free to partially update
the buffer, even if it does not read from it.

Thanks to Aida Jonikienė for doing most of the debugging here.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55045
2023-07-14 09:15:08 +02:00
Jinoh Kang 1fca47b724 msi: Don't open code dialog_add_control() in dialog_line_control().
Commit b1cc87cb65 ("msi: The line control has a height of exactly 2
device units.", 2007-12-16) open-coded the body of
(msi_)dialog_add_control() inside dialog_line_control() modulo the
height override.

Except the fixed height, line controls have nothing special compared to
other controls.  Thus, there is little merit in open-coding it.

Also, dialog_line_control() has bit-rotted over time; it already missed
a few changes that were done to any other controls.

Fix this by just using dialog_add_control().  Also, add a special case
logic just for line controls.
2023-07-14 09:14:33 +02:00
Jinoh Kang 3eceda2f2a msi: Make insertion order of line controls consistent with other controls.
Fixes: 2c5bd49297
2023-07-14 09:14:31 +02:00
Jinoh Kang 735584076e msi: Fully initialize the control structure in dialog_line_control().
Fixes: 76606eaea0
Fixes: 174b7b51ac
2023-07-14 09:14:28 +02:00
Jinoh Kang 548d7179e3 riched20: Don't call wrap_marked_paras_dc() before the editor is fully initialized.
Today, CreateTextServices() sometimes triggers an assertion failure in
select_style().

When ME_MakeEditor() calls ME_MakeFirstParagraph(), the editor
(ME_TextEditor) is not in a fully initialized state.  For example, the
font cache (pFontCache) is not fully initialized, which sometimes makes
select_style() believe that the cache slots are fully occupied.

Fix this by delaying the call to wrap_marked_paras_dc() until the editor
is fully initialized.

Also, delay the call to ITextHost::TxReleaseDC() until after
wrap_marked_paras_dc(), since we need the device context a bit longer.

Fixes: b70eb32c5f
2023-07-14 09:14:22 +02:00
Jinoh Kang 03036f42e1 riched20: Factor out device context acquisition from ME_MakeFirstParagraph.
This lets ME_MakeEditor() reuse the device context throughout the editor
initialization process.
2023-07-14 09:14:20 +02:00
Sven Baars 94d61d1b28 wow64win: Always use NtUserSetWindowLongPtr() for GWLP_HINSTANCE and GWLP_WNDPROC. 2023-07-13 23:42:46 +02:00
Jinoh Kang 86893ce299 ntdll: Fail loudly if RtlActivateActivationContextEx fails to allocate memory.
Many built-in callers of ActivateActCtx() just assume that it will
always succeed.  If it ever fails, then DeactivateActCtx() will notice
that the cookie is invalid and raise an exception anyway.
2023-07-13 23:42:46 +02:00
Giovanni Mascellani e77a9eda74 dxgi: Wait before acquiring the Vulkan queue for presenting.
The reason is explained in upstream commit
b2a1f6b5e4f59fbc7f91ada7e565639dcf4e8e7f, which also applies
to earlier vkd3d versions.
2023-07-13 23:42:46 +02:00
Giovanni Mascellani 23a1642673 dxgi: Acquire and release the Vulkan queue inside d3d12_swapchain_queue_present(). 2023-07-13 23:42:46 +02:00
Giovanni Mascellani 3dad51fba8 dxgi: Do not allow vkd3d_acquire_vk_queue() to fail.
The implementation even asserts its return value.
2023-07-13 23:42:46 +02:00
Giovanni Mascellani 060e9f7694 dxgi: Remove the worker event, which is now useless. 2023-07-13 23:42:46 +02:00