From 74daa3b21041c55231c5994d31054db3e2f39703 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Thu, 1 Oct 2015 20:41:57 +0200 Subject: [PATCH] Rebase against 781b88b7c586fc295780f0c8ad76bda0ffe96cd1. --- README.md | 4 +- debian/changelog | 4 ++ ...a2-tests-Add-tests-for-dxva2-decoder.patch | 10 +-- ...zy-initialization-of-fonts-to-improv.patch | 38 ++++++----- ...oskrnl.exe-Add-stub-for-ProbeForRead.patch | 14 ++-- patches/patchinstall.sh | 44 +----------- patches/server-Delete_On_Close/definition | 1 - ...ack-to-server-dir-when-open_fd-fails.patch | 65 ------------------ patches/server-Working_Directory/definition | 1 - ...nsole-Forward-child-process-exitcode.patch | 67 ------------------- .../wineconsole-Forward_Exitcode/definition | 1 - ...a-glFinish-before-modifying-resource.patch | 42 ++++++------ ...end-blits-through-the-command-stream.patch | 30 ++++----- ...emove-the-device_reset-CS-sync-fixme.patch | 17 +++-- .../wined3d-CSMT_Main/9999-IfDefined.patch | 47 ++++++------- 15 files changed, 107 insertions(+), 278 deletions(-) delete mode 100644 patches/server-Working_Directory/0001-server-Switch-back-to-server-dir-when-open_fd-fails.patch delete mode 100644 patches/server-Working_Directory/definition delete mode 100644 patches/wineconsole-Forward_Exitcode/0001-wineconsole-Forward-child-process-exitcode.patch delete mode 100644 patches/wineconsole-Forward_Exitcode/definition diff --git a/README.md b/README.md index 3bc3b6c5..ab5ad738 100644 --- a/README.md +++ b/README.md @@ -148,7 +148,7 @@ for more details.* * Fix device paths in HKLM\SYSTEM\MountedDevices ([Wine Bug #38235](https://bugs.winehq.org/show_bug.cgi?id=38235)) * Fix endless loop in regedit when importing files with very long lines * Fix error handling in DeferWindowPos when passing an invalid HWND ([Wine Bug #23187](https://bugs.winehq.org/show_bug.cgi?id=23187)) -* Fix failure to create anonymous file mapping after failed open_fd server call +* ~~Fix failure to create anonymous file mapping after failed open_fd server call~~ * Fix flickering introduced by pixelformat changes. ([Wine Bug #35718](https://bugs.winehq.org/show_bug.cgi?id=35718)) * Fix for ConnectNamedPort return value in overlapped mode ([Wine Bug #16550](https://bugs.winehq.org/show_bug.cgi?id=16550)) * Fix for programs leaking wndproc slots ([Wine Bug #32451](https://bugs.winehq.org/show_bug.cgi?id=32451)) @@ -175,7 +175,7 @@ for more details.* * Fix wrong defition of ntoskrnl.IoReleaseCancelSpinLock function. * Fix wrong version of ID3DXEffect interface for d3dx9_24 * Fix wrong version of ID3DXEffect interface for d3dx9_25 ([Wine Bug #25138](https://bugs.winehq.org/show_bug.cgi?id=25138)) -* Forward exitcode from child process when in wineconsole +* ~~Forward exitcode from child process when in wineconsole~~ * ~~Free RPC parameters allocated by application before anything else~~ ([Wine Bug #36743](https://bugs.winehq.org/show_bug.cgi?id=36743)) * GetMessage should remove already seen messages with higher priority ([Wine Bug #28884](https://bugs.winehq.org/show_bug.cgi?id=28884)) * GetMonitorInfo returns the same name for all monitors ([Wine Bug #37709](https://bugs.winehq.org/show_bug.cgi?id=37709)) diff --git a/debian/changelog b/debian/changelog index 69e3807e..7162c171 100644 --- a/debian/changelog +++ b/debian/changelog @@ -33,6 +33,10 @@ wine-staging (1.7.52) UNRELEASED; urgency=low ThreadDescriptorTableEntry info query (accepted upstream). * Removed patch to avoid deprecation warning for OpenCL 1.2 APIs (accepted upstream). + * Removed patch to forward exitcode from child process in wineconsole + (accepted upstream). + * Removed patch to fix failure to create anonymous file mapping after failed + open_fd server call (accepted upstream). -- Sebastian Lackner Mon, 07 Sep 2015 16:51:25 +0200 wine-staging (1.7.51) unstable; urgency=low diff --git a/patches/dxva2-Video_Decoder/0006-dxva2-tests-Add-tests-for-dxva2-decoder.patch b/patches/dxva2-Video_Decoder/0006-dxva2-tests-Add-tests-for-dxva2-decoder.patch index da0fc308..034bfdcf 100644 --- a/patches/dxva2-Video_Decoder/0006-dxva2-tests-Add-tests-for-dxva2-decoder.patch +++ b/patches/dxva2-Video_Decoder/0006-dxva2-tests-Add-tests-for-dxva2-decoder.patch @@ -1,4 +1,4 @@ -From d8850f844e13d73a850219a12b330bdbe3e995fe Mon Sep 17 00:00:00 2001 +From 1e3f6686e2daedc334871a6af186adbd628c2d92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sun, 22 Feb 2015 01:21:18 +0100 Subject: dxva2/tests: Add tests for dxva2 decoder. @@ -12,17 +12,17 @@ Subject: dxva2/tests: Add tests for dxva2 decoder. create mode 100644 dlls/dxva2/tests/dxva2.c diff --git a/configure.ac b/configure.ac -index f611fa5..22b46ae 100644 +index 7ab221b..37261ef 100644 --- a/configure.ac +++ b/configure.ac -@@ -2941,6 +2941,7 @@ WINE_CONFIG_DLL(dxgi,,[implib]) +@@ -2993,6 +2993,7 @@ WINE_CONFIG_DLL(dxgi,,[implib]) WINE_CONFIG_TEST(dlls/dxgi/tests) WINE_CONFIG_LIB(dxguid) WINE_CONFIG_DLL(dxva2) +WINE_CONFIG_TEST(dlls/dxva2/tests) + WINE_CONFIG_DLL(esent) WINE_CONFIG_DLL(evr) WINE_CONFIG_DLL(explorerframe,,[clean]) - WINE_CONFIG_TEST(dlls/explorerframe/tests) diff --git a/dlls/dxva2/tests/Makefile.in b/dlls/dxva2/tests/Makefile.in new file mode 100644 index 0000000..10d6af5 @@ -412,5 +412,5 @@ index 0000000..dcbb990 + test_decoder_service(window); +} -- -2.1.0 +2.5.1 diff --git a/patches/gdi32-Lazy_Font_Initialization/0001-gdi32-Perform-lazy-initialization-of-fonts-to-improv.patch b/patches/gdi32-Lazy_Font_Initialization/0001-gdi32-Perform-lazy-initialization-of-fonts-to-improv.patch index 7aed2c31..d319cbd1 100644 --- a/patches/gdi32-Lazy_Font_Initialization/0001-gdi32-Perform-lazy-initialization-of-fonts-to-improv.patch +++ b/patches/gdi32-Lazy_Font_Initialization/0001-gdi32-Perform-lazy-initialization-of-fonts-to-improv.patch @@ -1,4 +1,4 @@ -From 029c387205b7a5d0d62df10512ae068980313bc3 Mon Sep 17 00:00:00 2001 +From ed8b8ed961c31b68abc5fb266d872f7228e02b93 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sat, 15 Aug 2015 07:41:17 +0200 Subject: gdi32: Perform lazy initialization of fonts to improve startup @@ -6,8 +6,8 @@ Subject: gdi32: Perform lazy initialization of fonts to improve startup --- dlls/gdi32/dc.c | 8 +++----- - dlls/gdi32/freetype.c | 48 +++++++++++++++++++++++++++++++++--------------- - 2 files changed, 36 insertions(+), 20 deletions(-) + dlls/gdi32/freetype.c | 49 ++++++++++++++++++++++++++++++++++--------------- + 2 files changed, 37 insertions(+), 20 deletions(-) diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c index 5146f5b..91ad953 100644 @@ -29,7 +29,7 @@ index 5146f5b..91ad953 100644 } diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c -index 1187598..446212f 100644 +index de40d9f..d4eb837 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -110,6 +110,9 @@ @@ -42,7 +42,7 @@ index 1187598..446212f 100644 #ifdef HAVE_FREETYPE #ifndef HAVE_FT_TRUETYPEENGINETYPE -@@ -3112,6 +3115,7 @@ INT WineEngAddFontResourceEx(LPCWSTR file, DWORD flags, PVOID pdv) +@@ -3176,6 +3179,7 @@ INT WineEngAddFontResourceEx(LPCWSTR file, DWORD flags, PVOID pdv) { INT ret = 0; @@ -50,7 +50,7 @@ index 1187598..446212f 100644 GDI_CheckNotLock(); if (ft_handle) /* do it only if we have freetype up and running */ -@@ -3154,6 +3158,7 @@ INT WineEngAddFontResourceEx(LPCWSTR file, DWORD flags, PVOID pdv) +@@ -3218,6 +3222,7 @@ INT WineEngAddFontResourceEx(LPCWSTR file, DWORD flags, PVOID pdv) */ HANDLE WineEngAddFontMemResourceEx(PVOID pbFont, DWORD cbFont, PVOID pdv, DWORD *pcFonts) { @@ -58,7 +58,7 @@ index 1187598..446212f 100644 GDI_CheckNotLock(); if (ft_handle) /* do it only if we have freetype up and running */ -@@ -3192,6 +3197,7 @@ BOOL WineEngRemoveFontResourceEx(LPCWSTR file, DWORD flags, PVOID pdv) +@@ -3256,6 +3261,7 @@ BOOL WineEngRemoveFontResourceEx(LPCWSTR file, DWORD flags, PVOID pdv) { INT ret = 0; @@ -66,7 +66,7 @@ index 1187598..446212f 100644 GDI_CheckNotLock(); if (ft_handle) /* do it only if we have freetype up and running */ -@@ -3513,10 +3519,13 @@ static BOOL create_fot( const WCHAR *resource, const WCHAR *font_file, const str +@@ -3577,10 +3583,13 @@ static BOOL create_fot( const WCHAR *resource, const WCHAR *font_file, const str BOOL WineEngCreateScalableFontResource( DWORD hidden, LPCWSTR resource, LPCWSTR font_file, LPCWSTR font_path ) { @@ -81,7 +81,7 @@ index 1187598..446212f 100644 if (!unix_name || !get_fontdir( unix_name, &fontdir )) SetLastError( ERROR_INVALID_PARAMETER ); else -@@ -3948,8 +3957,6 @@ static BOOL init_freetype(void) +@@ -4012,8 +4021,6 @@ static BOOL init_freetype(void) FT_SimpleVersion = ((FT_Version.major << 16) & 0xff0000) | ((FT_Version.minor << 8) & 0x00ff00) | ((FT_Version.patch ) & 0x0000ff); @@ -90,7 +90,7 @@ index 1187598..446212f 100644 return TRUE; sym_not_found: -@@ -4136,20 +4143,12 @@ static void reorder_font_list(void) +@@ -4200,21 +4207,13 @@ static void reorder_font_list(void) set_default( default_sans_list ); } @@ -102,6 +102,7 @@ index 1187598..446212f 100644 -BOOL WineEngInit(void) +static DWORD WINAPI freetype_lazy_init(RTL_RUN_ONCE *once, void *param, void **context) { + HKEY hkey; DWORD disposition; HANDLE font_mutex; @@ -113,7 +114,7 @@ index 1187598..446212f 100644 #ifdef SONAME_LIBFONTCONFIG init_fontconfig(); -@@ -4158,7 +4157,7 @@ BOOL WineEngInit(void) +@@ -4240,7 +4239,7 @@ BOOL WineEngInit(void) if((font_mutex = CreateMutexW(NULL, FALSE, font_mutex_nameW)) == NULL) { ERR("Failed to create font mutex\n"); @@ -122,7 +123,7 @@ index 1187598..446212f 100644 } WaitForSingleObject(font_mutex, INFINITE); -@@ -4185,6 +4184,20 @@ BOOL WineEngInit(void) +@@ -4267,6 +4266,21 @@ BOOL WineEngInit(void) return TRUE; } @@ -140,10 +141,11 @@ index 1187598..446212f 100644 + font_driver = &freetype_funcs; + return TRUE; +} - - static LONG calc_ppem_for_height(FT_Face ft_face, LONG height) - { -@@ -4856,8 +4869,12 @@ static BOOL select_charmap(FT_Face ft_face, FT_Encoding encoding) ++ + /* Some fonts have large usWinDescent values, as a result of storing signed short + in unsigned field. That's probably caused by sTypoDescent vs usWinDescent confusion in + some font generation tools. */ +@@ -4948,8 +4962,12 @@ static BOOL select_charmap(FT_Face ft_face, FT_Encoding encoding) static BOOL freetype_CreateDC( PHYSDEV *dev, LPCWSTR driver, LPCWSTR device, LPCWSTR output, const DEVMODEW *devmode ) { @@ -157,7 +159,7 @@ index 1187598..446212f 100644 if (!physdev) return FALSE; push_dc_driver( dev, &physdev->dev, &freetype_funcs ); return TRUE; -@@ -8124,6 +8141,7 @@ static BOOL freetype_FontIsLinked( PHYSDEV dev ) +@@ -8218,6 +8236,7 @@ static BOOL freetype_FontIsLinked( PHYSDEV dev ) */ BOOL WINAPI GetRasterizerCaps( LPRASTERIZER_STATUS lprs, UINT cbNumBytes) { @@ -166,5 +168,5 @@ index 1187598..446212f 100644 lprs->wFlags = TT_AVAILABLE | TT_ENABLED; lprs->nLanguageID = 0; -- -2.5.0 +2.5.1 diff --git a/patches/ntoskrnl-Stubs/0015-ntoskrnl.exe-Add-stub-for-ProbeForRead.patch b/patches/ntoskrnl-Stubs/0015-ntoskrnl.exe-Add-stub-for-ProbeForRead.patch index 4193cbf8..5eb15a49 100644 --- a/patches/ntoskrnl-Stubs/0015-ntoskrnl.exe-Add-stub-for-ProbeForRead.patch +++ b/patches/ntoskrnl-Stubs/0015-ntoskrnl.exe-Add-stub-for-ProbeForRead.patch @@ -1,4 +1,4 @@ -From 4fc03f00f5cf231d957021cb6a52687ec9336ca9 Mon Sep 17 00:00:00 2001 +From 091911f7841be1d88128ed63fd1d56f44d7c99a6 Mon Sep 17 00:00:00 2001 From: Austin English Date: Fri, 27 Feb 2015 01:27:07 +0100 Subject: ntoskrnl.exe: Add stub for ProbeForRead. @@ -9,12 +9,12 @@ Subject: ntoskrnl.exe: Add stub for ProbeForRead. 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c -index 3ff5d63..6b52d27 100644 +index 3d1db1b..a4d5641 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c -@@ -2195,3 +2195,11 @@ PLIST_ENTRY WINAPI ExfInterlockedRemoveHeadList(PLIST_ENTRY head, PKSPIN_LOCK lo - FIXME("(%p %p) stub\n", head, lock); - return ExInterlockedRemoveHeadList( head, lock ); +@@ -2470,3 +2470,11 @@ void WINAPI KeLeaveCriticalRegion(void) + { + FIXME(": stub\n"); } + +/*********************************************************************** @@ -25,7 +25,7 @@ index 3ff5d63..6b52d27 100644 + FIXME("%p %lu %u\n", address, length, alignment); +} diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec -index 4a112ef..6e86a16 100644 +index e1d594b..14ce087 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec @@ -835,7 +835,7 @@ @@ -38,5 +38,5 @@ index 4a112ef..6e86a16 100644 @ stub PsAssignImpersonationToken @ stub PsChargePoolQuota -- -2.3.0 +2.5.1 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 44510d5e..a47bc7a5 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "3966affe064c7b98a7b4c052b6a6696fe74c8830" + echo "781b88b7c586fc295780f0c8ad76bda0ffe96cd1" } # Show version information @@ -244,7 +244,6 @@ patch_enable_all () enable_server_Shared_Memory="$1" enable_server_Stored_ACLs="$1" enable_server_Timestamp_Compat="$1" - enable_server_Working_Directory="$1" enable_setupapi_SetupDiSelectBestCompatDrv="$1" enable_setupapi_SetupDiSetDeviceInstallParamsW="$1" enable_setupapi_SetupPromptForDisk="$1" @@ -294,7 +293,6 @@ patch_enable_all () enable_winecfg_Libraries="$1" enable_winecfg_Staging="$1" enable_winecfg_Unmounted_Devices="$1" - enable_wineconsole_Forward_Exitcode="$1" enable_wined3d_Accounting="$1" enable_wined3d_CSMT_Helper="$1" enable_wined3d_CSMT_Main="$1" @@ -832,9 +830,6 @@ patch_enable () server-Timestamp_Compat) enable_server_Timestamp_Compat="$2" ;; - server-Working_Directory) - enable_server_Working_Directory="$2" - ;; setupapi-SetupDiSelectBestCompatDrv) enable_setupapi_SetupDiSelectBestCompatDrv="$2" ;; @@ -982,9 +977,6 @@ patch_enable () winecfg-Unmounted_Devices) enable_winecfg_Unmounted_Devices="$2" ;; - wineconsole-Forward_Exitcode) - enable_wineconsole_Forward_Exitcode="$2" - ;; wined3d-Accounting) enable_wined3d_Accounting="$2" ;; @@ -1853,13 +1845,6 @@ if test "$enable_server_Stored_ACLs" -eq 1; then enable_server_File_Permissions=1 fi -if test "$enable_server_Delete_On_Close" -eq 1; then - if test "$enable_server_Working_Directory" -gt 1; then - abort "Patchset server-Working_Directory disabled, but server-Delete_On_Close depends on that." - fi - enable_server_Working_Directory=1 -fi - if test "$enable_nvencodeapi_Video_Encoder" -eq 1; then if test "$enable_nvcuvid_CUDA_Video_Support" -gt 1; then abort "Patchset nvcuvid-CUDA_Video_Support disabled, but nvencodeapi-Video_Encoder depends on that." @@ -4725,23 +4710,8 @@ if test "$enable_server_ClipCursor" -eq 1; then ) >> "$patchlist" fi -# Patchset server-Working_Directory -# | -# | Modified files: -# | * server/fd.c -# | -if test "$enable_server_Working_Directory" -eq 1; then - patch_apply server-Working_Directory/0001-server-Switch-back-to-server-dir-when-open_fd-fails.patch - ( - echo '+ { "Sebastian Lackner", "server: Switch back to server dir when open_fd fails.", 1 },'; - ) >> "$patchlist" -fi - # Patchset server-Delete_On_Close # | -# | This patchset has the following (direct or indirect) dependencies: -# | * server-Working_Directory -# | # | This patchset fixes the following Wine bugs: # | * [#38417] Fix handling of opening read-only files for FILE_DELETE_ON_CLOSE # | @@ -5667,18 +5637,6 @@ if test "$enable_winecfg_Unmounted_Devices" -eq 1; then ) >> "$patchlist" fi -# Patchset wineconsole-Forward_Exitcode -# | -# | Modified files: -# | * programs/wineconsole/winecon_private.h, programs/wineconsole/wineconsole.c -# | -if test "$enable_wineconsole_Forward_Exitcode" -eq 1; then - patch_apply wineconsole-Forward_Exitcode/0001-wineconsole-Forward-child-process-exitcode.patch - ( - echo '+ { "Michael Müller", "wineconsole: Forward child process exitcode.", 1 },'; - ) >> "$patchlist" -fi - # Patchset wined3d-Accounting # | # | Modified files: diff --git a/patches/server-Delete_On_Close/definition b/patches/server-Delete_On_Close/definition index cd7be157..77017303 100644 --- a/patches/server-Delete_On_Close/definition +++ b/patches/server-Delete_On_Close/definition @@ -1,3 +1,2 @@ Fixes: [38417] Fix handling of opening read-only files for FILE_DELETE_ON_CLOSE -Depends: server-Working_Directory Category: stable diff --git a/patches/server-Working_Directory/0001-server-Switch-back-to-server-dir-when-open_fd-fails.patch b/patches/server-Working_Directory/0001-server-Switch-back-to-server-dir-when-open_fd-fails.patch deleted file mode 100644 index 4af0e7e5..00000000 --- a/patches/server-Working_Directory/0001-server-Switch-back-to-server-dir-when-open_fd-fails.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 24571673d4012771550758af22526c334a7fbd9b Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Sun, 30 Aug 2015 04:57:38 +0200 -Subject: server: Switch back to server dir when open_fd fails. - ---- - server/fd.c | 16 +++++++--------- - 1 file changed, 7 insertions(+), 9 deletions(-) - -diff --git a/server/fd.c b/server/fd.c -index fef4827..6c78a0a 100644 ---- a/server/fd.c -+++ b/server/fd.c -@@ -1835,34 +1835,31 @@ struct fd *open_fd( struct fd *root, const char *name, int flags, mode_t *mode, - fd->closed = closed_fd; - fd->cacheable = !inode->device->removable; - list_add_head( &inode->open, &fd->inode_entry ); -+ closed_fd = NULL; - - /* check directory options */ - if ((options & FILE_DIRECTORY_FILE) && !S_ISDIR(st.st_mode)) - { -- release_object( fd ); - set_error( STATUS_NOT_A_DIRECTORY ); -- return NULL; -+ goto error; - } - if ((options & FILE_NON_DIRECTORY_FILE) && S_ISDIR(st.st_mode)) - { -- release_object( fd ); - set_error( STATUS_FILE_IS_A_DIRECTORY ); -- return NULL; -+ goto error; - } - if ((err = check_sharing( fd, access, sharing, flags, options ))) - { -- release_object( fd ); - set_error( err ); -- return NULL; -+ goto error; - } -- closed_fd->unlink = (options & FILE_DELETE_ON_CLOSE) != 0; -+ fd->closed->unlink = (options & FILE_DELETE_ON_CLOSE) != 0; - if (flags & O_TRUNC) - { - if (S_ISDIR(st.st_mode)) - { -- release_object( fd ); - set_error( STATUS_OBJECT_NAME_COLLISION ); -- return NULL; -+ goto error; - } - ftruncate( fd->unix_fd, 0 ); - } -@@ -1877,6 +1874,7 @@ struct fd *open_fd( struct fd *root, const char *name, int flags, mode_t *mode, - free( closed_fd ); - fd->cacheable = 1; - } -+ if (root_fd != -1) fchdir( server_dir_fd ); /* go back to the server dir */ - return fd; - - error: --- -2.5.0 - diff --git a/patches/server-Working_Directory/definition b/patches/server-Working_Directory/definition deleted file mode 100644 index 37d7c5dd..00000000 --- a/patches/server-Working_Directory/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: Fix failure to create anonymous file mapping after failed open_fd server call diff --git a/patches/wineconsole-Forward_Exitcode/0001-wineconsole-Forward-child-process-exitcode.patch b/patches/wineconsole-Forward_Exitcode/0001-wineconsole-Forward-child-process-exitcode.patch deleted file mode 100644 index b964e000..00000000 --- a/patches/wineconsole-Forward_Exitcode/0001-wineconsole-Forward-child-process-exitcode.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 455d3fe40a00e970a8e31e59c5d88ae671bd6802 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Mon, 13 Jul 2015 02:22:47 +0200 -Subject: wineconsole: Forward child process exitcode. - ---- - programs/wineconsole/winecon_private.h | 1 + - programs/wineconsole/wineconsole.c | 17 ++++++++++++++--- - 2 files changed, 15 insertions(+), 3 deletions(-) - -diff --git a/programs/wineconsole/winecon_private.h b/programs/wineconsole/winecon_private.h -index 2178dd0..5608f99 100644 ---- a/programs/wineconsole/winecon_private.h -+++ b/programs/wineconsole/winecon_private.h -@@ -59,6 +59,7 @@ struct inner_data { - HANDLE hConIn; /* console input handle */ - HANDLE hConOut; /* screen buffer handle: has to be changed when active sb changes */ - HANDLE hSynchro; /* waitable handle signalled by server when something in server has been modified */ -+ HANDLE hProcess; /* handle to the child process or NULL */ - HWND hWnd; /* handle of 'user' window or NULL for 'curses' */ - INT nCmdShow; /* argument of WinMain */ - BOOL in_set_config; /* to handle re-entrant calls to WINECON_SetConfig */ -diff --git a/programs/wineconsole/wineconsole.c b/programs/wineconsole/wineconsole.c -index 4ea5f84..f92632c 100644 ---- a/programs/wineconsole/wineconsole.c -+++ b/programs/wineconsole/wineconsole.c -@@ -541,6 +541,7 @@ static void WINECON_Delete(struct inner_data* data) - if (data->hConIn) CloseHandle(data->hConIn); - if (data->hConOut) CloseHandle(data->hConOut); - if (data->hSynchro) CloseHandle(data->hSynchro); -+ if (data->hProcess) CloseHandle(data->hProcess); - HeapFree(GetProcessHeap(), 0, data->curcfg.registry); - HeapFree(GetProcessHeap(), 0, data->cells); - HeapFree(GetProcessHeap(), 0, data); -@@ -749,7 +750,7 @@ static BOOL WINECON_Spawn(struct inner_data* data, LPWSTR cmdLine) - done = CreateProcessW(NULL, cmdLine, NULL, NULL, TRUE, 0L, NULL, NULL, &startup, &info); - if (done) - { -- CloseHandle(info.hProcess); -+ data->hProcess = info.hProcess; - CloseHandle(info.hThread); - } - -@@ -892,8 +893,18 @@ int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, INT nCmdSh - - if (!ret) - { -- WINE_TRACE("calling MainLoop.\n"); -- ret = data->fnMainLoop(data); -+ DWORD exitcode; -+ -+ WINE_TRACE("calling MainLoop.\n"); -+ ret = data->fnMainLoop(data); -+ -+ if (!ret && data->hProcess && -+ WaitForSingleObject(data->hProcess, INFINITE) == WAIT_OBJECT_0 && -+ GetExitCodeProcess(data->hProcess, &exitcode)) -+ { -+ WINE_TRACE("forwarding exitcode %u from child process\n", exitcode); -+ ret = exitcode; -+ } - } - - WINECON_Delete(data); --- -2.4.5 - diff --git a/patches/wineconsole-Forward_Exitcode/definition b/patches/wineconsole-Forward_Exitcode/definition deleted file mode 100644 index 3e19c6b5..00000000 --- a/patches/wineconsole-Forward_Exitcode/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: Forward exitcode from child process when in wineconsole diff --git a/patches/wined3d-CSMT_Main/0056-wined3d-Request-a-glFinish-before-modifying-resource.patch b/patches/wined3d-CSMT_Main/0056-wined3d-Request-a-glFinish-before-modifying-resource.patch index a69136a2..d47e9607 100644 --- a/patches/wined3d-CSMT_Main/0056-wined3d-Request-a-glFinish-before-modifying-resource.patch +++ b/patches/wined3d-CSMT_Main/0056-wined3d-Request-a-glFinish-before-modifying-resource.patch @@ -1,4 +1,4 @@ -From 76b683f536da9f8465eca14ed1505dff8596bf5c Mon Sep 17 00:00:00 2001 +From a79863383e3dc7dfff564432e6c5086aa612d8af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Thu, 4 Apr 2013 11:50:09 +0200 Subject: wined3d: Request a glFinish before modifying resources outside the cs @@ -13,7 +13,7 @@ Subject: wined3d: Request a glFinish before modifying resources outside the cs 6 files changed, 104 insertions(+) diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c -index df82bd2..e1c40bb 100644 +index 0735ab7..3f740dd 100644 --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c @@ -931,6 +931,15 @@ void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_conte @@ -51,7 +51,7 @@ index df82bd2..e1c40bb 100644 /* Filter redundant WINED3D_MAP_DISCARD maps. The 3DMark2001 multitexture * fill rate test seems to depend on this. When we map a buffer with diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c -index 410a431..b2d087d 100644 +index 63ac035..b7bedbf 100644 --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c @@ -66,6 +66,7 @@ enum wined3d_cs_op @@ -74,7 +74,7 @@ index 410a431..b2d087d 100644 /* FIXME: The list synchronization probably isn't particularly fast. */ static void wined3d_cs_list_enqueue(struct wined3d_cs_list *list, struct wined3d_cs_block *block) { -@@ -1363,6 +1369,29 @@ void wined3d_cs_emit_reset_state(struct wined3d_cs *cs) +@@ -1364,6 +1370,29 @@ void wined3d_cs_emit_reset_state(struct wined3d_cs *cs) cs->ops->submit(cs); } @@ -104,7 +104,7 @@ index 410a431..b2d087d 100644 static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) = { /* WINED3D_CS_OP_FENCE */ wined3d_cs_exec_fence, -@@ -1395,6 +1424,7 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void +@@ -1396,6 +1425,7 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void /* WINED3D_CS_OP_STATEBLOCK */ wined3d_cs_exec_transfer_stateblock, /* WINED3D_CS_OP_SET_VS_CONSTS_F */ wined3d_cs_exec_set_vs_consts_f, /* WINED3D_CS_OP_SET_PS_CONSTS_F */ wined3d_cs_exec_set_ps_consts_f, @@ -113,10 +113,10 @@ index 410a431..b2d087d 100644 static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index a6a88ae..7ab8fc0 100644 +index d43075b..5e5f3f5 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c -@@ -2759,6 +2759,13 @@ static HRESULT process_vertices_strided(const struct wined3d_device *device, DWO +@@ -2765,6 +2765,13 @@ static HRESULT process_vertices_strided(const struct wined3d_device *device, DWO return hr; } @@ -130,7 +130,7 @@ index a6a88ae..7ab8fc0 100644 wined3d_device_get_transform(device, WINED3D_TS_VIEW, &view_mat); wined3d_device_get_transform(device, WINED3D_TS_PROJECTION, &proj_mat); wined3d_device_get_transform(device, WINED3D_TS_WORLD_MATRIX(0), &world_mat); -@@ -3572,6 +3579,13 @@ HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device, +@@ -3562,6 +3569,13 @@ HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device, ++src_skip_levels; } @@ -144,7 +144,7 @@ index a6a88ae..7ab8fc0 100644 /* Make sure that the destination texture is loaded. */ context = context_acquire(device, NULL); wined3d_texture_load(dst_texture, context, FALSE); -@@ -3818,6 +3832,13 @@ HRESULT CDECL wined3d_device_update_surface(struct wined3d_device *device, +@@ -3810,6 +3824,13 @@ HRESULT CDECL wined3d_device_update_surface(struct wined3d_device *device, return WINED3DERR_INVALIDCALL; } @@ -158,7 +158,7 @@ index a6a88ae..7ab8fc0 100644 return surface_upload_from_surface(dst_surface, dst_point, src_surface, src_rect); } -@@ -3920,6 +3941,13 @@ HRESULT CDECL wined3d_device_clear_rendertarget_view(struct wined3d_device *devi +@@ -4064,6 +4085,13 @@ HRESULT CDECL wined3d_device_clear_rendertarget_view(struct wined3d_device *devi rect = &r; } @@ -172,7 +172,7 @@ index a6a88ae..7ab8fc0 100644 resource = wined3d_texture_get_sub_resource(wined3d_texture_from_resource(resource), view->sub_resource_idx); return surface_color_fill(surface_from_resource(resource), rect, color); -@@ -4233,6 +4261,13 @@ void CDECL wined3d_device_evict_managed_resources(struct wined3d_device *device) +@@ -4377,6 +4405,13 @@ void CDECL wined3d_device_evict_managed_resources(struct wined3d_device *device) TRACE("device %p.\n", device); @@ -186,9 +186,9 @@ index a6a88ae..7ab8fc0 100644 LIST_FOR_EACH_ENTRY_SAFE(resource, cursor, &device->resources, struct wined3d_resource, resource_list_entry) { TRACE("Checking resource %p for eviction.\n", resource); -@@ -4358,6 +4393,13 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, - - TRACE("device %p, swapchain_desc %p, mode %p, callback %p.\n", device, swapchain_desc, mode, callback); +@@ -4499,6 +4534,13 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, + TRACE("device %p, swapchain_desc %p, mode %p, callback %p, reset_state %#x.\n", + device, swapchain_desc, mode, callback, reset_state); + if (wined3d_settings.cs_multithreaded) + { @@ -201,10 +201,10 @@ index a6a88ae..7ab8fc0 100644 { ERR("Failed to get the first implicit swapchain.\n"); diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c -index 568f2cb..f379bbc 100644 +index 9c40d42..c72987c 100644 --- a/dlls/wined3d/resource.c +++ b/dlls/wined3d/resource.c -@@ -716,6 +716,13 @@ HRESULT wined3d_resource_map(struct wined3d_resource *resource, +@@ -786,6 +786,13 @@ HRESULT wined3d_resource_map(struct wined3d_resource *resource, flags = wined3d_resource_sanitize_map_flags(resource, flags); @@ -219,10 +219,10 @@ index 568f2cb..f379bbc 100644 context = context_acquire(device, NULL); diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index ef683f7..b81d137 100644 +index cba9da9..5e44494 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c -@@ -5119,6 +5119,13 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC +@@ -5007,6 +5007,13 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC flags &= ~WINEDDBLT_DONOTWAIT; } @@ -237,10 +237,10 @@ index ef683f7..b81d137 100644 { WARN("D3D not initialized, using fallback.\n"); diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index 4f232be..6116a5a 100644 +index d018cd9..2e42c79 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -2663,6 +2663,7 @@ void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs, +@@ -2702,6 +2702,7 @@ void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs, void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_viewport *viewport) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_consts_f(struct wined3d_cs *cs, UINT start_register, const float *constants, UINT vector4f_count, enum wined3d_shader_type type) DECLSPEC_HIDDEN; @@ -249,5 +249,5 @@ index 4f232be..6116a5a 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 -- -2.3.5 +2.5.1 diff --git a/patches/wined3d-CSMT_Main/0073-wined3d-Send-blits-through-the-command-stream.patch b/patches/wined3d-CSMT_Main/0073-wined3d-Send-blits-through-the-command-stream.patch index 3e0ddb37..3e480922 100644 --- a/patches/wined3d-CSMT_Main/0073-wined3d-Send-blits-through-the-command-stream.patch +++ b/patches/wined3d-CSMT_Main/0073-wined3d-Send-blits-through-the-command-stream.patch @@ -1,4 +1,4 @@ -From 48138b14119c096c1a27b659ac1dd473132daf11 Mon Sep 17 00:00:00 2001 +From d1aad2f4c1a9f299baf205228da8028aa1ae3883 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Mon, 29 Apr 2013 18:49:53 +0200 Subject: wined3d: Send blits through the command stream. @@ -122,10 +122,10 @@ index fcc5ed7..550206f 100644 { struct wined3d_cs_block *block; diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index f08e32e..a119718 100644 +index 5e44494..31c1a29 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c -@@ -5000,14 +5000,13 @@ const struct blit_shader cpu_blit = { +@@ -4891,14 +4891,13 @@ const struct blit_shader cpu_blit = { cpu_blit_blit_surface, }; @@ -142,11 +142,11 @@ index f08e32e..a119718 100644 BOOL scale, convert; static const DWORD simple_blit = WINEDDBLT_ASYNC -@@ -5018,111 +5017,6 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC +@@ -4909,111 +4908,6 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC | WINEDDBLT_DEPTHFILL | WINEDDBLT_DONOTWAIT; -- TRACE("dst_surface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, fx %p, filter %s.\n", +- TRACE("dst_surface %p, dst_rect_in %s, src_surface %p, src_rect_in %s, flags %#x, fx %p, filter %s.\n", - dst_surface, wine_dbgstr_rect(dst_rect_in), src_surface, wine_dbgstr_rect(src_rect_in), - flags, fx, debug_d3dtexturefiltertype(filter)); - TRACE("Usage is %s.\n", debug_d3dusage(dst_surface->resource.usage)); @@ -254,7 +254,7 @@ index f08e32e..a119718 100644 if (!device->d3d_initialized) { WARN("D3D not initialized, using fallback.\n"); -@@ -5165,8 +5059,8 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC +@@ -5056,8 +4950,8 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC } scale = src_surface @@ -265,7 +265,7 @@ index f08e32e..a119718 100644 convert = src_surface && src_surface->resource.format->id != dst_surface->resource.format->id; dst_ds_flags = dst_surface->container->resource.format_flags -@@ -5186,22 +5080,16 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC +@@ -5077,22 +4971,16 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC TRACE("Depth fill.\n"); if (!surface_convert_depth_to_float(dst_surface, fx->u5.dwFillDepth, &depth)) @@ -293,7 +293,7 @@ index f08e32e..a119718 100644 } } else -@@ -5232,8 +5120,8 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC +@@ -5123,8 +5011,8 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC palette, fx->u5.dwFillColor, &color)) goto fallback; @@ -304,7 +304,7 @@ index f08e32e..a119718 100644 } else { -@@ -5261,9 +5149,9 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC +@@ -5152,9 +5040,9 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC TRACE("Not doing upload because of format conversion.\n"); else { @@ -316,7 +316,7 @@ index f08e32e..a119718 100644 { if (!wined3d_resource_is_offscreen(&dst_surface->container->resource)) { -@@ -5272,7 +5160,7 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC +@@ -5163,7 +5051,7 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC dst_surface->container->resource.draw_binding); context_release(context); } @@ -325,7 +325,7 @@ index f08e32e..a119718 100644 } } } -@@ -5296,50 +5184,193 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC +@@ -5187,50 +5075,193 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC wined3d_swapchain_present(dst_swapchain, NULL, NULL, dst_swapchain->win_handle, NULL, 0); dst_swapchain->desc.swap_effect = swap_effect; @@ -400,7 +400,7 @@ index f08e32e..a119718 100644 + struct wined3d_device *device = dst_surface->resource.device; + RECT src_rect, dst_rect; + -+ TRACE("dst_surface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, fx %p, filter %s.\n", ++ TRACE("dst_surface %p, dst_rect_in %s, src_surface %p, src_rect_in %s, flags %#x, fx %p, filter %s.\n", + dst_surface, wine_dbgstr_rect(dst_rect_in), src_surface, wine_dbgstr_rect(src_rect_in), + flags, fx, debug_d3dtexturefiltertype(filter)); + TRACE("Usage is %s.\n", debug_d3dusage(dst_surface->resource.usage)); @@ -533,7 +533,7 @@ index f08e32e..a119718 100644 static const struct wined3d_resource_ops surface_resource_ops = diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index 576a9ef..f8a9860 100644 +index 4010e4d..80c9880 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2490,6 +2490,9 @@ void wined3d_surface_destroy(struct wined3d_surface *surface) DECLSPEC_HIDDEN; @@ -546,7 +546,7 @@ index 576a9ef..f8a9860 100644 void draw_textured_quad(const struct wined3d_surface *src_surface, struct wined3d_context *context, const RECT *src_rect, const RECT *dst_rect, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN; -@@ -2639,6 +2642,7 @@ struct wined3d_cs +@@ -2638,6 +2641,7 @@ struct wined3d_cs struct wined3d_device *device; struct wined3d_state state; HANDLE thread; @@ -554,7 +554,7 @@ index 576a9ef..f8a9860 100644 DWORD tls_idx; struct wined3d_surface *onscreen_depth_stencil; -@@ -2717,6 +2721,10 @@ void wined3d_cs_emit_set_primitive_type(struct wined3d_cs *cs, +@@ -2716,6 +2720,10 @@ void wined3d_cs_emit_set_primitive_type(struct wined3d_cs *cs, GLenum primitive_type) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_light(struct wined3d_cs *cs, const struct wined3d_light_info *light) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_light_enable(struct wined3d_cs *cs, UINT idx, BOOL enable) DECLSPEC_HIDDEN; diff --git a/patches/wined3d-CSMT_Main/0165-wined3d-Remove-the-device_reset-CS-sync-fixme.patch b/patches/wined3d-CSMT_Main/0165-wined3d-Remove-the-device_reset-CS-sync-fixme.patch index c62bf21b..526f585c 100644 --- a/patches/wined3d-CSMT_Main/0165-wined3d-Remove-the-device_reset-CS-sync-fixme.patch +++ b/patches/wined3d-CSMT_Main/0165-wined3d-Remove-the-device_reset-CS-sync-fixme.patch @@ -1,21 +1,20 @@ -From 0dafdc38e8dd712f59666224ed22ffe91cc72a76 Mon Sep 17 00:00:00 2001 +From 87ccefcb423dc16c82c5324fba63a6f30a7c8126 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Fri, 29 Aug 2014 14:46:55 +0200 Subject: wined3d: Remove the device_reset CS sync fixme. --- - dlls/wined3d/device.c | 9 ++------- - 1 file changed, 2 insertions(+), 7 deletions(-) + dlls/wined3d/device.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index 63eb87e..7bc6aeb 100644 +index f79db11..18cecac 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c -@@ -4215,13 +4215,8 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, - unsigned int i; +@@ -4402,12 +4402,8 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, + TRACE("device %p, swapchain_desc %p, mode %p, callback %p, reset_state %#x.\n", + device, swapchain_desc, mode, callback, reset_state); - TRACE("device %p, swapchain_desc %p, mode %p, callback %p.\n", device, swapchain_desc, mode, callback); -- - if (wined3d_settings.cs_multithreaded) - { - FIXME("Waiting for cs.\n"); @@ -28,5 +27,5 @@ index 63eb87e..7bc6aeb 100644 if (!(swapchain = wined3d_device_get_swapchain(device, 0))) { -- -2.1.3 +2.5.1 diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index 84c76b5d..6afa0d24 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -4417,18 +4417,19 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c return WINED3D_OK; } -@@ -4382,8 +5072,10 @@ - unsigned int i; +@@ -4384,9 +5074,11 @@ + TRACE("device %p, swapchain_desc %p, mode %p, callback %p, reset_state %#x.\n", + device, swapchain_desc, mode, callback, reset_state); - TRACE("device %p, swapchain_desc %p, mode %p, callback %p.\n", device, swapchain_desc, mode, callback); +#if defined(STAGING_CSMT) wined3d_cs_emit_glfinish(device->cs); device->cs->ops->finish(device->cs); -+#endif /* STAGING_CSMT */ ++#endif /* STAGING_CSMT */ if (!(swapchain = wined3d_device_get_swapchain(device, 0))) { -@@ -4399,9 +5091,21 @@ + ERR("Failed to get the first implicit swapchain.\n"); +@@ -4401,9 +5093,21 @@ wined3d_texture_decref(device->logo_texture); device->logo_texture = NULL; } @@ -4450,7 +4451,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c { for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i) { -@@ -4410,6 +5114,7 @@ +@@ -4412,6 +5116,7 @@ } wined3d_device_set_depth_stencil_view(device, NULL); @@ -4458,7 +4459,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (reset_state) { state_unbind_resources(&device->state); -@@ -4419,6 +5124,12 @@ +@@ -4421,6 +5126,12 @@ { wined3d_surface_decref(device->cs->onscreen_depth_stencil); device->cs->onscreen_depth_stencil = NULL; @@ -4471,7 +4472,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } if (reset_state) -@@ -4431,6 +5142,7 @@ +@@ -4433,6 +5144,7 @@ } } @@ -4479,7 +4480,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c /* Free implicit resources and wait for the command stream before modifying * swapchain parameters. After modifying the swapchain parameters a new GL * context may be acquired by the worker thread. This causes problems in the -@@ -4452,6 +5164,7 @@ +@@ -4454,6 +5166,7 @@ } device->cs->ops->finish(device->cs); @@ -4487,7 +4488,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c TRACE("New params:\n"); TRACE("backbuffer_width %u\n", swapchain_desc->backbuffer_width); TRACE("backbuffer_height %u\n", swapchain_desc->backbuffer_height); -@@ -4578,6 +5291,13 @@ +@@ -4580,6 +5293,13 @@ swapchain_desc->multisample_type, swapchain_desc->multisample_quality))) return hr; @@ -4501,7 +4502,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (swapchain->desc.enable_auto_depth_stencil) { struct wined3d_resource_desc texture_desc; -@@ -4620,6 +5340,13 @@ +@@ -4622,6 +5342,13 @@ wined3d_device_set_depth_stencil_view(device, device->auto_depth_stencil_view); } @@ -4515,7 +4516,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (swapchain->desc.backbuffer_count && FAILED(hr = wined3d_rendertarget_view_create_from_surface( surface_from_resource(wined3d_texture_get_sub_resource(swapchain->back_buffers[0], 0)), NULL, &wined3d_null_parent_ops, &device->back_buffer_view))) -@@ -4640,12 +5367,20 @@ +@@ -4642,12 +5369,20 @@ } wined3d_cs_emit_reset_state(device->cs); state_cleanup(&device->state); @@ -4536,7 +4537,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c &device->adapter->d3d_info, WINED3D_STATE_INIT_DEFAULT))) ERR("Failed to initialize device state, hr %#x.\n", hr); device->update_state = &device->state; -@@ -4654,6 +5389,7 @@ +@@ -4656,6 +5391,7 @@ } else if (device->back_buffer_view) { @@ -4544,7 +4545,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c struct wined3d_state *state = &device->state; wined3d_device_set_rendertarget_view(device, 0, device->back_buffer_view, FALSE); -@@ -4669,6 +5405,24 @@ +@@ -4671,6 +5407,24 @@ state->scissor_rect.left = 0; state->scissor_rect.right = swapchain->desc.backbuffer_width; state->scissor_rect.bottom = swapchain->desc.backbuffer_height; @@ -4569,7 +4570,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c wined3d_cs_emit_set_scissor_rect(device->cs, &state->scissor_rect); } -@@ -4744,6 +5498,10 @@ +@@ -4746,6 +5500,10 @@ TRACE("device %p, resource %p, type %s.\n", device, resource, debug_d3dresourcetype(type)); @@ -4580,7 +4581,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c switch (type) { case WINED3D_RTYPE_SURFACE: -@@ -4754,6 +5512,7 @@ +@@ -4756,6 +5514,7 @@ for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i) { @@ -4588,7 +4589,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (wined3d_rendertarget_view_get_surface(device->state.fb.render_targets[i]) == surface) { ERR("Surface %p is still in use as render target %u.\n", surface, i); -@@ -4765,6 +5524,19 @@ +@@ -4767,6 +5526,19 @@ { ERR("Surface %p is still in use as depth/stencil buffer.\n", surface); device->state.fb.depth_stencil = NULL; @@ -4608,7 +4609,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } } break; -@@ -4927,7 +5699,11 @@ +@@ -4929,7 +5701,11 @@ device->blitter = adapter->blitter; @@ -4620,7 +4621,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c &adapter->d3d_info, WINED3D_STATE_INIT_DEFAULT))) { ERR("Failed to initialize device state, hr %#x.\n", hr); -@@ -5026,6 +5802,7 @@ +@@ -5028,6 +5804,7 @@ else return CallWindowProcA(proc, window, message, wparam, lparam); } @@ -4628,7 +4629,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c /* Context activation is done by the caller */ struct wined3d_gl_bo *wined3d_device_get_bo(struct wined3d_device *device, UINT size, GLenum gl_usage, -@@ -5079,3 +5856,4 @@ +@@ -5081,3 +5858,4 @@ wined3d_device_destroy_bo(device, context, bo); } @@ -8987,7 +8988,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c | WINEDDBLT_DONOTWAIT; +#if !defined(STAGING_CSMT) -+ TRACE("dst_surface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, fx %p, filter %s.\n", ++ TRACE("dst_surface %p, dst_rect_in %s, src_surface %p, src_rect_in %s, flags %#x, fx %p, filter %s.\n", + dst_surface, wine_dbgstr_rect(dst_rect_in), src_surface, wine_dbgstr_rect(src_rect_in), + flags, fx, debug_d3dtexturefiltertype(filter)); + TRACE("Usage is %s.\n", debug_d3dusage(dst_surface->resource.usage)); @@ -9890,7 +9891,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c return WINED3D_OK; } -@@ -1388,6 +1624,7 @@ +@@ -1389,6 +1625,7 @@ return WINED3D_OK; } @@ -9898,7 +9899,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c void buffer_swap_mem(struct wined3d_buffer *buffer, BYTE *mem) { -@@ -1395,3 +1632,4 @@ +@@ -1396,3 +1633,4 @@ buffer->resource.heap_memory = mem; buffer->flags |= WINED3D_BUFFER_DISCARD; }