1
0
Fork 0
mirror of synced 2025-03-07 03:53:26 +01:00
Commit graph

190 commits

Author SHA1 Message Date
Rémi Bernon
4573910acc win32u: Move D3DKMT vulkan implementation out of winex11. 2024-03-26 22:46:05 +01:00
Rémi Bernon
dc9229e6fa winex11: Introduce a new find_adapter_from_handle helper. 2024-03-26 22:45:20 +01:00
Rémi Bernon
3686a04cdd winex11: Introduce a new get_vulkan_physical_device helper. 2024-03-26 22:45:18 +01:00
Rémi Bernon
3f5d18b3b6 winex11: Initialize D3DKMT vulkan instance only once.
Creating an instance is an expensive operation and we should avoid
constantly re-creating one when opening then closing a D3DKMT adapter.
2024-03-26 22:44:31 +01:00
Rémi Bernon
28873ce8c4 win32u: Move vulkan loading and init guard out of the drivers. 2024-03-22 17:05:31 +01:00
Rémi Bernon
00a541d6a0 win32u: Move D3DKMT VidPn* functions out of winex11. 2024-03-13 18:28:49 +01:00
Rémi Bernon
165830c317 winex11: Simplify XInput2 device valuator lookup.
Valuator names aren't well specified, and although they are usually
named "Rel X/Y" or "Abs X/Y", there are cases where the names are
different.

Lets just assume that the first two valuators are the X/Y axes, as it
seems to be generally the case.
2024-02-12 12:32:23 +01:00
Rémi Bernon
b7867059ce winex11: Initialize XInput2 extension on every thread. 2024-02-12 12:32:22 +01:00
Rémi Bernon
6c44228c1f winex11: Sync with gdi_display before closing the threads display. 2024-01-23 22:56:53 +01:00
Alexandre Julliard
5cd3861438 winex11.drv: Return result through NtCallbackReturn for the drag and drop callbacks. 2024-01-19 13:46:34 +01:00
Rémi Bernon
48e6bf3cf1 winex11: Use the new SystrayDock driver interface. 2023-12-01 19:09:14 +01:00
Alexandre Julliard
d76f5b4ab9 win32u: Use the correct length for kernel object names in object attributes. 2023-09-12 10:00:24 +02:00
Rémi Bernon
f47ed29260 win32u: Move grab_pointer registry option from winex11. 2023-06-12 21:21:42 +02:00
Akihiro Sagawa
dcb123fac8 winex11: Ignore BadWindow errors caused by XConfigureWindow.
This typically happens when resizing a D3D child window.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54810
2023-06-06 21:51:43 +02:00
Jacek Caban
8c5dd2214e win32u: Don't use CDECL for gdi_dc_funcs entries. 2023-05-31 12:48:52 +02:00
Rémi Bernon
4fcbbf8c9a winex11: Use the user driver interface to create host desktops. 2023-05-30 13:45:45 +02:00
Rémi Bernon
56d0b870b6 win32u: Introduce new NtUserNotifyIMEStatus syscall. 2023-05-10 21:21:25 +02:00
Rémi Bernon
4390b01176 winex11: Create the thread XFontSet on thread attach. 2023-04-03 16:56:18 +02:00
Rémi Bernon
ad5cb8305f winex11: Assume that Xkb extension is available. 2023-02-28 20:55:45 +01:00
Zhiyi Zhang
5c64b505c2 winex11.drv: Support _KDE_NET_WM_STATE_SKIP_SWITCHER.
KWin has a switcher that triggered by Alt+Tab that basically acts like a pager. And hiding items in
the switcher is controlled by _KDE_NET_WM_STATE_SKIP_SWITCHER.
2022-11-28 21:01:55 +01:00
Alexandre Julliard
7c9d04a4a7 winex11: Build without -DWINE_NO_LONG_TYPES. 2022-11-18 09:30:43 +01:00
Alexandre Julliard
0c68dde6e8 winex11: Fix int/long type mismatches. 2022-11-18 09:17:57 +01:00
Zhiyi Zhang
bd8ec8f264 winex11.drv: Support _NET_WM_FULLSCREEN_MONITORS.
Support _NET_WM_FULLSCREEN_MONITORS for fullscreen windows spanning multiple monitors. This property
is used to hint window managers about which monitor a fullscreen window should cover. Window managers
make a fullscreen window spanning multiple monitors cover only one monitor when this property is missing.

Fix Project Cars 2/3 incorrect game window size when the triple-screen mode is on.
2022-11-04 19:23:55 +01:00
Rémi Bernon
9062314aed winex11.drv: Use session BaseNamedObjects for display_device_init mutex.
The mutex is also used in user32, gdi32, and winevulkan, where it is
opened through kernel32, which opens it from the session directory.

Note that this was also not even using the global BaseNamedObjects and
was silently failing to open the mutex.
2022-10-19 18:48:30 +02:00
Jacek Caban
a34a403723 winex11: Implement wow64 thunks. 2022-08-18 21:42:32 +02:00
Jacek Caban
1e9390e558 win32u: Use platform-independent layout for ntuser_thread_info. 2022-08-09 15:55:43 +02:00
Jacek Caban
d246c1a1da winex11: Use __wine_unix_call. 2022-07-22 17:52:47 +02:00
Jacek Caban
b3fddeb8e4 win32u: Use syscall interface for NtUserMsgWaitForMultipleObjectsEx. 2022-07-21 23:03:29 +02:00
Zhiyi Zhang
d328af75fe winex11.drv: Don't compare error event serial if it's zero.
Sometimes error event serial is zero. For example, NVIDIA driver may send X_GLXCopyContext errors
with the event serial set to zero. When it's zero, previously the error handler passes the error
to the default error handler and cause application crashes.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
2022-07-13 15:08:20 +02:00
Zhiyi Zhang
18ae96e5fb winex11.drv: Lock display when expecting error events.
If the display is not locked, another thread could take the error event and handle it with the
default error handlers and thus not handled by the current thread with the specified error handlers.

Fix Cladun X2 crash at start.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
2022-07-13 15:08:20 +02:00
Rémi Bernon
d83fcafcd3 win32u: Move writing mode to registry out of graphics drivers.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
2022-07-07 11:20:15 +02:00
Zhiyi Zhang
00eff14f33 winex11.drv: Use a global Vulkan instance in X11DRV_D3DKMTOpenAdapterFromLuid().
This avoids opening multiple Vulkan instances when multiple D3D kernel mode adapters are open.
Some tests that leak reference to D3D adapters crash because of out of memory errors before this
patch.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53201
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53231
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53235
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
2022-07-01 16:12:09 +02:00
Jacek Caban
6f825503d9 winex11: Use ClipboardWindowProc driver entry point for clipboard manager.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
2022-05-31 22:52:45 +02:00
Alistair Leslie-Hughes
cf4a781e98 winex11.drv: Define ControlMask when not available.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
2022-05-25 18:25:43 +02:00
Zhiyi Zhang
8bc0c8d646 gdi32: Implement D3DKMTQueryVideoMemoryInfo().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-17 17:50:43 +02:00
Zhiyi Zhang
4a98b07c4b winex11.drv: Open a Vulkan device for D3DKMTOpenAdapterFromLuid().
The Vulkan device is used for querying video memory information for implementing
D3DKMTQueryVideoMemoryInfo().

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-17 17:50:36 +02:00
Jacek Caban
a3132f2906 winex11: Don't use unicode.h.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-06 19:18:23 +02:00
Jacek Caban
10f38c0600 winex11: Move user driver to unixlib.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-06 19:18:22 +02:00
Jacek Caban
21d269f2fc winex11: Use unixlib interface for systray docking.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-05 18:35:08 +02:00
Jacek Caban
e41630612b winex11: Use unixlib interface for X11 calls from systray.c.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-05 18:35:07 +02:00
Jacek Caban
040d1f9bbd winex11: Introduce x11drv_client_call.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-05 18:35:07 +02:00
Jacek Caban
a34669b238 winex11: Avoid using kernel32 functions in user driver.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-04 21:27:25 +02:00
Jacek Caban
1a89cea4f6 winex11: Avoid using kernel32 functions in get_config_key.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-04 21:27:25 +02:00
Jacek Caban
bf1d5d286b winex11: Use X11DRV_CALL for XIM calls.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-04 21:27:25 +02:00
Jacek Caban
095773b36a winex11: Introduce X11DRV_CALL macro.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-04 21:27:25 +02:00
Jacek Caban
a25519ecc6 winex11: Move DllMain to separated file.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-04 21:27:25 +02:00
Jacek Caban
c736411fb8 winex11: Directly use ntdll in more places.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-03 19:01:13 +02:00
Jacek Caban
ef8e4b7e3e winex11: Use libc for driver memory allocation.
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-04-25 20:34:55 +02:00
Jacek Caban
db9b7b0f51 winex11: Use TEB to store driver thread data.
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-04-19 17:36:52 +02:00
Jacek Caban
9a320b3938 winex11: Use pthread for error handler locking.
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-04-18 20:59:17 +02:00