From 9e6939027d0e5e44abc299d14ac67c8ef62a9bf3 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Tue, 19 Apr 2022 16:09:12 -0500 Subject: [PATCH] Rebase against 6d4ec1255acceec7152ed98764ee29991ac04f10. --- patches/patchinstall.sh | 2 +- ...a-default-vulkan-driver-if-one-not-f.patch | 33 ++++++++++------- ...01-winex11-Match-keyboard-in-Unicode.patch | 36 +++++++++---------- staging/upstream-commit | 2 +- 4 files changed, 40 insertions(+), 33 deletions(-) diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index d658b1ca..470a645f 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "e254680ed15f43409114881d8ed613aa4b0de944" + echo "6d4ec1255acceec7152ed98764ee29991ac04f10" } # Show version information diff --git a/patches/winex11-Vulkan_support/0001-winex11-Specify-a-default-vulkan-driver-if-one-not-f.patch b/patches/winex11-Vulkan_support/0001-winex11-Specify-a-default-vulkan-driver-if-one-not-f.patch index fccbec73..cadce12e 100644 --- a/patches/winex11-Vulkan_support/0001-winex11-Specify-a-default-vulkan-driver-if-one-not-f.patch +++ b/patches/winex11-Vulkan_support/0001-winex11-Specify-a-default-vulkan-driver-if-one-not-f.patch @@ -1,4 +1,4 @@ -From 3561f512f400ca1d049ac5ce26b9cbb6aac1dc31 Mon Sep 17 00:00:00 2001 +From b6c918acf5996c494bece9efb1439fe00b81a274 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Fri, 1 Jun 2018 14:03:26 +1000 Subject: [PATCH] winex11: Specify a default vulkan driver if one not found at @@ -7,11 +7,11 @@ Subject: [PATCH] winex11: Specify a default vulkan driver if one not found at We cannot specify it as a dependency since Debian Jessie has the vulkan library in backports and not everybody will have this mapped. --- - dlls/winex11.drv/vulkan.c | 35 ++++++++++++++--------------------- - 1 file changed, 14 insertions(+), 21 deletions(-) + dlls/winex11.drv/vulkan.c | 38 ++++++++++++++++---------------------- + 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/dlls/winex11.drv/vulkan.c b/dlls/winex11.drv/vulkan.c -index 4f6624b3db8..6e343f47f34 100644 +index f4fe202dfaf..1768444b2e5 100644 --- a/dlls/winex11.drv/vulkan.c +++ b/dlls/winex11.drv/vulkan.c @@ -40,10 +40,12 @@ @@ -26,19 +26,21 @@ index 4f6624b3db8..6e343f47f34 100644 +#define SONAME_LIBVULKAN "" +#endif + - static CRITICAL_SECTION context_section; - static CRITICAL_SECTION_DEBUG critsect_debug = - { -@@ -111,9 +113,17 @@ static void *vulkan_handle; + static pthread_mutex_t vulkan_mutex; - static BOOL WINAPI wine_vk_init(INIT_ONCE *once, void *param, void **context) + static XContext vulkan_hwnd_context; +@@ -104,14 +106,23 @@ static void *vulkan_handle; + + static void wine_vk_init(void) { -- if (!(vulkan_handle = dlopen(SONAME_LIBVULKAN, RTLD_NOW))) +- init_recursive_mutex(&vulkan_mutex); + const char *libvulkan_candidates[] = {SONAME_LIBVULKAN, + "libvulkan.so.1", + "libvulkan.so", + NULL}; + int i; + +- if (!(vulkan_handle = dlopen(SONAME_LIBVULKAN, RTLD_NOW))) + for (i=0; libvulkan_candidates[i] && !vulkan_handle; i++) + vulkan_handle = dlopen(libvulkan_candidates[i], RTLD_NOW); + @@ -46,10 +48,15 @@ index 4f6624b3db8..6e343f47f34 100644 { - ERR("Failed to load %s.\n", SONAME_LIBVULKAN); + ERR("Failed to load vulkan library\n"); - return TRUE; + return; } -@@ -735,20 +745,3 @@ const struct vulkan_funcs *get_vulkan_driver(UINT version) ++ init_recursive_mutex(&vulkan_mutex); ++ + #define LOAD_FUNCPTR(f) if (!(p##f = dlsym(vulkan_handle, #f))) goto fail + #define LOAD_OPTIONAL_FUNCPTR(f) p##f = dlsym(vulkan_handle, #f) + LOAD_FUNCPTR(vkCreateInstance); +@@ -731,20 +742,3 @@ const struct vulkan_funcs *get_vulkan_driver(UINT version) return NULL; } @@ -71,5 +78,5 @@ index 4f6624b3db8..6e343f47f34 100644 - -#endif /* SONAME_LIBVULKAN */ -- -2.33.0 +2.35.1 diff --git a/patches/winex11-key_translation/0001-winex11-Match-keyboard-in-Unicode.patch b/patches/winex11-key_translation/0001-winex11-Match-keyboard-in-Unicode.patch index 28eb253b..fef48a73 100644 --- a/patches/winex11-key_translation/0001-winex11-Match-keyboard-in-Unicode.patch +++ b/patches/winex11-key_translation/0001-winex11-Match-keyboard-in-Unicode.patch @@ -1,4 +1,4 @@ -From b3e883936f94d291de16a551df25ebaa544fd22d Mon Sep 17 00:00:00 2001 +From 3d65939dad82bdcac186866eaaa3123611090b05 Mon Sep 17 00:00:00 2001 From: Ken Thomases Date: Tue, 11 Dec 2018 08:30:41 +1100 Subject: [PATCH] winex11: Match keyboard in Unicode @@ -8,7 +8,7 @@ Subject: [PATCH] winex11: Match keyboard in Unicode 1 file changed, 97 insertions(+), 64 deletions(-) diff --git a/dlls/winex11.drv/keyboard.c b/dlls/winex11.drv/keyboard.c -index 4db0dafb4ee..cba0dd44736 100644 +index 786b6f4e084..c4d3b4ed8ce 100644 --- a/dlls/winex11.drv/keyboard.c +++ b/dlls/winex11.drv/keyboard.c @@ -37,6 +37,7 @@ @@ -19,16 +19,16 @@ index 4db0dafb4ee..cba0dd44736 100644 #define NONAMELESSUNION -@@ -76,7 +77,7 @@ static CRITICAL_SECTION_DEBUG critsect_debug = - }; - static CRITICAL_SECTION kbd_section = { &critsect_debug, -1, 0, 0, 0, 0 }; +@@ -69,7 +70,7 @@ static int NumLockMask, ScrollLockMask, AltGrMask; /* mask in the XKeyEvent stat + + static pthread_mutex_t kbd_mutex = PTHREAD_MUTEX_INITIALIZER; -static char KEYBOARD_MapDeadKeysym(KeySym keysym); +static WCHAR KEYBOARD_MapDeadKeysym(KeySym keysym); /* Keyboard translation tables */ #define MAIN_LEN 49 -@@ -1417,6 +1418,36 @@ BOOL X11DRV_KeyEvent( HWND hwnd, XEvent *xev ) +@@ -1409,6 +1410,36 @@ BOOL X11DRV_KeyEvent( HWND hwnd, XEvent *xev ) return TRUE; } @@ -65,7 +65,7 @@ index 4db0dafb4ee..cba0dd44736 100644 /********************************************************************** * X11DRV_KEYBOARD_DetectLayout * -@@ -1434,7 +1465,7 @@ X11DRV_KEYBOARD_DetectLayout( Display *display ) +@@ -1426,7 +1457,7 @@ X11DRV_KEYBOARD_DetectLayout( Display *display ) const char (*lkey)[MAIN_LEN][4]; unsigned max_seq = 0; int max_score = INT_MIN, ismatch = 0; @@ -74,7 +74,7 @@ index 4db0dafb4ee..cba0dd44736 100644 syms = keysyms_per_keycode; if (syms > 4) { -@@ -1447,35 +1478,25 @@ X11DRV_KEYBOARD_DetectLayout( Display *display ) +@@ -1439,35 +1470,25 @@ X11DRV_KEYBOARD_DetectLayout( Display *display ) /* get data for keycode from X server */ for (i = 0; i < syms; i++) { if (!(keysym = keycode_to_keysym (display, keyc, i))) continue; @@ -118,7 +118,7 @@ index 4db0dafb4ee..cba0dd44736 100644 for (keyc = min_keycode; keyc <= max_keycode; keyc++) { if (ckey[keyc][0]) { /* search for a match in layout table */ -@@ -1484,10 +1505,13 @@ X11DRV_KEYBOARD_DetectLayout( Display *display ) +@@ -1476,10 +1497,13 @@ X11DRV_KEYBOARD_DetectLayout( Display *display ) /* the table, it's okay that the X server has "3#£", for example) */ /* however, the score will be higher for longer matches */ for (key = 0; key < MAIN_LEN; key++) { @@ -135,7 +135,7 @@ index 4db0dafb4ee..cba0dd44736 100644 ok = -1; } if (ok > 0) { -@@ -1502,11 +1526,7 @@ X11DRV_KEYBOARD_DetectLayout( Display *display ) +@@ -1494,11 +1518,7 @@ X11DRV_KEYBOARD_DetectLayout( Display *display ) if (key > pkey) seq++; pkey = key; } else { @@ -148,7 +148,7 @@ index 4db0dafb4ee..cba0dd44736 100644 mismatch++; score -= syms; } -@@ -1576,9 +1596,11 @@ void X11DRV_InitKeyboard( Display *display ) +@@ -1568,9 +1588,11 @@ void X11DRV_InitKeyboard( Display *display ) XKeyEvent e2; WORD scan, vkey; int keyc, i, keyn, syms; @@ -161,7 +161,7 @@ index 4db0dafb4ee..cba0dd44736 100644 /* Ranges of OEM, function key, and character virtual key codes. * Don't include those handled specially in X11DRV_ToUnicodeEx and -@@ -1633,7 +1655,11 @@ void X11DRV_InitKeyboard( Display *display ) +@@ -1625,7 +1647,11 @@ void X11DRV_InitKeyboard( Display *display ) /* Detect the keyboard layout */ X11DRV_KEYBOARD_DetectLayout( display ); lkey = main_key_tab[kbd_layout].key; @@ -173,7 +173,7 @@ index 4db0dafb4ee..cba0dd44736 100644 /* Now build two conversion arrays : * keycode -> vkey + scancode + extended -@@ -1674,26 +1700,14 @@ void X11DRV_InitKeyboard( Display *display ) +@@ -1666,26 +1692,14 @@ void X11DRV_InitKeyboard( Display *display ) int maxlen=0,maxval=-1,ok; for (i=0; imaxlen)) { maxlen=i; maxval=keyn; -@@ -2256,7 +2270,7 @@ INT CDECL X11DRV_GetKeyNameText(LONG lParam, LPWSTR lpBuffer, INT nSize) +@@ -2237,7 +2251,7 @@ INT X11DRV_GetKeyNameText( LONG lParam, LPWSTR lpBuffer, INT nSize ) /*********************************************************************** * X11DRV_KEYBOARD_MapDeadKeysym */ @@ -214,7 +214,7 @@ index 4db0dafb4ee..cba0dd44736 100644 { switch (keysym) { -@@ -2266,65 +2280,84 @@ static char KEYBOARD_MapDeadKeysym(KeySym keysym) +@@ -2247,65 +2261,84 @@ static char KEYBOARD_MapDeadKeysym(KeySym keysym) #endif case 0x1000FE7E : /* Xfree's XK_Dtilde */ return '~'; /* '? */ @@ -314,7 +314,7 @@ index 4db0dafb4ee..cba0dd44736 100644 */ } TRACE("no character for dead keysym 0x%08lx\n",keysym); -@@ -2509,7 +2542,7 @@ INT CDECL X11DRV_ToUnicodeEx(UINT virtKey, UINT scanCode, const BYTE *lpKeyState +@@ -2490,7 +2523,7 @@ INT X11DRV_ToUnicodeEx( UINT virtKey, UINT scanCode, const BYTE *lpKeyState, if (ret == 0) { @@ -323,7 +323,7 @@ index 4db0dafb4ee..cba0dd44736 100644 #ifdef XK_EuroSign /* An ugly hack for EuroSign: X can't translate it to a character -@@ -2533,7 +2566,7 @@ INT CDECL X11DRV_ToUnicodeEx(UINT virtKey, UINT scanCode, const BYTE *lpKeyState +@@ -2514,7 +2547,7 @@ INT X11DRV_ToUnicodeEx( UINT virtKey, UINT scanCode, const BYTE *lpKeyState, dead_char = KEYBOARD_MapDeadKeysym(keysym); if (dead_char) { @@ -333,5 +333,5 @@ index 4db0dafb4ee..cba0dd44736 100644 goto found; } -- -2.30.2 +2.35.1 diff --git a/staging/upstream-commit b/staging/upstream-commit index 273c18c6..fc097471 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -e254680ed15f43409114881d8ed613aa4b0de944 +6d4ec1255acceec7152ed98764ee29991ac04f10