Rebase against b4a5556da983c7ebc8a25b228100c08947024c59.

This commit is contained in:
Alistair Leslie-Hughes 2022-08-16 10:15:01 +10:00
parent 552b03f70a
commit afbc5756c9
5 changed files with 9 additions and 86 deletions

View File

@ -51,7 +51,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "a1af412482d36c4046061faa676ff7bc774f40eb"
echo "b4a5556da983c7ebc8a25b228100c08947024c59"
}
# Show version information
@ -229,7 +229,6 @@ patch_enable_all ()
enable_wined3d_SWVP_shaders="$1"
enable_wined3d_Silence_FIXMEs="$1"
enable_wined3d_WINED3DFMT_B8G8R8X8_UNORM="$1"
enable_wined3d_adapter_create_output="$1"
enable_wined3d_bindless_texture="$1"
enable_wined3d_mesa_texture_download="$1"
enable_wined3d_rotate_WINED3D_SWAP_EFFECT_DISCARD="$1"
@ -712,9 +711,6 @@ patch_enable ()
wined3d-WINED3DFMT_B8G8R8X8_UNORM)
enable_wined3d_WINED3DFMT_B8G8R8X8_UNORM="$2"
;;
wined3d-adapter_create_output)
enable_wined3d_adapter_create_output="$2"
;;
wined3d-bindless-texture)
enable_wined3d_bindless_texture="$2"
;;
@ -3499,18 +3495,6 @@ if test "$enable_wined3d_WINED3DFMT_B8G8R8X8_UNORM" -eq 1; then
patch_apply wined3d-WINED3DFMT_B8G8R8X8_UNORM/0001-wined3d-Implement-WINED3DFMT_B8G8R8X8_UNORM-to-WINED.patch
fi
# Patchset wined3d-adapter_create_output
# |
# | This patchset fixes the following Wine bugs:
# | * [#53497] wined3d: Use wined3d_array_reserve() in wined3d_adapter_create_output()
# |
# | Modified files:
# | * dlls/wined3d/directx.c, dlls/wined3d/wined3d_private.h
# |
if test "$enable_wined3d_adapter_create_output" -eq 1; then
patch_apply wined3d-adapter_create_output/0001-wined3d-Use-wined3d_array_reserve-in-wined3d_adapter.patch
fi
# Patchset wined3d-bindless-texture
# |
# | This patchset fixes the following Wine bugs:

View File

@ -1,4 +1,4 @@
From bdef98a34241f02651374715cc03f90faef96bc0 Mon Sep 17 00:00:00 2001
From 0845b0fa1713fbab8494e7709c78b771db111286 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gabriel=20Iv=C4=83ncescu?= <gabrielopcode@gmail.com>
Date: Mon, 22 Jul 2019 15:29:25 +0300
Subject: [PATCH] user32/focus: Prevent a recursive loop with the activation
@ -34,7 +34,7 @@ index 63388e2250e..6ddac9cc7d3 100644
if (GetWindowLongW( hwnd, GWL_STYLE ) & WS_MINIMIZE)
diff --git a/dlls/win32u/input.c b/dlls/win32u/input.c
index a478a549fb2..ac0b51dfd73 100644
index bc5266d038f..e77875c3745 100644
--- a/dlls/win32u/input.c
+++ b/dlls/win32u/input.c
@@ -1569,7 +1569,7 @@ static BOOL set_active_window( HWND hwnd, HWND *prev, BOOL mouse, BOOL focus )
@ -53,7 +53,7 @@ index a478a549fb2..ac0b51dfd73 100644
- /* call CBT hook chain */
- cbt.fMouse = mouse;
- cbt.hWndActive = previous;
- if (call_hooks( WH_CBT, HCBT_ACTIVATE, (WPARAM)hwnd, (LPARAM)&cbt, TRUE )) return FALSE;
- if (call_hooks( WH_CBT, HCBT_ACTIVATE, (WPARAM)hwnd, (LPARAM)&cbt )) return FALSE;
-
- if (is_window( previous ))
+ /* Prevent a recursive activation loop with the activation messages */
@ -68,7 +68,7 @@ index a478a549fb2..ac0b51dfd73 100644
+ /* call CBT hook chain */
+ cbt.fMouse = mouse;
+ cbt.hWndActive = previous;
+ if (call_hooks( WH_CBT, HCBT_ACTIVATE, (WPARAM)hwnd, (LPARAM)&cbt, TRUE ))
+ if (call_hooks( WH_CBT, HCBT_ACTIVATE, (WPARAM)hwnd, (LPARAM)&cbt ))
+ goto clear_flags;
+
+ if (is_window(previous))
@ -83,7 +83,7 @@ index a478a549fb2..ac0b51dfd73 100644
@@ -1607,7 +1615,11 @@ static BOOL set_active_window( HWND hwnd, HWND *prev, BOOL mouse, BOOL focus )
if (send_message( hwnd, WM_QUERYNEWPALETTE, 0, 0 ))
send_message_timeout( HWND_BROADCAST, WM_PALETTEISCHANGING, (WPARAM)hwnd, 0,
SMTO_ABORTIFHUNG, 2000, NULL, FALSE );
SMTO_ABORTIFHUNG, 2000, FALSE );
- if (!is_window(hwnd)) return FALSE;
+ if (!is_window(hwnd))
+ {
@ -120,10 +120,10 @@ index a478a549fb2..ac0b51dfd73 100644
/**********************************************************************
diff --git a/dlls/win32u/ntuser_private.h b/dlls/win32u/ntuser_private.h
index 3ecd7424f77..cc27526235d 100644
index 9f93feea407..db5ef584fd8 100644
--- a/dlls/win32u/ntuser_private.h
+++ b/dlls/win32u/ntuser_private.h
@@ -105,6 +105,7 @@ typedef struct tagWND
@@ -104,6 +104,7 @@ typedef struct tagWND
#define WIN_NEEDS_SHOW_OWNEDPOPUP 0x0020 /* WM_SHOWWINDOW:SC_SHOW must be sent in the next ShowOwnedPopup call */
#define WIN_CHILDREN_MOVED 0x0040 /* children may have moved, ignore stored positions */
#define WIN_HAS_IME_WIN 0x0080 /* the window has been registered with imm32 */

View File

@ -1,58 +0,0 @@
From 58468f4759224dd9b71370a185c09ba9ee907d18 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 8 Aug 2022 17:27:47 +0000
Subject: [PATCH] wined3d: Use wined3d_array_reserve() in
wined3d_adapter_create_output().
This also has the effect of consistently zero-initializing the wined3d_output structure.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53497
---
dlls/wined3d/directx.c | 14 ++------------
dlls/wined3d/wined3d_private.h | 2 +-
2 files changed, 3 insertions(+), 13 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 20be9817158..1b6c44d95a5 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -3410,21 +3410,11 @@ static struct wined3d_adapter *wined3d_adapter_no3d_create(unsigned int ordinal,
static BOOL wined3d_adapter_create_output(struct wined3d_adapter *adapter, const WCHAR *output_name)
{
- struct wined3d_output *outputs;
HRESULT hr;
- if (!adapter->outputs && !(adapter->outputs = heap_calloc(1, sizeof(*adapter->outputs))))
- {
+ if (!wined3d_array_reserve((void **)&adapter->outputs, &adapter->outputs_size,
+ adapter->output_count + 1, sizeof(*adapter->outputs)))
return FALSE;
- }
- else
- {
- if (!(outputs = heap_realloc(adapter->outputs,
- sizeof(*adapter->outputs) * (adapter->output_count + 1))))
- return FALSE;
-
- adapter->outputs = outputs;
- }
if (FAILED(hr = wined3d_output_init(&adapter->outputs[adapter->output_count],
adapter->output_count, adapter, output_name)))
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index c529cd8efa6..3256d0aa9a6 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -3537,7 +3537,7 @@ struct wined3d_adapter
struct wined3d_d3d_info d3d_info;
struct wined3d_driver_info driver_info;
struct wined3d_output *outputs;
- unsigned int output_count;
+ SIZE_T output_count, outputs_size;
D3DKMT_HANDLE kmt_adapter;
UINT64 vram_bytes_used;
GUID driver_uuid;
--
2.35.1

View File

@ -1,3 +0,0 @@
Fixes: [53497] wined3d: Use wined3d_array_reserve() in wined3d_adapter_create_output()
# Fixes a regression for some applications failing to start
# Bug 52396 is an example.

View File

@ -1 +1 @@
8e27f6c2ef327d6d643e29a271245e76aa6f4792
b4a5556da983c7ebc8a25b228100c08947024c59