mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Rebase against upstream changes, remove some patches (accepted upstream).
This commit is contained in:
parent
525b5f5dd3
commit
d8651610cc
@ -119,7 +119,7 @@ Included bug fixes and improvements
|
||||
* Fix multithreading issues with fullscreen clipping ([Wine Bug #38087](https://bugs.winehq.org/show_bug.cgi?id=38087))
|
||||
* Fix possible segfault in pulse_rd_loop of PulseAudio backend
|
||||
* Fix race-condition when threads are killed during shutdown
|
||||
* Fix regression causing black screen on startup ([Wine Bug #38248](https://bugs.winehq.org/show_bug.cgi?id=38248))
|
||||
* ~~Fix regression causing black screen on startup~~ ([Wine Bug #38248](https://bugs.winehq.org/show_bug.cgi?id=38248))
|
||||
* Fix regression causing too dark/missing textures in several games ([Wine Bug #38256](https://bugs.winehq.org/show_bug.cgi?id=38256))
|
||||
* Fix return value of ScrollWindowEx for invisible windows ([Wine Bug #37706](https://bugs.winehq.org/show_bug.cgi?id=37706))
|
||||
* Fix texture corruption in CSI: Fatal Conspiracy ([Wine Bug #33768](https://bugs.winehq.org/show_bug.cgi?id=33768))
|
||||
|
4
debian/changelog
vendored
4
debian/changelog
vendored
@ -1,3 +1,7 @@
|
||||
wine-staging (1.7.40) UNRELEASED; urgency=low
|
||||
* Removed patch to fix regression causing black screen on startup (accepted upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Mon, 23 Mar 2015 16:12:20 +0100
|
||||
|
||||
wine-staging (1.7.39) unstable; urgency=low
|
||||
* Fix a build failure on MacOS caused by using of strndup in the server-Inherited_ACLs patchset.
|
||||
* Update patchset for ntdll-RtlUnwindEx to fix an issue with dwarf handling (fixes Wine Staging Bug #170).
|
||||
|
@ -1,26 +0,0 @@
|
||||
From 8b42b214de22c117d61f2e59f2f3708046e9c9d6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Fri, 20 Mar 2015 12:47:10 +0100
|
||||
Subject: ddraw: Update the palette before presents to the NULL window.
|
||||
|
||||
This fixes bug 38248.
|
||||
---
|
||||
dlls/ddraw/surface.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
|
||||
index b8c9872..0d2d731 100644
|
||||
--- a/dlls/ddraw/surface.c
|
||||
+++ b/dlls/ddraw/surface.c
|
||||
@@ -81,6 +81,8 @@ HRESULT ddraw_surface_update_frontbuffer(struct ddraw_surface *surface, const RE
|
||||
ERR("Failed to get surface DC, hr %#x.\n", hr);
|
||||
return hr;
|
||||
}
|
||||
+ if (surface->palette)
|
||||
+ wined3d_palette_apply_to_dc(surface->palette->wineD3DPalette, surface_dc);
|
||||
|
||||
if (!(screen_dc = GetDC(NULL)))
|
||||
{
|
||||
--
|
||||
2.3.2
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [38248] Fix regression causing black screen on startup
|
@ -1,33 +0,0 @@
|
||||
From 79843a592a6b6d7b68e933d19bc59490f276f510 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Fri, 20 Mar 2015 22:34:49 +0100
|
||||
Subject: gdiplus: Add missing returns in initialize_decoder_wic (Coverity).
|
||||
|
||||
---
|
||||
dlls/gdiplus/image.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c
|
||||
index 8eb1419..77b9305 100644
|
||||
--- a/dlls/gdiplus/image.c
|
||||
+++ b/dlls/gdiplus/image.c
|
||||
@@ -3425,13 +3425,13 @@ static GpStatus initialize_decoder_wic(IStream *stream, REFGUID container, IWICB
|
||||
TRACE("%p,%s\n", stream, wine_dbgstr_guid(container));
|
||||
|
||||
hr = WICCreateImagingFactory_Proxy(WINCODEC_SDK_VERSION, &factory);
|
||||
- if (FAILED(hr)) hresult_to_status(hr);
|
||||
+ if (FAILED(hr)) return hresult_to_status(hr);
|
||||
hr = IWICImagingFactory_CreateDecoder(factory, container, NULL, decoder);
|
||||
IWICImagingFactory_Release(factory);
|
||||
- if (FAILED(hr)) hresult_to_status(hr);
|
||||
+ if (FAILED(hr)) return hresult_to_status(hr);
|
||||
|
||||
hr = IWICBitmapDecoder_Initialize(*decoder, stream, WICDecodeMetadataCacheOnLoad);
|
||||
- if (FAILED(hr)) hresult_to_status(hr);
|
||||
+ if (FAILED(hr)) return hresult_to_status(hr);
|
||||
return Ok;
|
||||
}
|
||||
|
||||
--
|
||||
2.3.2
|
||||
|
@ -92,7 +92,6 @@ patch_enable_all ()
|
||||
enable_d3dx9_36_UpdateSkinnedMesh="$1"
|
||||
enable_dbghelp_Debug_Symbols="$1"
|
||||
enable_ddraw_Hotpatch="$1"
|
||||
enable_ddraw_Palette="$1"
|
||||
enable_ddraw_d3d_execute_buffer="$1"
|
||||
enable_dinput_Events="$1"
|
||||
enable_dsound_Fast_Mixer="$1"
|
||||
@ -101,7 +100,6 @@ patch_enable_all ()
|
||||
enable_fonts_Missing_Fonts="$1"
|
||||
enable_gdi32_MaxPixelFormats="$1"
|
||||
enable_gdi32_MultiMonitor="$1"
|
||||
enable_gdiplus_Coverity="$1"
|
||||
enable_gdiplus_GdipCreateEffect="$1"
|
||||
enable_gdiplus_GdipCreateRegionRgnData="$1"
|
||||
enable_imagehlp_BindImageEx="$1"
|
||||
@ -204,7 +202,6 @@ patch_enable_all ()
|
||||
enable_user32_Painting="$1"
|
||||
enable_user32_ScrollWindowEx="$1"
|
||||
enable_user32_WndProc="$1"
|
||||
enable_user32_user_thread_info="$1"
|
||||
enable_vcomp_Stub_Functions="$1"
|
||||
enable_version_VerQueryValue="$1"
|
||||
enable_version_VersionInfoEx="$1"
|
||||
@ -337,9 +334,6 @@ patch_enable ()
|
||||
ddraw-Hotpatch)
|
||||
enable_ddraw_Hotpatch="$2"
|
||||
;;
|
||||
ddraw-Palette)
|
||||
enable_ddraw_Palette="$2"
|
||||
;;
|
||||
ddraw-d3d_execute_buffer)
|
||||
enable_ddraw_d3d_execute_buffer="$2"
|
||||
;;
|
||||
@ -364,9 +358,6 @@ patch_enable ()
|
||||
gdi32-MultiMonitor)
|
||||
enable_gdi32_MultiMonitor="$2"
|
||||
;;
|
||||
gdiplus-Coverity)
|
||||
enable_gdiplus_Coverity="$2"
|
||||
;;
|
||||
gdiplus-GdipCreateEffect)
|
||||
enable_gdiplus_GdipCreateEffect="$2"
|
||||
;;
|
||||
@ -673,9 +664,6 @@ patch_enable ()
|
||||
user32-WndProc)
|
||||
enable_user32_WndProc="$2"
|
||||
;;
|
||||
user32-user_thread_info)
|
||||
enable_user32_user_thread_info="$2"
|
||||
;;
|
||||
vcomp-Stub_Functions)
|
||||
enable_vcomp_Stub_Functions="$2"
|
||||
;;
|
||||
@ -1042,13 +1030,6 @@ if test "$enable_server_Shared_Memory" -eq 1; then
|
||||
enable_user32_Key_State=1
|
||||
fi
|
||||
|
||||
if test "$enable_user32_Key_State" -eq 1; then
|
||||
if test "$enable_user32_user_thread_info" -gt 1; then
|
||||
abort "Patchset user32-user_thread_info disabled, but user32-Key_State depends on that."
|
||||
fi
|
||||
enable_user32_user_thread_info=1
|
||||
fi
|
||||
|
||||
if test "$enable_server_JobObjects" -eq 1; then
|
||||
if test "$enable_kernel32_Console_Handles" -gt 1; then
|
||||
abort "Patchset kernel32-Console_Handles disabled, but server-JobObjects depends on that."
|
||||
@ -1758,21 +1739,6 @@ if test "$enable_ddraw_Hotpatch" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ddraw-Palette
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#38248] Fix regression causing black screen on startup
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ddraw/surface.c
|
||||
# |
|
||||
if test "$enable_ddraw_Palette" -eq 1; then
|
||||
patch_apply ddraw-Palette/0001-ddraw-Update-the-palette-before-presents-to-the-NULL.patch
|
||||
(
|
||||
echo '+ { "Stefan Dösinger", "ddraw: Update the palette before presents to the NULL window.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ddraw-d3d_execute_buffer
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -1834,6 +1800,18 @@ if test "$enable_dxgi_GetDesc" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset makedep-PARENTSPEC
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * tools/makedep.c
|
||||
# |
|
||||
if test "$enable_makedep_PARENTSPEC" -eq 1; then
|
||||
patch_apply makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "makedep: Add support for PARENTSPEC Makefile variable.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-DllRedirects
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -1854,18 +1832,6 @@ if test "$enable_ntdll_DllRedirects" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset makedep-PARENTSPEC
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * tools/makedep.c
|
||||
# |
|
||||
if test "$enable_makedep_PARENTSPEC" -eq 1; then
|
||||
patch_apply makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "makedep: Add support for PARENTSPEC Makefile variable.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-CSMT_Helper
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -1882,6 +1848,36 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-Multisampling
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#12652] Allow to override number of quality levels for D3DMULTISAMPLE_NONMASKABLE.
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/wined3d/directx.c, dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h
|
||||
# |
|
||||
if test "$enable_wined3d_Multisampling" -eq 1; then
|
||||
patch_apply wined3d-Multisampling/0001-wined3d-Allow-to-specify-multisampling-AA-quality-le.patch
|
||||
(
|
||||
echo '+ { "Austin English", "wined3d: Allow to specify multisampling AA quality levels via registry.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-NormalMatrix
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#38256] Fix regression causing too dark/missing textures in several games
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/wined3d/glsl_shader.c
|
||||
# |
|
||||
if test "$enable_wined3d_NormalMatrix" -eq 1; then
|
||||
patch_apply wined3d-NormalMatrix/0001-wined3d-Don-t-use-the-builtin-FFP-uniform-for-the-no.patch
|
||||
(
|
||||
echo '+ { "Matteo Bruni", "wined3d: Don'\''t use the builtin FFP uniform for the normal matrix.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-Revert_PixelFormat
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -1928,36 +1924,6 @@ if test "$enable_wined3d_UnhandledBlendFactor" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-Multisampling
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#12652] Allow to override number of quality levels for D3DMULTISAMPLE_NONMASKABLE.
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/wined3d/directx.c, dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h
|
||||
# |
|
||||
if test "$enable_wined3d_Multisampling" -eq 1; then
|
||||
patch_apply wined3d-Multisampling/0001-wined3d-Allow-to-specify-multisampling-AA-quality-le.patch
|
||||
(
|
||||
echo '+ { "Austin English", "wined3d: Allow to specify multisampling AA quality levels via registry.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-NormalMatrix
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#38256] Fix regression causing too dark/missing textures in several games
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/wined3d/glsl_shader.c
|
||||
# |
|
||||
if test "$enable_wined3d_NormalMatrix" -eq 1; then
|
||||
patch_apply wined3d-NormalMatrix/0001-wined3d-Don-t-use-the-builtin-FFP-uniform-for-the-no.patch
|
||||
(
|
||||
echo '+ { "Matteo Bruni", "wined3d: Don'\''t use the builtin FFP uniform for the normal matrix.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-CSMT_Main
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -2434,18 +2400,6 @@ if test "$enable_gdi32_MultiMonitor" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset gdiplus-Coverity
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/gdiplus/image.c
|
||||
# |
|
||||
if test "$enable_gdiplus_Coverity" -eq 1; then
|
||||
patch_apply gdiplus-Coverity/0001-gdiplus-Add-missing-returns-in-initialize_decoder_wi.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "gdiplus: Add missing returns in initialize_decoder_wic (Coverity).", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset gdiplus-GdipCreateEffect
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -2535,22 +2489,6 @@ if test "$enable_kernel32_Console_Handles" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset kernel32-SetFileInformationByHandle
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/kernel32/file.c, dlls/ntdll/file.c, include/winbase.h, include/winternl.h
|
||||
# |
|
||||
if test "$enable_kernel32_SetFileInformationByHandle" -eq 1; then
|
||||
patch_apply kernel32-SetFileInformationByHandle/0001-ntdll-Define-a-couple-more-information-classes.patch
|
||||
patch_apply kernel32-SetFileInformationByHandle/0002-include-Declare-a-couple-more-file-information-class.patch
|
||||
patch_apply kernel32-SetFileInformationByHandle/0003-kernel32-Implement-SetFileInformationByHandle.patch
|
||||
(
|
||||
echo '+ { "Michael Müller", "ntdll: Define a couple more information classes.", 1 },';
|
||||
echo '+ { "Michael Müller", "include: Declare a couple more file information class structures.", 1 },';
|
||||
echo '+ { "Michael Müller", "kernel32: Implement SetFileInformationByHandle.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-FileDispositionInformation
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -2570,6 +2508,22 @@ if test "$enable_ntdll_FileDispositionInformation" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset kernel32-SetFileInformationByHandle
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/kernel32/file.c, dlls/ntdll/file.c, include/winbase.h, include/winternl.h
|
||||
# |
|
||||
if test "$enable_kernel32_SetFileInformationByHandle" -eq 1; then
|
||||
patch_apply kernel32-SetFileInformationByHandle/0001-ntdll-Define-a-couple-more-information-classes.patch
|
||||
patch_apply kernel32-SetFileInformationByHandle/0002-include-Declare-a-couple-more-file-information-class.patch
|
||||
patch_apply kernel32-SetFileInformationByHandle/0003-kernel32-Implement-SetFileInformationByHandle.patch
|
||||
(
|
||||
echo '+ { "Michael Müller", "ntdll: Define a couple more information classes.", 1 },';
|
||||
echo '+ { "Michael Müller", "include: Declare a couple more file information class structures.", 1 },';
|
||||
echo '+ { "Michael Müller", "kernel32: Implement SetFileInformationByHandle.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset kernel32-CopyFileEx
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -3835,18 +3789,6 @@ if test "$enable_server_PeekMessage" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset user32-user_thread_info
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/user32/user_private.h
|
||||
# |
|
||||
if test "$enable_user32_user_thread_info" -eq 1; then
|
||||
patch_apply user32-user_thread_info/0001-user32-Fix-padding-in-user_thread_info-structure.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "user32: Fix padding in user_thread_info structure.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset user32-Key_State
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
|
@ -1,18 +1,18 @@
|
||||
From 4b29ed2fba176d974a44a242edf0a5038c8da862 Mon Sep 17 00:00:00 2001
|
||||
From 31c45fb6cbf00ef56b370569e2079f681bb91cd1 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 19 Mar 2015 02:07:24 +0100
|
||||
Subject: user32: Avoid unnecessary wineserver calls in PeekMessage/GetMessage.
|
||||
|
||||
---
|
||||
dlls/user32/message.c | 13 +++++++++++++
|
||||
dlls/user32/user_private.h | 3 ++-
|
||||
2 files changed, 15 insertions(+), 1 deletion(-)
|
||||
dlls/user32/user_private.h | 1 +
|
||||
2 files changed, 14 insertions(+)
|
||||
|
||||
diff --git a/dlls/user32/message.c b/dlls/user32/message.c
|
||||
index d59e342..4bc17e9 100644
|
||||
index c28a2fe..1afef9f 100644
|
||||
--- a/dlls/user32/message.c
|
||||
+++ b/dlls/user32/message.c
|
||||
@@ -2734,6 +2734,18 @@ static BOOL peek_message( MSG *msg, HWND hwnd, UINT first, UINT last, UINT flags
|
||||
@@ -2740,6 +2740,18 @@ static BOOL peek_message( MSG *msg, HWND hwnd, UINT first, UINT last, UINT flags
|
||||
unsigned int hw_id = 0; /* id of previous hardware message */
|
||||
void *buffer;
|
||||
size_t buffer_size = 256;
|
||||
@ -31,7 +31,7 @@ index d59e342..4bc17e9 100644
|
||||
|
||||
if (!(buffer = HeapAlloc( GetProcessHeap(), 0, buffer_size ))) return FALSE;
|
||||
|
||||
@@ -2746,6 +2758,7 @@ static BOOL peek_message( MSG *msg, HWND hwnd, UINT first, UINT last, UINT flags
|
||||
@@ -2752,6 +2764,7 @@ static BOOL peek_message( MSG *msg, HWND hwnd, UINT first, UINT last, UINT flags
|
||||
size_t size = 0;
|
||||
const message_data_t *msg_data = buffer;
|
||||
|
||||
@ -40,20 +40,17 @@ index d59e342..4bc17e9 100644
|
||||
{
|
||||
req->flags = flags;
|
||||
diff --git a/dlls/user32/user_private.h b/dlls/user32/user_private.h
|
||||
index 01a19bf..adf73ff 100644
|
||||
index 4380a00..47d0194 100644
|
||||
--- a/dlls/user32/user_private.h
|
||||
+++ b/dlls/user32/user_private.h
|
||||
@@ -191,8 +191,9 @@ struct user_thread_info
|
||||
HWND msg_window; /* HWND_MESSAGE parent window */
|
||||
RAWINPUT *rawinput;
|
||||
@@ -184,6 +184,7 @@ struct user_thread_info
|
||||
DWORD GetMessagePosVal; /* Value for GetMessagePos */
|
||||
ULONG_PTR GetMessageExtraInfoVal; /* Value for GetMessageExtraInfo */
|
||||
UINT active_hooks; /* Bitmap of active hooks */
|
||||
+ DWORD last_get_msg; /* Last time of Get/PeekMessage call */
|
||||
UINT key_state_time; /* Time of last key state refresh */
|
||||
INT key_state_epoch; /* Counter to invalidate the key state */
|
||||
+ DWORD last_get_msg; /* Last message time */
|
||||
|
||||
- ULONG pad[4]; /* Available for more data */
|
||||
+ ULONG pad[3]; /* Available for more data */
|
||||
};
|
||||
#include <poppack.h>
|
||||
|
||||
BYTE *key_state; /* Cache of global key state */
|
||||
--
|
||||
2.3.2
|
||||
2.3.3
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 66fe18ed16b77c3f69511ea9b41e6ed729624fcd Mon Sep 17 00:00:00 2001
|
||||
From 90da927ddf6f978c437aaa66b9e276dd41746415 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 21 Mar 2015 08:09:03 +0100
|
||||
Subject: user32: Move key_state cache into separate structure.
|
||||
@ -8,9 +8,9 @@ into the allocated memory block.
|
||||
---
|
||||
dlls/user32/input.c | 26 +++++++++++++++++---------
|
||||
dlls/user32/message.c | 9 +++++----
|
||||
dlls/user32/user_private.h | 17 ++++++++++++-----
|
||||
dlls/user32/user_private.h | 11 ++++++++---
|
||||
dlls/user32/winstation.c | 3 ++-
|
||||
4 files changed, 36 insertions(+), 19 deletions(-)
|
||||
4 files changed, 32 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/dlls/user32/input.c b/dlls/user32/input.c
|
||||
index 2512887..8608f75 100644
|
||||
@ -68,10 +68,10 @@ index 2512887..8608f75 100644
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
diff --git a/dlls/user32/message.c b/dlls/user32/message.c
|
||||
index 4bc17e9..33e826e 100644
|
||||
index 1afef9f..da83d16 100644
|
||||
--- a/dlls/user32/message.c
|
||||
+++ b/dlls/user32/message.c
|
||||
@@ -3304,6 +3304,7 @@ static BOOL send_message( struct send_message_info *info, DWORD_PTR *res_ptr, BO
|
||||
@@ -3310,6 +3310,7 @@ static BOOL send_message( struct send_message_info *info, DWORD_PTR *res_ptr, BO
|
||||
NTSTATUS send_hardware_message( HWND hwnd, const INPUT *input, UINT flags )
|
||||
{
|
||||
struct user_thread_info *thread_info = get_user_thread_info();
|
||||
@ -79,7 +79,7 @@ index 4bc17e9..33e826e 100644
|
||||
struct send_message_info info;
|
||||
int prev_x, prev_y, new_x, new_y;
|
||||
NTSTATUS ret;
|
||||
@@ -3343,7 +3344,7 @@ NTSTATUS send_hardware_message( HWND hwnd, const INPUT *input, UINT flags )
|
||||
@@ -3349,7 +3350,7 @@ NTSTATUS send_hardware_message( HWND hwnd, const INPUT *input, UINT flags )
|
||||
req->input.hw.lparam = MAKELONG( input->u.hi.wParamL, input->u.hi.wParamH );
|
||||
break;
|
||||
}
|
||||
@ -88,7 +88,7 @@ index 4bc17e9..33e826e 100644
|
||||
ret = wine_server_call( req );
|
||||
wait = reply->wait;
|
||||
prev_x = reply->prev_x;
|
||||
@@ -3355,10 +3356,10 @@ NTSTATUS send_hardware_message( HWND hwnd, const INPUT *input, UINT flags )
|
||||
@@ -3361,10 +3362,10 @@ NTSTATUS send_hardware_message( HWND hwnd, const INPUT *input, UINT flags )
|
||||
|
||||
if (!ret)
|
||||
{
|
||||
@ -103,31 +103,24 @@ index 4bc17e9..33e826e 100644
|
||||
if ((flags & SEND_HWMSG_INJECTED) && (prev_x != new_x || prev_y != new_y))
|
||||
USER_Driver->pSetCursorPos( new_x, new_y );
|
||||
diff --git a/dlls/user32/user_private.h b/dlls/user32/user_private.h
|
||||
index adf73ff..a35ebf3 100644
|
||||
index 47d0194..53ebca8 100644
|
||||
--- a/dlls/user32/user_private.h
|
||||
+++ b/dlls/user32/user_private.h
|
||||
@@ -184,19 +184,26 @@ struct user_thread_info
|
||||
DWORD GetMessageTimeVal; /* Value for GetMessageTime */
|
||||
DWORD GetMessagePosVal; /* Value for GetMessagePos */
|
||||
@@ -185,9 +185,7 @@ struct user_thread_info
|
||||
ULONG_PTR GetMessageExtraInfoVal; /* Value for GetMessageExtraInfo */
|
||||
- UINT active_hooks; /* Bitmap of active hooks */
|
||||
UINT active_hooks; /* Bitmap of active hooks */
|
||||
DWORD last_get_msg; /* Last time of Get/PeekMessage call */
|
||||
- UINT key_state_time; /* Time of last key state refresh */
|
||||
- INT key_state_epoch; /* Counter to invalidate the key state */
|
||||
- BYTE *key_state; /* Cache of global key state */
|
||||
+ struct user_key_state_info *key_state; /* Cache of global key state */
|
||||
HWND top_window; /* Desktop window */
|
||||
HWND msg_window; /* HWND_MESSAGE parent window */
|
||||
RAWINPUT *rawinput;
|
||||
- INT key_state_epoch; /* Counter to invalidate the key state */
|
||||
+ struct user_key_state_info *key_state; /* Cache of global key state */
|
||||
+ UINT active_hooks; /* Bitmap of active hooks */
|
||||
DWORD last_get_msg; /* Last message time */
|
||||
@@ -195,6 +193,13 @@ struct user_thread_info
|
||||
|
||||
- ULONG pad[3]; /* Available for more data */
|
||||
+ ULONG pad[5]; /* Available for more data */
|
||||
};
|
||||
#include <poppack.h>
|
||||
C_ASSERT( sizeof(struct user_thread_info) <= sizeof(((TEB *)0)->Win32ClientInfo) );
|
||||
|
||||
+C_ASSERT( sizeof(struct user_thread_info) <= sizeof(((TEB *)0)->Win32ClientInfo) );
|
||||
+
|
||||
+struct user_key_state_info
|
||||
+{
|
||||
+ UINT key_state_time; /* Time of last key state refresh */
|
||||
@ -155,5 +148,5 @@ index 12b9edc..0e8260a 100644
|
||||
return ret;
|
||||
}
|
||||
--
|
||||
2.3.2
|
||||
2.3.3
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 8d67b53668f39c8684ddc8be8937f70eb50774df Mon Sep 17 00:00:00 2001
|
||||
From c7950e405445d69a0dd27dd515fda834e31d82c5 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 21 Mar 2015 22:35:24 +0100
|
||||
Subject: user32: Cache the result of GetForegroundWindow.
|
||||
|
||||
---
|
||||
dlls/user32/focus.c | 21 ++++++++++++++++++++-
|
||||
dlls/user32/user_private.h | 4 +++-
|
||||
dlls/user32/user_private.h | 2 ++
|
||||
server/protocol.def | 5 ++++-
|
||||
server/queue.c | 10 +++++++++-
|
||||
4 files changed, 36 insertions(+), 4 deletions(-)
|
||||
4 files changed, 35 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/user32/focus.c b/dlls/user32/focus.c
|
||||
index 35fe89b..8b17d1f 100644
|
||||
@ -48,21 +48,18 @@ index 35fe89b..8b17d1f 100644
|
||||
SERVER_END_REQ;
|
||||
return ret;
|
||||
diff --git a/dlls/user32/user_private.h b/dlls/user32/user_private.h
|
||||
index a35ebf3..7752416 100644
|
||||
index 53ebca8..0398b10 100644
|
||||
--- a/dlls/user32/user_private.h
|
||||
+++ b/dlls/user32/user_private.h
|
||||
@@ -190,8 +190,10 @@ struct user_thread_info
|
||||
struct user_key_state_info *key_state; /* Cache of global key state */
|
||||
UINT active_hooks; /* Bitmap of active hooks */
|
||||
DWORD last_get_msg; /* Last message time */
|
||||
@@ -189,6 +189,8 @@ struct user_thread_info
|
||||
HWND top_window; /* Desktop window */
|
||||
HWND msg_window; /* HWND_MESSAGE parent window */
|
||||
RAWINPUT *rawinput;
|
||||
+ HWND foreground_wnd; /* Cache of the foreground window */
|
||||
+ DWORD foreground_wnd_epoch; /* Counter to invalidate foreground window */
|
||||
|
||||
- ULONG pad[5]; /* Available for more data */
|
||||
+ ULONG pad[2]; /* Available for more data */
|
||||
};
|
||||
#include <poppack.h>
|
||||
|
||||
C_ASSERT( sizeof(struct user_thread_info) <= sizeof(((TEB *)0)->Win32ClientInfo) );
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index 7eaa6cd..c770644 100644
|
||||
--- a/server/protocol.def
|
||||
@ -119,5 +116,5 @@ index 6fa076d..764ba11 100644
|
||||
else set_error( STATUS_INVALID_HANDLE );
|
||||
}
|
||||
--
|
||||
2.3.2
|
||||
2.3.3
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From d24be9691751b300e10783f66f911a55709f9331 Mon Sep 17 00:00:00 2001
|
||||
From 3f119545bac640a7a65b609ddaa0b82f4725a3f0 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 14 Jul 2014 05:06:40 +0200
|
||||
Subject: user32: After calling LL hooks the key state cache has to be
|
||||
@ -8,8 +8,8 @@ Subject: user32: After calling LL hooks the key state cache has to be
|
||||
dlls/user32/hook.c | 2 +-
|
||||
dlls/user32/input.c | 8 ++++++--
|
||||
dlls/user32/message.c | 7 ++++++-
|
||||
dlls/user32/user_private.h | 5 ++++-
|
||||
4 files changed, 17 insertions(+), 5 deletions(-)
|
||||
dlls/user32/user_private.h | 3 +++
|
||||
4 files changed, 16 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/user32/hook.c b/dlls/user32/hook.c
|
||||
index 2f6b42c..0c6a059 100644
|
||||
@ -90,19 +90,20 @@ index eac4e4d..d59e342 100644
|
||||
USER_Driver->pSetCursorPos( new_x, new_y );
|
||||
}
|
||||
diff --git a/dlls/user32/user_private.h b/dlls/user32/user_private.h
|
||||
index c389414..01a19bf 100644
|
||||
index 919540d..4380a00 100644
|
||||
--- a/dlls/user32/user_private.h
|
||||
+++ b/dlls/user32/user_private.h
|
||||
@@ -190,11 +190,14 @@ struct user_thread_info
|
||||
@@ -185,6 +185,7 @@ struct user_thread_info
|
||||
ULONG_PTR GetMessageExtraInfoVal; /* Value for GetMessageExtraInfo */
|
||||
UINT active_hooks; /* Bitmap of active hooks */
|
||||
UINT key_state_time; /* Time of last key state refresh */
|
||||
+ INT key_state_epoch; /* Counter to invalidate the key state */
|
||||
BYTE *key_state; /* Cache of global key state */
|
||||
HWND top_window; /* Desktop window */
|
||||
HWND msg_window; /* HWND_MESSAGE parent window */
|
||||
RAWINPUT *rawinput;
|
||||
+ INT key_state_epoch; /* Counter to invalidate the key state */
|
||||
@@ -193,6 +194,8 @@ struct user_thread_info
|
||||
|
||||
- ULONG pad[5]; /* Available for more data */
|
||||
+ ULONG pad[4]; /* Available for more data */
|
||||
};
|
||||
#include <poppack.h>
|
||||
C_ASSERT( sizeof(struct user_thread_info) <= sizeof(((TEB *)0)->Win32ClientInfo) );
|
||||
|
||||
+extern INT global_key_state_epoch DECLSPEC_HIDDEN;
|
||||
+
|
||||
@ -110,5 +111,5 @@ index c389414..01a19bf 100644
|
||||
{
|
||||
HHOOK handle;
|
||||
--
|
||||
2.3.2
|
||||
2.3.3
|
||||
|
||||
|
@ -1,2 +1 @@
|
||||
Fixes: [29871] Invalidate key state cache globally after calling LL hooks
|
||||
Depends: user32-user_thread_info
|
||||
|
@ -1,35 +0,0 @@
|
||||
From d9c7dc0ec91492b7e57682ea3ddb10feaffcc18b Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 21 Mar 2015 04:22:10 +0100
|
||||
Subject: user32: Fix padding in user_thread_info structure.
|
||||
|
||||
---
|
||||
dlls/user32/user_private.h | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/user32/user_private.h b/dlls/user32/user_private.h
|
||||
index adf3f7d..c389414 100644
|
||||
--- a/dlls/user32/user_private.h
|
||||
+++ b/dlls/user32/user_private.h
|
||||
@@ -169,6 +169,7 @@ struct wm_char_mapping_data
|
||||
|
||||
/* this is the structure stored in TEB->Win32ClientInfo */
|
||||
/* no attempt is made to keep the layout compatible with the Windows one */
|
||||
+#include <pshpack4.h>
|
||||
struct user_thread_info
|
||||
{
|
||||
HANDLE server_queue; /* Handle to server-side queue */
|
||||
@@ -190,8 +191,9 @@ struct user_thread_info
|
||||
HWND msg_window; /* HWND_MESSAGE parent window */
|
||||
RAWINPUT *rawinput;
|
||||
|
||||
- ULONG pad[6]; /* Available for more data */
|
||||
+ ULONG pad[5]; /* Available for more data */
|
||||
};
|
||||
+#include <poppack.h>
|
||||
|
||||
struct hook_extra_info
|
||||
{
|
||||
--
|
||||
2.3.2
|
||||
|
@ -1,4 +1,4 @@
|
||||
From eb0dad546308d183c995eb43200e6eacd10e0980 Mon Sep 17 00:00:00 2001
|
||||
From 74b9c4c429f5c388786366e5ed35f5c14df15c35 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Thu, 20 Dec 2012 13:09:17 +0100
|
||||
Subject: wined3d: Move the framebuffer into wined3d_state
|
||||
@ -11,16 +11,16 @@ Subject: wined3d: Move the framebuffer into wined3d_state
|
||||
dlls/wined3d/drawprim.c | 14 ++---
|
||||
dlls/wined3d/glsl_shader.c | 2 +-
|
||||
dlls/wined3d/shader.c | 2 +-
|
||||
dlls/wined3d/state.c | 20 +++----
|
||||
dlls/wined3d/state.c | 18 +++---
|
||||
dlls/wined3d/stateblock.c | 45 +++++++++++++--
|
||||
dlls/wined3d/surface.c | 2 +-
|
||||
dlls/wined3d/swapchain.c | 2 +-
|
||||
dlls/wined3d/utils.c | 2 +-
|
||||
dlls/wined3d/utils.c | 4 +-
|
||||
dlls/wined3d/wined3d_private.h | 46 +++++++++++----
|
||||
13 files changed, 171 insertions(+), 126 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
|
||||
index 4bc4d3b..0f95f28 100644
|
||||
index 4a10e00..fb09fd7 100644
|
||||
--- a/dlls/wined3d/arb_program_shader.c
|
||||
+++ b/dlls/wined3d/arb_program_shader.c
|
||||
@@ -706,7 +706,7 @@ static void shader_arb_load_constants_internal(struct shader_arb_priv *priv,
|
||||
@ -32,7 +32,7 @@ index 4bc4d3b..0f95f28 100644
|
||||
|
||||
/* Load DirectX 9 float constants for pixel shader */
|
||||
priv->highest_dirty_ps_const = shader_arb_load_constantsF(pshader, gl_info, GL_FRAGMENT_PROGRAM_ARB,
|
||||
@@ -4674,7 +4674,7 @@ static void shader_arb_select(void *shader_priv, struct wined3d_context *context
|
||||
@@ -4711,7 +4711,7 @@ static void shader_arb_select(void *shader_priv, struct wined3d_context *context
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -42,7 +42,7 @@ index 4bc4d3b..0f95f28 100644
|
||||
}
|
||||
|
||||
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
index c08e0ce..ba546f5 100644
|
||||
index 93c8a6a..0445a41 100644
|
||||
--- a/dlls/wined3d/context.c
|
||||
+++ b/dlls/wined3d/context.c
|
||||
@@ -1448,6 +1448,12 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain,
|
||||
@ -119,7 +119,7 @@ index c08e0ce..ba546f5 100644
|
||||
}
|
||||
|
||||
static void context_map_stage(struct wined3d_context *context, DWORD stage, DWORD unit)
|
||||
@@ -3030,7 +3042,7 @@ BOOL context_apply_draw_state(struct wined3d_context *context, struct wined3d_de
|
||||
@@ -3034,7 +3046,7 @@ BOOL context_apply_draw_state(struct wined3d_context *context, struct wined3d_de
|
||||
{
|
||||
const struct wined3d_state *state = &device->state;
|
||||
const struct StateEntry *state_table = context->state_table;
|
||||
@ -205,7 +205,7 @@ index 4a04b00..408e9b5 100644
|
||||
HeapFree(GetProcessHeap(), 0, cs);
|
||||
}
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 22cf4b5..c3eedbd 100644
|
||||
index 95e5cc7..f8c32eb 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -860,7 +860,7 @@ static void device_init_swapchain_state(struct wined3d_device *device, struct wi
|
||||
@ -355,7 +355,7 @@ index 22cf4b5..c3eedbd 100644
|
||||
{
|
||||
WARN("Silently ignoring depth and target clear with mismatching sizes\n");
|
||||
return WINED3D_OK;
|
||||
@@ -3686,8 +3666,8 @@ HRESULT CDECL wined3d_device_validate_device(const struct wined3d_device *device
|
||||
@@ -3688,8 +3668,8 @@ HRESULT CDECL wined3d_device_validate_device(const struct wined3d_device *device
|
||||
if (state->render_states[WINED3D_RS_ZENABLE] || state->render_states[WINED3D_RS_ZWRITEENABLE]
|
||||
|| state->render_states[WINED3D_RS_STENCILENABLE])
|
||||
{
|
||||
@ -366,7 +366,7 @@ index 22cf4b5..c3eedbd 100644
|
||||
|
||||
if (ds && rt && (ds->width < rt->width || ds->height < rt->height))
|
||||
{
|
||||
@@ -3913,20 +3893,21 @@ struct wined3d_rendertarget_view * CDECL wined3d_device_get_rendertarget_view(co
|
||||
@@ -3915,20 +3895,21 @@ struct wined3d_rendertarget_view * CDECL wined3d_device_get_rendertarget_view(co
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -390,7 +390,7 @@ index 22cf4b5..c3eedbd 100644
|
||||
|
||||
TRACE("device %p, view_idx %u, view %p, set_viewport %#x.\n",
|
||||
device, view_idx, view, set_viewport);
|
||||
@@ -3966,13 +3947,13 @@ HRESULT CDECL wined3d_device_set_rendertarget_view(struct wined3d_device *device
|
||||
@@ -3968,13 +3949,13 @@ HRESULT CDECL wined3d_device_set_rendertarget_view(struct wined3d_device *device
|
||||
}
|
||||
|
||||
|
||||
@ -406,7 +406,7 @@ index 22cf4b5..c3eedbd 100644
|
||||
wined3d_cs_emit_set_rendertarget_view(device->cs, view_idx, view);
|
||||
/* Release after the assignment, to prevent device_resource_released()
|
||||
* from seeing the surface as still in use. */
|
||||
@@ -3984,18 +3965,19 @@ HRESULT CDECL wined3d_device_set_rendertarget_view(struct wined3d_device *device
|
||||
@@ -3986,18 +3967,19 @@ HRESULT CDECL wined3d_device_set_rendertarget_view(struct wined3d_device *device
|
||||
|
||||
void CDECL wined3d_device_set_depth_stencil_view(struct wined3d_device *device, struct wined3d_rendertarget_view *view)
|
||||
{
|
||||
@ -428,7 +428,7 @@ index 22cf4b5..c3eedbd 100644
|
||||
wined3d_rendertarget_view_incref(view);
|
||||
wined3d_cs_emit_set_depth_stencil_view(device->cs, view);
|
||||
if (prev)
|
||||
@@ -4351,10 +4333,9 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
|
||||
@@ -4353,10 +4335,9 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
|
||||
wined3d_texture_decref(device->cursor_texture);
|
||||
device->cursor_texture = NULL;
|
||||
}
|
||||
@ -440,7 +440,7 @@ index 22cf4b5..c3eedbd 100644
|
||||
{
|
||||
for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i)
|
||||
{
|
||||
@@ -4363,6 +4344,11 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
|
||||
@@ -4365,6 +4346,11 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
|
||||
}
|
||||
wined3d_device_set_depth_stencil_view(device, NULL);
|
||||
|
||||
@ -452,7 +452,7 @@ index 22cf4b5..c3eedbd 100644
|
||||
if (device->onscreen_depth_stencil)
|
||||
{
|
||||
wined3d_surface_decref(device->onscreen_depth_stencil);
|
||||
@@ -4647,7 +4633,7 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
|
||||
@@ -4649,7 +4635,7 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
|
||||
if (device->d3d_initialized)
|
||||
delete_opengl_contexts(device, swapchain);
|
||||
|
||||
@ -461,7 +461,7 @@ index 22cf4b5..c3eedbd 100644
|
||||
&device->adapter->d3d_info, WINED3D_STATE_INIT_DEFAULT)))
|
||||
ERR("Failed to initialize device state, hr %#x.\n", hr);
|
||||
device->update_state = &device->state;
|
||||
@@ -4656,22 +4642,21 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
|
||||
@@ -4658,22 +4644,21 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
|
||||
}
|
||||
else if (device->back_buffer_view)
|
||||
{
|
||||
@ -489,7 +489,7 @@ index 22cf4b5..c3eedbd 100644
|
||||
wined3d_cs_emit_set_scissor_rect(device->cs, &state->scissor_rect);
|
||||
}
|
||||
|
||||
@@ -4762,17 +4747,17 @@ void device_resource_released(struct wined3d_device *device, struct wined3d_reso
|
||||
@@ -4764,17 +4749,17 @@ void device_resource_released(struct wined3d_device *device, struct wined3d_reso
|
||||
|
||||
for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i)
|
||||
{
|
||||
@ -511,7 +511,7 @@ index 22cf4b5..c3eedbd 100644
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -4935,7 +4920,7 @@ HRESULT device_init(struct wined3d_device *device, struct wined3d *wined3d,
|
||||
@@ -4937,7 +4922,7 @@ HRESULT device_init(struct wined3d_device *device, struct wined3d *wined3d,
|
||||
|
||||
device->blitter = adapter->blitter;
|
||||
|
||||
@ -521,10 +521,10 @@ index 22cf4b5..c3eedbd 100644
|
||||
{
|
||||
ERR("Failed to initialize device state, hr %#x.\n", hr);
|
||||
diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c
|
||||
index 31f346d..f0f3ef2 100644
|
||||
index 6ff6cf1..e69a69e 100644
|
||||
--- a/dlls/wined3d/drawprim.c
|
||||
+++ b/dlls/wined3d/drawprim.c
|
||||
@@ -608,7 +608,7 @@ void draw_primitive(struct wined3d_device *device, UINT start_idx, UINT index_co
|
||||
@@ -601,7 +601,7 @@ void draw_primitive(struct wined3d_device *device, UINT start_idx, UINT index_co
|
||||
|
||||
if (!index_count) return;
|
||||
|
||||
@ -533,7 +533,7 @@ index 31f346d..f0f3ef2 100644
|
||||
if (!context->valid)
|
||||
{
|
||||
context_release(context);
|
||||
@@ -622,7 +622,7 @@ void draw_primitive(struct wined3d_device *device, UINT start_idx, UINT index_co
|
||||
@@ -615,7 +615,7 @@ void draw_primitive(struct wined3d_device *device, UINT start_idx, UINT index_co
|
||||
/* Invalidate the back buffer memory so LockRect will read it the next time */
|
||||
for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i)
|
||||
{
|
||||
@ -542,7 +542,7 @@ index 31f346d..f0f3ef2 100644
|
||||
if (target)
|
||||
{
|
||||
wined3d_resource_load_location(&target->resource, context, target->container->resource.draw_binding);
|
||||
@@ -631,18 +631,18 @@ void draw_primitive(struct wined3d_device *device, UINT start_idx, UINT index_co
|
||||
@@ -624,18 +624,18 @@ void draw_primitive(struct wined3d_device *device, UINT start_idx, UINT index_co
|
||||
}
|
||||
}
|
||||
|
||||
@ -564,7 +564,7 @@ index 31f346d..f0f3ef2 100644
|
||||
RECT current_rect, draw_rect, r;
|
||||
|
||||
if (!context->render_offscreen && ds != device->onscreen_depth_stencil)
|
||||
@@ -668,9 +668,9 @@ void draw_primitive(struct wined3d_device *device, UINT start_idx, UINT index_co
|
||||
@@ -661,9 +661,9 @@ void draw_primitive(struct wined3d_device *device, UINT start_idx, UINT index_co
|
||||
return;
|
||||
}
|
||||
|
||||
@ -577,10 +577,10 @@ index 31f346d..f0f3ef2 100644
|
||||
|
||||
surface_modify_ds_location(ds, location, ds->ds_current_size.cx, ds->ds_current_size.cy);
|
||||
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
|
||||
index 0017e45..5ec156a 100644
|
||||
index 0b307d3..ffefab0 100644
|
||||
--- a/dlls/wined3d/glsl_shader.c
|
||||
+++ b/dlls/wined3d/glsl_shader.c
|
||||
@@ -953,7 +953,7 @@ static void shader_generate_glsl_declarations(const struct wined3d_context *cont
|
||||
@@ -964,7 +964,7 @@ static void shader_generate_glsl_declarations(const struct wined3d_context *cont
|
||||
const struct wined3d_state *state = &shader->device->state;
|
||||
const struct ps_compile_args *ps_args = ctx_priv->cur_ps_args;
|
||||
const struct wined3d_gl_info *gl_info = context->gl_info;
|
||||
@ -590,10 +590,10 @@ index 0017e45..5ec156a 100644
|
||||
const struct wined3d_shader_lconst *lconst;
|
||||
const char *prefix;
|
||||
diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
|
||||
index 28f3b17..ca38d53 100644
|
||||
index f162fb5..e9ac242 100644
|
||||
--- a/dlls/wined3d/shader.c
|
||||
+++ b/dlls/wined3d/shader.c
|
||||
@@ -2245,7 +2245,7 @@ void find_ps_compile_args(const struct wined3d_state *state, const struct wined3
|
||||
@@ -2344,7 +2344,7 @@ void find_ps_compile_args(const struct wined3d_state *state, const struct wined3
|
||||
memset(args, 0, sizeof(*args)); /* FIXME: Make sure all bits are set. */
|
||||
if (!gl_info->supported[ARB_FRAMEBUFFER_SRGB] && state->render_states[WINED3D_RS_SRGBWRITEENABLE])
|
||||
{
|
||||
@ -603,7 +603,7 @@ index 28f3b17..ca38d53 100644
|
||||
{
|
||||
static unsigned int warned = 0;
|
||||
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
|
||||
index 961f651..01c77ae 100644
|
||||
index bfef4b0..aed4a39 100644
|
||||
--- a/dlls/wined3d/state.c
|
||||
+++ b/dlls/wined3d/state.c
|
||||
@@ -105,7 +105,7 @@ static void state_zenable(struct wined3d_context *context, const struct wined3d_
|
||||
@ -660,16 +660,7 @@ index 961f651..01c77ae 100644
|
||||
float scale;
|
||||
|
||||
union
|
||||
@@ -4091,7 +4091,7 @@ void transform_projection(struct wined3d_context *context, const struct wined3d_
|
||||
double y_offset = context->render_offscreen
|
||||
? ((63.0 / 64.0) - (2.0 * y) - h) / h
|
||||
: ((63.0 / 64.0) - (2.0 * y) - h) / -h;
|
||||
- enum wined3d_depth_buffer_type zenable = state->fb->depth_stencil ?
|
||||
+ enum wined3d_depth_buffer_type zenable = state->fb.depth_stencil ?
|
||||
state->render_states[WINED3D_RS_ZENABLE] : WINED3D_ZB_FALSE;
|
||||
double z_scale = zenable ? 2.0f : 0.0f;
|
||||
double z_offset = zenable ? -1.0f : 0.0f;
|
||||
@@ -4769,7 +4769,7 @@ void vertexdeclaration(struct wined3d_context *context, const struct wined3d_sta
|
||||
@@ -4682,7 +4682,7 @@ static void vertexdeclaration(struct wined3d_context *context, const struct wine
|
||||
|
||||
static void viewport_miscpart(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
|
||||
{
|
||||
@ -678,7 +669,7 @@ index 961f651..01c77ae 100644
|
||||
const struct wined3d_gl_info *gl_info = context->gl_info;
|
||||
struct wined3d_viewport vp = state->viewport;
|
||||
|
||||
@@ -4949,7 +4949,7 @@ static void scissorrect(struct wined3d_context *context, const struct wined3d_st
|
||||
@@ -4860,7 +4860,7 @@ static void scissorrect(struct wined3d_context *context, const struct wined3d_st
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -687,7 +678,7 @@ index 961f651..01c77ae 100644
|
||||
UINT height;
|
||||
UINT width;
|
||||
|
||||
@@ -5013,7 +5013,7 @@ static void psorigin(struct wined3d_context *context, const struct wined3d_state
|
||||
@@ -4924,7 +4924,7 @@ static void psorigin(struct wined3d_context *context, const struct wined3d_state
|
||||
|
||||
void state_srgbwrite(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
|
||||
{
|
||||
@ -697,7 +688,7 @@ index 961f651..01c77ae 100644
|
||||
|
||||
TRACE("context %p, state %p, state_id %#x.\n", context, state, state_id);
|
||||
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
|
||||
index dc146fc..141e539 100644
|
||||
index 62b1841..76a80e2 100644
|
||||
--- a/dlls/wined3d/stateblock.c
|
||||
+++ b/dlls/wined3d/stateblock.c
|
||||
@@ -464,6 +464,7 @@ void state_unbind_resources(struct wined3d_state *state)
|
||||
@ -748,7 +739,7 @@ index dc146fc..141e539 100644
|
||||
}
|
||||
|
||||
ULONG CDECL wined3d_stateblock_decref(struct wined3d_stateblock *stateblock)
|
||||
@@ -1315,14 +1342,12 @@ static void state_init_default(struct wined3d_state *state, const struct wined3d
|
||||
@@ -1310,14 +1337,12 @@ static void state_init_default(struct wined3d_state *state, const struct wined3d
|
||||
}
|
||||
}
|
||||
|
||||
@ -765,7 +756,7 @@ index dc146fc..141e539 100644
|
||||
|
||||
for (i = 0; i < LIGHTMAP_SIZE; i++)
|
||||
{
|
||||
@@ -1340,6 +1365,15 @@ HRESULT state_init(struct wined3d_state *state, struct wined3d_fb_state *fb,
|
||||
@@ -1335,6 +1360,15 @@ HRESULT state_init(struct wined3d_state *state, struct wined3d_fb_state *fb,
|
||||
return E_OUTOFMEMORY;
|
||||
}
|
||||
|
||||
@ -781,7 +772,7 @@ index dc146fc..141e539 100644
|
||||
if (flags & WINED3D_STATE_INIT_DEFAULT)
|
||||
state_init_default(state, gl_info);
|
||||
|
||||
@@ -1350,12 +1384,13 @@ static HRESULT stateblock_init(struct wined3d_stateblock *stateblock,
|
||||
@@ -1345,12 +1379,13 @@ static HRESULT stateblock_init(struct wined3d_stateblock *stateblock,
|
||||
struct wined3d_device *device, enum wined3d_stateblock_type type)
|
||||
{
|
||||
HRESULT hr;
|
||||
@ -797,10 +788,10 @@ index dc146fc..141e539 100644
|
||||
|
||||
if (FAILED(hr = stateblock_allocate_shader_constants(stateblock)))
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index 9b9f489..994f6e3 100644
|
||||
index 9647c2a..4990848 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -3486,9 +3486,9 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
|
||||
@@ -3469,9 +3469,9 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
|
||||
enum wined3d_texture_filter_type filter)
|
||||
{
|
||||
struct wined3d_device *device = dst_surface->resource.device;
|
||||
@ -825,10 +816,19 @@ index dd7d2c7..ed2964e 100644
|
||||
struct wined3d_context *context;
|
||||
struct wined3d_surface *front;
|
||||
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
|
||||
index 9e9fc49..87f3858 100644
|
||||
index b28142c..4b84711 100644
|
||||
--- a/dlls/wined3d/utils.c
|
||||
+++ b/dlls/wined3d/utils.c
|
||||
@@ -3430,7 +3430,7 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d
|
||||
@@ -3169,7 +3169,7 @@ void get_projection_matrix(const struct wined3d_context *context, const struct w
|
||||
float y_offset = (float)(context->render_offscreen
|
||||
? (63.0 / 64.0 - (2.0 * y) - h) / h
|
||||
: (63.0 / 64.0 - (2.0 * y) - h) / -h);
|
||||
- enum wined3d_depth_buffer_type zenable = state->fb->depth_stencil ?
|
||||
+ enum wined3d_depth_buffer_type zenable = state->fb.depth_stencil ?
|
||||
state->render_states[WINED3D_RS_ZENABLE] : WINED3D_ZB_FALSE;
|
||||
float z_scale = zenable ? 2.0f : 0.0f;
|
||||
float z_offset = zenable ? -1.0f : 0.0f;
|
||||
@@ -3599,7 +3599,7 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d
|
||||
unsigned int i;
|
||||
DWORD ttff;
|
||||
DWORD cop, aop, carg0, carg1, carg2, aarg0, aarg1, aarg2;
|
||||
@ -838,10 +838,10 @@ index 9e9fc49..87f3858 100644
|
||||
const struct wined3d_d3d_info *d3d_info = context->d3d_info;
|
||||
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index c68f28e..32e27f6 100644
|
||||
index b0040a5..9a4e5cb 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -1118,6 +1118,36 @@ struct wined3d_timestamp_query
|
||||
@@ -1119,6 +1119,36 @@ struct wined3d_timestamp_query
|
||||
void context_alloc_timestamp_query(struct wined3d_context *context, struct wined3d_timestamp_query *query) DECLSPEC_HIDDEN;
|
||||
void context_free_timestamp_query(struct wined3d_timestamp_query *query) DECLSPEC_HIDDEN;
|
||||
|
||||
@ -878,7 +878,7 @@ index c68f28e..32e27f6 100644
|
||||
struct wined3d_context
|
||||
{
|
||||
const struct wined3d_gl_info *gl_info;
|
||||
@@ -1132,6 +1162,7 @@ struct wined3d_context
|
||||
@@ -1133,6 +1163,7 @@ struct wined3d_context
|
||||
DWORD dirtyArray[STATE_HIGHEST + 1]; /* Won't get bigger than that, a state is never marked dirty 2 times */
|
||||
DWORD numDirtyEntries;
|
||||
DWORD isStateDirty[STATE_HIGHEST / (sizeof(DWORD) * CHAR_BIT) + 1]; /* Bitmap to find out quickly if a state is dirty */
|
||||
@ -886,7 +886,7 @@ index c68f28e..32e27f6 100644
|
||||
|
||||
struct wined3d_swapchain *swapchain;
|
||||
struct wined3d_surface *current_rt;
|
||||
@@ -1232,12 +1263,6 @@ struct wined3d_context
|
||||
@@ -1233,12 +1264,6 @@ struct wined3d_context
|
||||
GLuint dummy_arbfp_prog;
|
||||
};
|
||||
|
||||
@ -899,7 +899,7 @@ index c68f28e..32e27f6 100644
|
||||
typedef void (*APPLYSTATEFUNC)(struct wined3d_context *ctx, const struct wined3d_state *state, DWORD state_id);
|
||||
|
||||
struct StateEntry
|
||||
@@ -1912,7 +1937,7 @@ struct wined3d_stream_state
|
||||
@@ -1913,7 +1938,7 @@ struct wined3d_stream_state
|
||||
struct wined3d_state
|
||||
{
|
||||
DWORD flags;
|
||||
@ -908,7 +908,7 @@ index c68f28e..32e27f6 100644
|
||||
|
||||
struct wined3d_vertex_declaration *vertex_declaration;
|
||||
struct wined3d_stream_output stream_output[MAX_STREAM_OUT];
|
||||
@@ -2018,7 +2043,6 @@ struct wined3d_device
|
||||
@@ -2019,7 +2044,6 @@ struct wined3d_device
|
||||
struct wine_rb_tree samplers;
|
||||
|
||||
/* Render Target Support */
|
||||
@ -937,5 +937,5 @@ index c68f28e..32e27f6 100644
|
||||
|
||||
size_t data_size;
|
||||
--
|
||||
2.2.2
|
||||
2.3.3
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 30ad009ccd9e681bab8813c09847c62bd9367916 Mon Sep 17 00:00:00 2001
|
||||
From f0534e2583764b2f51690adb1e0b4c4264b4bfcb Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Wed, 31 Jul 2013 23:18:28 +0200
|
||||
Subject: wined3d: Destroy shaders through the CS
|
||||
@ -10,7 +10,7 @@ Subject: wined3d: Destroy shaders through the CS
|
||||
3 files changed, 35 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index 38063d7..21d5b74 100644
|
||||
index d6581cf..24fdc17 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -80,6 +80,7 @@ enum wined3d_cs_op
|
||||
@ -34,7 +34,7 @@ index 38063d7..21d5b74 100644
|
||||
static void wined3d_cs_mt_submit(struct wined3d_cs *cs, size_t size)
|
||||
{
|
||||
LONG new_val = (cs->queue.head + size) & (WINED3D_CS_QUEUE_SIZE - 1);
|
||||
@@ -2279,6 +2286,27 @@ void wined3d_cs_emit_vertex_declaration_destroy(struct wined3d_cs *cs,
|
||||
@@ -2282,6 +2289,27 @@ void wined3d_cs_emit_vertex_declaration_destroy(struct wined3d_cs *cs,
|
||||
cs->ops->submit(cs, sizeof(*op));
|
||||
}
|
||||
|
||||
@ -62,7 +62,7 @@ index 38063d7..21d5b74 100644
|
||||
static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) =
|
||||
{
|
||||
/* WINED3D_CS_OP_NOP */ wined3d_cs_exec_nop,
|
||||
@@ -2337,6 +2365,7 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
@@ -2340,6 +2368,7 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_EVICT_RESOURCE */ wined3d_cs_exec_evict_resource,
|
||||
/* WINED3D_CS_OP_VIEW_DESTROY */ wined3d_cs_exec_view_destroy,
|
||||
/* WINED3D_CS_OP_VDECL_DESTROY */ wined3d_cs_exec_vertex_declaration_destroy,
|
||||
@ -71,19 +71,19 @@ index 38063d7..21d5b74 100644
|
||||
|
||||
static inline void *_wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, BOOL prio)
|
||||
diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
|
||||
index 0faabaa..8c9be69 100644
|
||||
index 3323d12..1e9ff05 100644
|
||||
--- a/dlls/wined3d/shader.c
|
||||
+++ b/dlls/wined3d/shader.c
|
||||
@@ -1702,7 +1702,7 @@ static void shader_trace_init(const struct wined3d_shader_frontend *fe, void *fe
|
||||
@@ -1812,7 +1812,7 @@ static void shader_trace_init(const struct wined3d_shader_frontend *fe, void *fe
|
||||
}
|
||||
}
|
||||
|
||||
-static void shader_cleanup(struct wined3d_shader *shader)
|
||||
+void shader_cleanup(struct wined3d_shader *shader)
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, shader->output_signature.elements);
|
||||
HeapFree(GetProcessHeap(), 0, shader->signature_strings);
|
||||
shader->device->shader_backend->shader_destroy(shader);
|
||||
@@ -1957,14 +1957,10 @@ ULONG CDECL wined3d_shader_decref(struct wined3d_shader *shader)
|
||||
@@ -2067,14 +2067,10 @@ ULONG CDECL wined3d_shader_decref(struct wined3d_shader *shader)
|
||||
|
||||
if (!refcount)
|
||||
{
|
||||
@ -102,10 +102,10 @@ index 0faabaa..8c9be69 100644
|
||||
|
||||
return refcount;
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 5d3393c..86ee114 100644
|
||||
index 2df44a9..340ed08 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2704,6 +2704,7 @@ void wined3d_cs_emit_buffer_preload(struct wined3d_cs *cs, struct wined3d_buffer
|
||||
@@ -2728,6 +2728,7 @@ void wined3d_cs_emit_buffer_preload(struct wined3d_cs *cs, struct wined3d_buffer
|
||||
void wined3d_cs_emit_view_destroy(struct wined3d_cs *cs, struct wined3d_rendertarget_view *view) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_vertex_declaration_destroy(struct wined3d_cs *cs,
|
||||
struct wined3d_vertex_declaration *declaration) DECLSPEC_HIDDEN;
|
||||
@ -113,7 +113,7 @@ index 5d3393c..86ee114 100644
|
||||
|
||||
/* Direct3D terminology with little modifications. We do not have an issued state
|
||||
* because only the driver knows about it, but we have a created state because d3d
|
||||
@@ -3103,6 +3104,7 @@ unsigned int shader_find_free_input_register(const struct wined3d_shader_reg_map
|
||||
@@ -3120,6 +3121,7 @@ unsigned int shader_find_free_input_register(const struct wined3d_shader_reg_map
|
||||
void shader_generate_main(const struct wined3d_shader *shader, struct wined3d_shader_buffer *buffer,
|
||||
const struct wined3d_shader_reg_maps *reg_maps, const DWORD *byte_code, void *backend_ctx) DECLSPEC_HIDDEN;
|
||||
BOOL shader_match_semantic(const char *semantic_name, enum wined3d_decl_usage usage) DECLSPEC_HIDDEN;
|
||||
@ -122,5 +122,5 @@ index 5d3393c..86ee114 100644
|
||||
static inline BOOL shader_is_scalar(const struct wined3d_shader_register *reg)
|
||||
{
|
||||
--
|
||||
2.1.3
|
||||
2.3.3
|
||||
|
||||
|
@ -406,19 +406,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
|
||||
float scale;
|
||||
|
||||
union
|
||||
@@ -4084,7 +4115,11 @@
|
||||
double y_offset = context->render_offscreen
|
||||
? ((63.0 / 64.0) - (2.0 * y) - h) / h
|
||||
: ((63.0 / 64.0) - (2.0 * y) - h) / -h;
|
||||
+#if defined(STAGING_CSMT)
|
||||
enum wined3d_depth_buffer_type zenable = state->fb.depth_stencil ?
|
||||
+#else /* STAGING_CSMT */
|
||||
+ enum wined3d_depth_buffer_type zenable = state->fb->depth_stencil ?
|
||||
+#endif /* STAGING_CSMT */
|
||||
state->render_states[WINED3D_RS_ZENABLE] : WINED3D_ZB_FALSE;
|
||||
double z_scale = zenable ? 2.0f : 0.0f;
|
||||
double z_offset = zenable ? -1.0f : 0.0f;
|
||||
@@ -4408,9 +4443,15 @@
|
||||
@@ -4328,9 +4359,15 @@
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -434,7 +422,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
|
||||
WARN("unsupported blending in openGl\n");
|
||||
}
|
||||
}
|
||||
@@ -4762,7 +4803,11 @@
|
||||
@@ -4682,7 +4719,11 @@
|
||||
|
||||
static void viewport_miscpart(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
|
||||
{
|
||||
@ -446,7 +434,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
|
||||
const struct wined3d_gl_info *gl_info = context->gl_info;
|
||||
struct wined3d_viewport vp = state->viewport;
|
||||
|
||||
@@ -4940,7 +4985,11 @@
|
||||
@@ -4860,7 +4901,11 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -458,7 +446,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
|
||||
UINT height;
|
||||
UINT width;
|
||||
|
||||
@@ -5004,7 +5053,11 @@
|
||||
@@ -4924,7 +4969,11 @@
|
||||
|
||||
void state_srgbwrite(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
|
||||
{
|
||||
@ -1104,7 +1092,19 @@ diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c
|
||||
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
|
||||
--- a/dlls/wined3d/utils.c
|
||||
+++ b/dlls/wined3d/utils.c
|
||||
@@ -3232,6 +3232,7 @@
|
||||
@@ -3169,7 +3169,11 @@
|
||||
float y_offset = (float)(context->render_offscreen
|
||||
? (63.0 / 64.0 - (2.0 * y) - h) / h
|
||||
: (63.0 / 64.0 - (2.0 * y) - h) / -h);
|
||||
+#if defined(STAGING_CSMT)
|
||||
enum wined3d_depth_buffer_type zenable = state->fb.depth_stencil ?
|
||||
+#else /* STAGING_CSMT */
|
||||
+ enum wined3d_depth_buffer_type zenable = state->fb->depth_stencil ?
|
||||
+#endif /* STAGING_CSMT */
|
||||
state->render_states[WINED3D_RS_ZENABLE] : WINED3D_ZB_FALSE;
|
||||
float z_scale = zenable ? 2.0f : 0.0f;
|
||||
float z_offset = zenable ? -1.0f : 0.0f;
|
||||
@@ -3292,6 +3296,7 @@
|
||||
/* case WINED3D_TTFF_COUNT1: Won't ever get here. */
|
||||
case WINED3D_TTFF_COUNT2:
|
||||
mat._13 = mat._23 = mat._33 = mat._43 = 0.0f;
|
||||
@ -1112,7 +1112,7 @@ diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
|
||||
/* OpenGL divides the first 3 vertex coord by the 4th by default,
|
||||
* which is essentially the same as D3DTTFF_PROJECTED. Make sure that
|
||||
* the 4th coord evaluates to 1.0 to eliminate that.
|
||||
@@ -3244,6 +3245,20 @@
|
||||
@@ -3304,6 +3309,20 @@
|
||||
* A more serious problem occurs if the app passes 4 coordinates in, and the
|
||||
* 4th is != 1.0(opengl default). This would have to be fixed in draw_strided_slow
|
||||
* or a replacement shader. */
|
||||
@ -1133,7 +1133,7 @@ diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
|
||||
default:
|
||||
mat._14 = mat._24 = mat._34 = 0.0f; mat._44 = 1.0f;
|
||||
}
|
||||
@@ -3508,7 +3523,11 @@
|
||||
@@ -3599,7 +3618,11 @@
|
||||
unsigned int i;
|
||||
DWORD ttff;
|
||||
DWORD cop, aop, carg0, carg1, carg2, aarg0, aarg1, aarg2;
|
||||
@ -1192,7 +1192,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader
|
||||
|
||||
/* Load DirectX 9 float constants for pixel shader */
|
||||
priv->highest_dirty_ps_const = shader_arb_load_constantsF(pshader, gl_info, GL_FRAGMENT_PROGRAM_ARB,
|
||||
@@ -4674,7 +4678,11 @@
|
||||
@@ -4711,7 +4715,11 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1204,7 +1204,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader
|
||||
shader_arb_ps_local_constants(compiled, context, state, rt_height);
|
||||
}
|
||||
|
||||
@@ -7654,7 +7662,11 @@
|
||||
@@ -7692,7 +7700,11 @@
|
||||
|
||||
/* Now load the surface */
|
||||
if (wined3d_settings.offscreen_rendering_mode != ORM_FBO
|
||||
@ -1216,7 +1216,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader
|
||||
== WINED3D_LOCATION_DRAWABLE
|
||||
&& !wined3d_resource_is_offscreen(&src_surface->container->resource))
|
||||
{
|
||||
@@ -7684,6 +7696,7 @@
|
||||
@@ -7722,6 +7734,7 @@
|
||||
/* Leave the opengl state valid for blitting */
|
||||
arbfp_blit_unset(context->gl_info);
|
||||
|
||||
@ -1224,7 +1224,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader
|
||||
if (wined3d_settings.cs_multithreaded)
|
||||
context->gl_info->gl_ops.gl.p_glFinish();
|
||||
else if (wined3d_settings.strict_draw_ordering
|
||||
@@ -7695,6 +7708,17 @@
|
||||
@@ -7733,6 +7746,17 @@
|
||||
|
||||
wined3d_resource_validate_location(&dst_surface->resource, dst_surface->container->resource.draw_binding);
|
||||
wined3d_resource_invalidate_location(&dst_surface->resource, ~dst_surface->container->resource.draw_binding);
|
||||
@ -1493,7 +1493,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
if (rt_mask != *cur_mask)
|
||||
{
|
||||
context_apply_draw_buffers(context, rt_mask);
|
||||
@@ -2897,7 +2973,11 @@
|
||||
@@ -2901,7 +2977,11 @@
|
||||
{
|
||||
if (state->vertex_declaration->half_float_conv_needed && !stream_info->all_vbo)
|
||||
{
|
||||
@ -1505,7 +1505,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
context->use_immediate_mode_draw = TRUE;
|
||||
}
|
||||
else
|
||||
@@ -3037,11 +3117,19 @@
|
||||
@@ -3041,11 +3121,19 @@
|
||||
}
|
||||
|
||||
/* Context activation is done by the caller. */
|
||||
@ -1525,7 +1525,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
unsigned int i, j;
|
||||
WORD map;
|
||||
|
||||
@@ -3073,12 +3161,17 @@
|
||||
@@ -3077,12 +3165,17 @@
|
||||
for (i = 0, map = context->stream_info.use_map; map; map >>= 1, ++i)
|
||||
{
|
||||
if (map & 1)
|
||||
@ -1543,7 +1543,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
}
|
||||
if (state->index_buffer)
|
||||
{
|
||||
@@ -3181,7 +3274,11 @@
|
||||
@@ -3185,7 +3278,11 @@
|
||||
if (texture->texture_srgb.name)
|
||||
wined3d_texture_load(texture, context, TRUE);
|
||||
wined3d_texture_load(texture, context, FALSE);
|
||||
@ -2283,7 +2283,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
/*****************************************************************************
|
||||
* Utility function prototypes
|
||||
@@ -3157,7 +3383,9 @@
|
||||
@@ -3152,7 +3378,9 @@
|
||||
void shader_generate_main(const struct wined3d_shader *shader, struct wined3d_shader_buffer *buffer,
|
||||
const struct wined3d_shader_reg_maps *reg_maps, const DWORD *byte_code, void *backend_ctx) DECLSPEC_HIDDEN;
|
||||
BOOL shader_match_semantic(const char *semantic_name, enum wined3d_decl_usage usage) DECLSPEC_HIDDEN;
|
||||
@ -8986,7 +8986,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
|
||||
--- a/dlls/wined3d/shader.c
|
||||
+++ b/dlls/wined3d/shader.c
|
||||
@@ -1763,7 +1763,11 @@
|
||||
@@ -1812,7 +1812,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
@ -8996,9 +8996,9 @@ diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
|
||||
+static void shader_cleanup(struct wined3d_shader *shader)
|
||||
+#endif /* STAGING_CSMT */
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, shader->output_signature.elements);
|
||||
HeapFree(GetProcessHeap(), 0, shader->signature_strings);
|
||||
shader->device->shader_backend->shader_destroy(shader);
|
||||
@@ -2018,10 +2022,16 @@
|
||||
@@ -2067,10 +2071,16 @@
|
||||
|
||||
if (!refcount)
|
||||
{
|
||||
@ -9015,7 +9015,7 @@ diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
|
||||
}
|
||||
|
||||
return refcount;
|
||||
@@ -2246,7 +2256,11 @@
|
||||
@@ -2345,7 +2355,11 @@
|
||||
memset(args, 0, sizeof(*args)); /* FIXME: Make sure all bits are set. */
|
||||
if (!gl_info->supported[ARB_FRAMEBUFFER_SRGB] && state->render_states[WINED3D_RS_SRGBWRITEENABLE])
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user