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