diff --git a/patches/amstream-GetMultiMediaStream/0001-amstream-Implement-IAMMediaStream-GetMultiMediaStrea.patch b/patches/amstream-GetMultiMediaStream/0001-amstream-Implement-IAMMediaStream-GetMultiMediaStrea.patch index 648e787d..b16998e0 100644 --- a/patches/amstream-GetMultiMediaStream/0001-amstream-Implement-IAMMediaStream-GetMultiMediaStrea.patch +++ b/patches/amstream-GetMultiMediaStream/0001-amstream-Implement-IAMMediaStream-GetMultiMediaStrea.patch @@ -1,14 +1,14 @@ -From 4d0e6bbc00bd49b8dcfce494bd7380c49f58f92b Mon Sep 17 00:00:00 2001 +From 4bec6ad3640799a4b8bdb1d1987d8e65e15c0355 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Tue, 28 Jul 2015 18:21:20 +0200 Subject: amstream: Implement IAMMediaStream::GetMultiMediaStream. --- - dlls/amstream/mediastream.c | 40 ++++++++++++++++++++++++++++++++-------- - 1 file changed, 32 insertions(+), 8 deletions(-) + dlls/amstream/mediastream.c | 30 ++++++++++++++++++++++++------ + 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/dlls/amstream/mediastream.c b/dlls/amstream/mediastream.c -index 947be1e..e4e15d7 100644 +index 51349ab..98fca62 100644 --- a/dlls/amstream/mediastream.c +++ b/dlls/amstream/mediastream.c @@ -110,9 +110,15 @@ static HRESULT WINAPI DirectDrawMediaStreamImpl_IAMMediaStream_GetMultiMediaStre @@ -29,25 +29,7 @@ index 947be1e..e4e15d7 100644 } static HRESULT WINAPI DirectDrawMediaStreamImpl_IAMMediaStream_GetInformation(IAMMediaStream *iface, -@@ -271,9 +277,15 @@ static HRESULT WINAPI DirectDrawMediaStreamImpl_IDirectDrawMediaStream_GetMultiM - { - DirectDrawMediaStreamImpl *This = impl_from_IDirectDrawMediaStream(iface); - -- FIXME("(%p/%p)->(%p) stub!\n", This, iface, ppMultiMediaStream); -+ TRACE("(%p/%p)->(%p) stub!\n", This, iface, ppMultiMediaStream); - -- return S_FALSE; -+ if (!ppMultiMediaStream) -+ return E_POINTER; -+ -+ IMultiMediaStream_AddRef(This->parent); -+ *ppMultiMediaStream = This->parent; -+ -+ return S_OK; - } - - static HRESULT WINAPI DirectDrawMediaStreamImpl_IDirectDrawMediaStream_GetInformation(IDirectDrawMediaStream *iface, -@@ -511,9 +523,15 @@ static HRESULT WINAPI AudioMediaStreamImpl_IAMMediaStream_GetMultiMediaStream(IA +@@ -517,9 +523,15 @@ static HRESULT WINAPI AudioMediaStreamImpl_IAMMediaStream_GetMultiMediaStream(IA { AudioMediaStreamImpl *This = impl_from_AudioMediaStream_IAMMediaStream(iface); @@ -65,7 +47,7 @@ index 947be1e..e4e15d7 100644 } static HRESULT WINAPI AudioMediaStreamImpl_IAMMediaStream_GetInformation(IAMMediaStream *iface, -@@ -672,9 +690,15 @@ static HRESULT WINAPI AudioMediaStreamImpl_IAudioMediaStream_GetMultiMediaStream +@@ -678,9 +690,15 @@ static HRESULT WINAPI AudioMediaStreamImpl_IAudioMediaStream_GetMultiMediaStream { AudioMediaStreamImpl *This = impl_from_IAudioMediaStream(iface); @@ -84,5 +66,5 @@ index 947be1e..e4e15d7 100644 static HRESULT WINAPI AudioMediaStreamImpl_IAudioMediaStream_GetInformation(IAudioMediaStream *iface, -- -2.4.5 +2.9.0 diff --git a/patches/api-ms-win-crt-Stub_DLLs/0001-ucrtbase-Hook-up-some-functions-with-new-names-to-ex.patch b/patches/api-ms-win-crt-Stub_DLLs/0001-ucrtbase-Hook-up-some-functions-with-new-names-to-ex.patch deleted file mode 100644 index 31bd121f..00000000 --- a/patches/api-ms-win-crt-Stub_DLLs/0001-ucrtbase-Hook-up-some-functions-with-new-names-to-ex.patch +++ /dev/null @@ -1,46 +0,0 @@ -From fe4c1e1f10f8edc76c5dad994ed2e5202f9c2821 Mon Sep 17 00:00:00 2001 -From: Martin Storsjo -Date: Mon, 3 Aug 2015 22:26:01 +0300 -Subject: ucrtbase: Hook up some functions with new names to existing - implementations - -These are some functions that on a first glance seem to have a -matching signature even though the name has changed. ---- - dlls/ucrtbase/ucrtbase.spec | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec -index bb56408..cee094d 100644 ---- a/dlls/ucrtbase/ucrtbase.spec -+++ b/dlls/ucrtbase/ucrtbase.spec -@@ -211,7 +211,7 @@ - @ cdecl _c_exit() MSVCRT__c_exit - @ cdecl _cabs(long) MSVCRT__cabs - @ cdecl _callnewh(long) --@ stub _calloc_base -+@ cdecl _calloc_base(long long) MSVCRT_calloc - @ cdecl _cexit() MSVCRT__cexit - @ cdecl _cgets(ptr) - @ stub _cgets_s -@@ -333,7 +333,7 @@ - @ cdecl _fputwchar(long) MSVCRT__fputwchar - @ cdecl _fread_nolock(ptr long long ptr) MSVCRT__fread_nolock - @ cdecl _fread_nolock_s(ptr long long long ptr) MSVCRT__fread_nolock_s --@ stub _free_base -+@ cdecl _free_base(ptr) MSVCRT_free - @ cdecl _free_locale(ptr) MSVCRT__free_locale - @ cdecl _fseek_nolock(ptr long long) MSVCRT__fseek_nolock - @ cdecl _fseeki64(ptr int64 long) MSVCRT__fseeki64 -@@ -580,7 +580,7 @@ - @ cdecl _ltow_s(long ptr long long) MSVCRT__ltow_s - @ cdecl _makepath(ptr str str str str) MSVCRT__makepath - @ cdecl _makepath_s(ptr long str str str str) MSVCRT__makepath_s --@ stub _malloc_base -+@ cdecl _malloc_base(long) MSVCRT_malloc - @ cdecl _mbbtombc(long) - @ stub _mbbtombc_l - @ cdecl _mbbtype(long long) --- -2.5.0 - diff --git a/patches/api-ms-win-crt-Stub_DLLs/definition b/patches/api-ms-win-crt-Stub_DLLs/definition deleted file mode 100644 index a2dca98b..00000000 --- a/patches/api-ms-win-crt-Stub_DLLs/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: Add stub dlls required for MSVC 2015 runtime library (Windows 10) diff --git a/patches/hal-KeQueryPerformanceCounter/0001-hal-Implement-KeQueryPerformanceCounter.patch b/patches/hal-KeQueryPerformanceCounter/0001-hal-Implement-KeQueryPerformanceCounter.patch index 5df6c7cd..f95f2aa3 100644 --- a/patches/hal-KeQueryPerformanceCounter/0001-hal-Implement-KeQueryPerformanceCounter.patch +++ b/patches/hal-KeQueryPerformanceCounter/0001-hal-Implement-KeQueryPerformanceCounter.patch @@ -1,4 +1,4 @@ -From 6ae55e62a81e4f4ded0ea14926f014b6d6a4b633 Mon Sep 17 00:00:00 2001 +From 3c0f4068c5e5319560525b157e704dccf0e6353e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Wed, 28 Oct 2015 22:36:01 +0100 Subject: hal: Implement KeQueryPerformanceCounter. @@ -9,12 +9,12 @@ Subject: hal: Implement KeQueryPerformanceCounter. 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/dlls/hal/hal.c b/dlls/hal/hal.c -index 96bc895..145869d 100644 +index 0b2e422..be3a48b 100644 --- a/dlls/hal/hal.c +++ b/dlls/hal/hal.c -@@ -155,3 +155,13 @@ KIRQL WINAPI KeGetCurrentIrql(VOID) - FIXME( " stub!\n"); - return 0; +@@ -172,3 +172,13 @@ void WINAPI WRITE_PORT_ULONG(ULONG *port, ULONG value) + { + FIXME("(%p %d) stub!\n", port, value); } + +ULONGLONG WINAPI KeQueryPerformanceCounter(LARGE_INTEGER *frequency) @@ -27,7 +27,7 @@ index 96bc895..145869d 100644 + return counter.QuadPart; +} diff --git a/dlls/hal/hal.spec b/dlls/hal/hal.spec -index 3046c65..dc908dd 100644 +index c21806c..243c67b 100644 --- a/dlls/hal/hal.spec +++ b/dlls/hal/hal.spec @@ -72,7 +72,7 @@ @@ -40,5 +40,5 @@ index 3046c65..dc908dd 100644 @ stub KeRaiseIrqlToDpcLevel @ stub KeRaiseIrqlToSynchLevel -- -2.6.2 +2.9.0 diff --git a/patches/kernel32-FreeUserPhysicalPages/0001-kernel32-add-FreeUserPhysicalPages-stub-try-2.patch b/patches/kernel32-FreeUserPhysicalPages/0001-kernel32-add-FreeUserPhysicalPages-stub-try-2.patch deleted file mode 100644 index 30532bc7..00000000 --- a/patches/kernel32-FreeUserPhysicalPages/0001-kernel32-add-FreeUserPhysicalPages-stub-try-2.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 0aab8389ccbaf7c89a37112faef790ef45b0b15f Mon Sep 17 00:00:00 2001 -From: Austin English -Date: Tue, 3 Nov 2015 11:03:54 -0600 -Subject: kernel32: add FreeUserPhysicalPages stub (try 2) - -For https://bugs.winehq.org/show_bug.cgi?id=39543 - -Signed-off-by: Austin English ---- - dlls/kernel32/heap.c | 7 +++++++ - dlls/kernel32/kernel32.spec | 4 ++-- - 2 files changed, 9 insertions(+), 2 deletions(-) - -diff --git a/dlls/kernel32/heap.c b/dlls/kernel32/heap.c -index 0c05de6..e86b292 100644 ---- a/dlls/kernel32/heap.c -+++ b/dlls/kernel32/heap.c -@@ -1490,3 +1490,10 @@ BOOL WINAPI AllocateUserPhysicalPages(HANDLE process, ULONG_PTR *pages, ULONG_PT - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return FALSE; - } -+ -+BOOL WINAPI FreeUserPhysicalPages(HANDLE process, ULONG_PTR *pages, ULONG_PTR *userarray) -+{ -+ FIXME("stub: %p %p %p\n", process, pages, userarray); -+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED); -+ return FALSE; -+} -diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec -index ff67e54..d4e1d01 100644 ---- a/dlls/kernel32/kernel32.spec -+++ b/dlls/kernel32/kernel32.spec -@@ -154,7 +154,7 @@ - @ stdcall AllocConsole() - @ stub -i386 AllocLSCallback - @ stdcall -i386 -private AllocSLCallback(ptr ptr) krnl386.exe16.AllocSLCallback --@ stdcall AllocateUserPhysicalPages(ptr ptr ptr) -+@ stdcall AllocateUserPhysicalPages(long ptr ptr) - @ stdcall ApplicationRecoveryFinished(long) - @ stdcall ApplicationRecoveryInProgress(ptr) - @ stdcall AreFileApisANSI() -@@ -535,7 +535,7 @@ - @ stdcall FreeLibraryWhenCallbackReturns(ptr ptr) ntdll.TpCallbackUnloadDllOnCompletion - @ stdcall FreeResource(long) - @ stdcall -i386 -private FreeSLCallback(long) krnl386.exe16.FreeSLCallback --@ stub FreeUserPhysicalPages -+@ stdcall FreeUserPhysicalPages(long ptr ptr) - @ stub FreeVirtualBuffer - @ stdcall GenerateConsoleCtrlEvent(long long) - @ stdcall -i386 -private Get16DLLAddress(long str) krnl386.exe16.Get16DLLAddress --- -2.6.2 - diff --git a/patches/kernel32-FreeUserPhysicalPages/definition b/patches/kernel32-FreeUserPhysicalPages/definition deleted file mode 100644 index ea24921e..00000000 --- a/patches/kernel32-FreeUserPhysicalPages/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [39543] Add stub kernel32.FreeUserPhysicalPages diff --git a/patches/libs-Unicode_Collation/0001-libs-Fix-most-problems-with-CompareString.patch b/patches/libs-Unicode_Collation/0001-libs-Fix-most-problems-with-CompareString.patch index 6b6c0ed7..d03d0455 100644 --- a/patches/libs-Unicode_Collation/0001-libs-Fix-most-problems-with-CompareString.patch +++ b/patches/libs-Unicode_Collation/0001-libs-Fix-most-problems-with-CompareString.patch @@ -1,4 +1,4 @@ -From 9a4f8fae5a735a8ceeec6136b548420abb69f336 Mon Sep 17 00:00:00 2001 +From f97150c35f617561b99e71f3b7568170f72890a6 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Mon, 28 Jul 2003 07:39:25 -0500 Subject: libs: Fix most problems with CompareString. @@ -9,10 +9,10 @@ Subject: libs: Fix most problems with CompareString. 2 files changed, 34 insertions(+), 35 deletions(-) diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c -index 7b0212e..cba3ebc 100644 +index 3054c50..d12378d 100644 --- a/dlls/kernel32/tests/locale.c +++ b/dlls/kernel32/tests/locale.c -@@ -1759,13 +1759,13 @@ static void test_CompareStringA(void) +@@ -1763,13 +1763,13 @@ static void test_CompareStringA(void) todo_wine ok(ret != CSTR_EQUAL, "\\2 vs \\1 expected unequal\n"); ret = CompareStringA(lcid, NORM_IGNORECASE | LOCALE_USE_CP_ACP, "#", -1, ".", -1); @@ -29,10 +29,10 @@ index 7b0212e..cba3ebc 100644 lcid = MAKELCID(MAKELANGID(LANG_POLISH, SUBLANG_DEFAULT), SORT_DEFAULT); -@@ -4600,6 +4600,5 @@ START_TEST(locale) - test_GetGeoInfo(); - test_EnumSystemGeoID(); +@@ -4851,6 +4851,5 @@ START_TEST(locale) test_invariant(); + test_GetSystemPreferredUILanguages(); + test_GetThreadPreferredUILanguages(); - /* this requires collation table patch to make it MS compatible */ - if (0) test_sorting(); + test_sorting(); @@ -168,5 +168,5 @@ index 465d740..f354a75 100644 0x0a130121, 0x0a140121, 0x02370121, 0x02350121, 0x03a30121, 0x03a40121, 0x03a50121, 0x024e0121, 0x02a10121, 0x0a150161, 0x0a290151, 0x0a3d0161, 0x0a490161, 0x0a650161, 0x0a910161, 0x0a990161, -- -2.6.2 +2.9.0 diff --git a/patches/ntdll-NtSetLdtEntries/0001-ntdll-add-NtSetLdtEntries-ZwSetLdtEntries-stub-try-2.patch b/patches/ntdll-NtSetLdtEntries/0001-ntdll-add-NtSetLdtEntries-ZwSetLdtEntries-stub-try-2.patch deleted file mode 100644 index 10d95bd4..00000000 --- a/patches/ntdll-NtSetLdtEntries/0001-ntdll-add-NtSetLdtEntries-ZwSetLdtEntries-stub-try-2.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 15201062dd669c30343f7d1a1157c254943267ea Mon Sep 17 00:00:00 2001 -From: Austin English -Date: Wed, 19 Feb 2014 12:54:00 -0800 -Subject: ntdll: add NtSetLdtEntries/ZwSetLdtEntries stub (try 2) - ---- - dlls/ntdll/nt.c | 12 ++++++++++++ - dlls/ntdll/ntdll.spec | 4 ++-- - include/ddk/wdm.h | 1 + - include/winternl.h | 2 +- - 4 files changed, 16 insertions(+), 3 deletions(-) - -diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c -index 73d9383..0d11037 100644 ---- a/dlls/ntdll/nt.c -+++ b/dlls/ntdll/nt.c -@@ -2446,3 +2446,15 @@ NTSTATUS WINAPI NtSystemDebugControl(SYSDBG_COMMAND command, PVOID inbuffer, ULO - - return STATUS_NOT_IMPLEMENTED; - } -+ -+/****************************************************************************** -+ * NtSetLdtEntries (NTDLL.@) -+ * ZwSetLdtEntries (NTDLL.@) -+ */ -+NTSTATUS WINAPI NtSetLdtEntries(ULONG selector1, ULONG entry1_low, ULONG entry1_high, -+ ULONG selector2, ULONG entry2_low, ULONG entry2_high) -+{ -+ FIXME("(%u, %u, %u, %u, %u, %u): stub\n", selector1, entry1_low, entry1_high, selector2, entry2_low, entry2_high); -+ -+ return STATUS_NOT_IMPLEMENTED; -+} -diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec -index 5bac269..f1dafc8 100644 ---- a/dlls/ntdll/ntdll.spec -+++ b/dlls/ntdll/ntdll.spec -@@ -332,7 +332,7 @@ - @ stdcall NtSetInformationToken(long long ptr long) - @ stdcall NtSetIntervalProfile(long long) - @ stdcall NtSetIoCompletion(ptr long ptr long long) --@ stub NtSetLdtEntries -+@ stdcall NtSetLdtEntries(long long long long long long) - @ stub NtSetLowEventPair - @ stub NtSetLowWaitHighEventPair - @ stub NtSetLowWaitHighThread -@@ -1209,7 +1209,7 @@ - @ stdcall ZwSetInformationToken(long long ptr long) NtSetInformationToken - @ stdcall ZwSetIntervalProfile(long long) NtSetIntervalProfile - @ stdcall ZwSetIoCompletion(ptr long ptr long long) NtSetIoCompletion --@ stub ZwSetLdtEntries -+@ stdcall ZwSetLdtEntries(long long long long long long) NtSetLdtEntries - @ stub ZwSetLowEventPair - @ stub ZwSetLowWaitHighEventPair - @ stub ZwSetLowWaitHighThread -diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h -index 29b24e7..ef4fa80 100644 ---- a/include/ddk/wdm.h -+++ b/include/ddk/wdm.h -@@ -1333,6 +1333,7 @@ NTSTATUS WINAPI ZwSetInformationObject(HANDLE, OBJECT_INFORMATION_CLASS, PVOID, - NTSTATUS WINAPI ZwSetInformationProcess(HANDLE,PROCESS_INFORMATION_CLASS,PVOID,ULONG); - NTSTATUS WINAPI ZwSetInformationThread(HANDLE,THREADINFOCLASS,LPCVOID,ULONG); - NTSTATUS WINAPI ZwSetIoCompletion(HANDLE,ULONG,ULONG,NTSTATUS,ULONG); -+NTSTATUS WINAPI ZwSetLdtEntries(ULONG,ULONG,ULONG,ULONG,ULONG,ULONG); - NTSTATUS WINAPI ZwSetSecurityObject(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR); - NTSTATUS WINAPI ZwSetSystemInformation(SYSTEM_INFORMATION_CLASS,PVOID,ULONG); - NTSTATUS WINAPI ZwSetSystemTime(const LARGE_INTEGER*,LARGE_INTEGER*); -diff --git a/include/winternl.h b/include/winternl.h -index 5a27f94..ddc7c18 100644 ---- a/include/winternl.h -+++ b/include/winternl.h -@@ -2228,7 +2228,7 @@ NTSYSAPI NTSTATUS WINAPI NtSetInformationThread(HANDLE,THREADINFOCLASS,LPCVOID, - NTSYSAPI NTSTATUS WINAPI NtSetInformationToken(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,ULONG); - NTSYSAPI NTSTATUS WINAPI NtSetIntervalProfile(ULONG,KPROFILE_SOURCE); - NTSYSAPI NTSTATUS WINAPI NtSetIoCompletion(HANDLE,ULONG_PTR,ULONG_PTR,NTSTATUS,SIZE_T); --NTSYSAPI NTSTATUS WINAPI NtSetLdtEntries(ULONG,LDT_ENTRY,ULONG,LDT_ENTRY); -+NTSYSAPI NTSTATUS WINAPI NtSetLdtEntries(ULONG,ULONG,ULONG,ULONG,ULONG,ULONG); - NTSYSAPI NTSTATUS WINAPI NtSetLowEventPair(HANDLE); - NTSYSAPI NTSTATUS WINAPI NtSetLowWaitHighEventPair(HANDLE); - NTSYSAPI NTSTATUS WINAPI NtSetLowWaitHighThread(VOID); --- -2.1.3 - diff --git a/patches/ntdll-NtSetLdtEntries/definition b/patches/ntdll-NtSetLdtEntries/definition deleted file mode 100644 index 46ea5767..00000000 --- a/patches/ntdll-NtSetLdtEntries/definition +++ /dev/null @@ -1,2 +0,0 @@ -Fixes: [26268] Add stub for NtSetLdtEntries/ZwSetLdtEntries -Category: stable diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 3e5c31b0..7c69ca34 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "205228eb80089c38b25e7249073021e7806d2bfa" + echo "c03303838dc648b4dc9fc8d0c78b4ec51a455253" } # Show version information @@ -90,7 +90,6 @@ patch_enable_all () enable_advapi32_RegCreateKeyTransacted="$1" enable_advapi32_SetSecurityInfo="$1" enable_amstream_GetMultiMediaStream="$1" - enable_api_ms_win_crt_Stub_DLLs="$1" enable_authz_Stub_Functions="$1" enable_browseui_Progress_Dialog="$1" enable_comctl32_Button_Theming="$1" @@ -152,7 +151,6 @@ patch_enable_all () enable_kernel32_CompareStringEx="$1" enable_kernel32_CopyFileEx="$1" enable_kernel32_Cwd_Startup_Info="$1" - enable_kernel32_FreeUserPhysicalPages="$1" enable_kernel32_GetLargestConsoleWindowSize="$1" enable_kernel32_LocaleNameToLCID="$1" enable_kernel32_Named_Pipe="$1" @@ -198,7 +196,6 @@ patch_enable_all () enable_ntdll_Loader_Machine_Type="$1" enable_ntdll_NtQueryEaFile="$1" enable_ntdll_NtQuerySection="$1" - enable_ntdll_NtSetLdtEntries="$1" enable_ntdll_Pipe_SpecialCharacters="$1" enable_ntdll_ProcessDebugFlags="$1" enable_ntdll_ProcessQuotaLimits="$1" @@ -230,7 +227,6 @@ patch_enable_all () enable_rasapi32_RasEnumDevicesA="$1" enable_riched20_IText_Interface="$1" enable_rpcrt4_Pipe_Transport="$1" - enable_secur32_ANSI_NTLM_Credentials="$1" enable_server_ClipCursor="$1" enable_server_CreateProcess_ACLs="$1" enable_server_Desktop_Refcount="$1" @@ -324,11 +320,9 @@ patch_enable_all () enable_wininet_ParseX509EncodedCertificateForListBoxEntry="$1" enable_winmm_Delay_Import_Depends="$1" enable_winspool_drv_SetPrinterW="$1" - enable_winsta_WinStationEnumerateW="$1" enable_wpcap_Dynamic_Linking="$1" enable_ws2_32_APC_Performance="$1" enable_ws2_32_Connect_Time="$1" - enable_ws2_32_Sort_default_route="$1" enable_ws2_32_TransmitFile="$1" enable_ws2_32_WSACleanup="$1" enable_ws2_32_WSAPoll="$1" @@ -375,9 +369,6 @@ patch_enable () amstream-GetMultiMediaStream) enable_amstream_GetMultiMediaStream="$2" ;; - api-ms-win-crt-Stub_DLLs) - enable_api_ms_win_crt_Stub_DLLs="$2" - ;; authz-Stub_Functions) enable_authz_Stub_Functions="$2" ;; @@ -564,9 +555,6 @@ patch_enable () kernel32-Cwd_Startup_Info) enable_kernel32_Cwd_Startup_Info="$2" ;; - kernel32-FreeUserPhysicalPages) - enable_kernel32_FreeUserPhysicalPages="$2" - ;; kernel32-GetLargestConsoleWindowSize) enable_kernel32_GetLargestConsoleWindowSize="$2" ;; @@ -702,9 +690,6 @@ patch_enable () ntdll-NtQuerySection) enable_ntdll_NtQuerySection="$2" ;; - ntdll-NtSetLdtEntries) - enable_ntdll_NtSetLdtEntries="$2" - ;; ntdll-Pipe_SpecialCharacters) enable_ntdll_Pipe_SpecialCharacters="$2" ;; @@ -798,9 +783,6 @@ patch_enable () rpcrt4-Pipe_Transport) enable_rpcrt4_Pipe_Transport="$2" ;; - secur32-ANSI_NTLM_Credentials) - enable_secur32_ANSI_NTLM_Credentials="$2" - ;; server-ClipCursor) enable_server_ClipCursor="$2" ;; @@ -1080,9 +1062,6 @@ patch_enable () winspool.drv-SetPrinterW) enable_winspool_drv_SetPrinterW="$2" ;; - winsta-WinStationEnumerateW) - enable_winsta_WinStationEnumerateW="$2" - ;; wpcap-Dynamic_Linking) enable_wpcap_Dynamic_Linking="$2" ;; @@ -1092,9 +1071,6 @@ patch_enable () ws2_32-Connect_Time) enable_ws2_32_Connect_Time="$2" ;; - ws2_32-Sort_default_route) - enable_ws2_32_Sort_default_route="$2" - ;; ws2_32-TransmitFile) enable_ws2_32_TransmitFile="$2" ;; @@ -1571,9 +1547,6 @@ if test "$enable_category_stable" -eq 1; then if test "$enable_ntdll_Heap_FreeLists" -gt 1; then abort "Patchset ntdll-Heap_FreeLists disabled, but category-stable depends on that." fi - if test "$enable_ntdll_NtSetLdtEntries" -gt 1; then - abort "Patchset ntdll-NtSetLdtEntries disabled, but category-stable depends on that." - fi if test "$enable_ntdll_Pipe_SpecialCharacters" -gt 1; then abort "Patchset ntdll-Pipe_SpecialCharacters disabled, but category-stable depends on that." fi @@ -1700,7 +1673,6 @@ if test "$enable_category_stable" -eq 1; then enable_ntdll_Fix_Alignment=1 enable_ntdll_FreeBSD_Directory=1 enable_ntdll_Heap_FreeLists=1 - enable_ntdll_NtSetLdtEntries=1 enable_ntdll_Pipe_SpecialCharacters=1 enable_ntdll_RtlIpStringToAddress=1 enable_ntdll_Threading=1 @@ -2309,18 +2281,6 @@ if test "$enable_amstream_GetMultiMediaStream" -eq 1; then ) >> "$patchlist" fi -# Patchset api-ms-win-crt-Stub_DLLs -# | -# | Modified files: -# | * dlls/ucrtbase/ucrtbase.spec -# | -if test "$enable_api_ms_win_crt_Stub_DLLs" -eq 1; then - patch_apply api-ms-win-crt-Stub_DLLs/0001-ucrtbase-Hook-up-some-functions-with-new-names-to-ex.patch - ( - echo '+ { "Martin Storsjo", "ucrtbase: Hook up some functions with new names to existing implementations.", 1 },'; - ) >> "$patchlist" -fi - # Patchset authz-Stub_Functions # | # | Modified files: @@ -3417,21 +3377,6 @@ if test "$enable_kernel32_Cwd_Startup_Info" -eq 1; then ) >> "$patchlist" fi -# Patchset kernel32-FreeUserPhysicalPages -# | -# | This patchset fixes the following Wine bugs: -# | * [#39543] Add stub kernel32.FreeUserPhysicalPages -# | -# | Modified files: -# | * dlls/kernel32/heap.c, dlls/kernel32/kernel32.spec -# | -if test "$enable_kernel32_FreeUserPhysicalPages" -eq 1; then - patch_apply kernel32-FreeUserPhysicalPages/0001-kernel32-add-FreeUserPhysicalPages-stub-try-2.patch - ( - echo '+ { "Austin English", "kernel32: Add FreeUserPhysicalPages stub.", 2 },'; - ) >> "$patchlist" -fi - # Patchset kernel32-GetLargestConsoleWindowSize # | # | This patchset fixes the following Wine bugs: @@ -4248,21 +4193,6 @@ if test "$enable_ntdll_NtQuerySection" -eq 1; then ) >> "$patchlist" fi -# Patchset ntdll-NtSetLdtEntries -# | -# | This patchset fixes the following Wine bugs: -# | * [#26268] Add stub for NtSetLdtEntries/ZwSetLdtEntries -# | -# | Modified files: -# | * dlls/ntdll/nt.c, dlls/ntdll/ntdll.spec, include/ddk/wdm.h, include/winternl.h -# | -if test "$enable_ntdll_NtSetLdtEntries" -eq 1; then - patch_apply ntdll-NtSetLdtEntries/0001-ntdll-add-NtSetLdtEntries-ZwSetLdtEntries-stub-try-2.patch - ( - echo '+ { "Austin English", "ntdll: Add NtSetLdtEntries/ZwSetLdtEntries stub.", 2 },'; - ) >> "$patchlist" -fi - # Patchset ntdll-Pipe_SpecialCharacters # | # | This patchset fixes the following Wine bugs: @@ -4778,21 +4708,6 @@ if test "$enable_riched20_IText_Interface" -eq 1; then ) >> "$patchlist" fi -# Patchset secur32-ANSI_NTLM_Credentials -# | -# | This patchset fixes the following Wine bugs: -# | * [#37063] Fix handling of ANSI NTLM credentials -# | -# | Modified files: -# | * dlls/secur32/ntlm.c -# | -if test "$enable_secur32_ANSI_NTLM_Credentials" -eq 1; then - patch_apply secur32-ANSI_NTLM_Credentials/0001-secur32-Fix-handling-of-ANSI-NTLM-credentials.patch - ( - echo '+ { "David Woodhouse", "secur32: Fix handling of ANSI NTLM credentials.", 1 },'; - ) >> "$patchlist" -fi - # Patchset server-ClipCursor # | # | This patchset fixes the following Wine bugs: @@ -4901,15 +4816,13 @@ fi # Patchset server-Parent_Process # | # | Modified files: -# | * dlls/kernel32/tests/process.c, server/process.c, server/token.c +# | * dlls/kernel32/tests/process.c, server/process.c # | if test "$enable_server_Parent_Process" -eq 1; then patch_apply server-Parent_Process/0001-kernel32-tests-Remove-unnecessary-call-to-GetExitCod.patch - patch_apply server-Parent_Process/0002-server-token_duplicate-should-not-reference-the-orig.patch patch_apply server-Parent_Process/0003-server-Increase-size-of-PID-table-to-512-to-reduce-r.patch ( echo '+ { "Sebastian Lackner", "kernel32/tests: Remove unnecessary call to GetExitCodeProcess in process tests.", 1 },'; - echo '+ { "Sebastian Lackner", "server: Token_duplicate should not reference the original token, which will get destroyed on process exit.", 1 },'; echo '+ { "Sebastian Lackner", "server: Increase size of PID table to 512 to reduce risk of collisions.", 1 },'; ) >> "$patchlist" fi @@ -6491,21 +6404,6 @@ if test "$enable_winspool_drv_SetPrinterW" -eq 1; then ) >> "$patchlist" fi -# Patchset winsta-WinStationEnumerateW -# | -# | This patchset fixes the following Wine bugs: -# | * [#38102] Add stub for winsta.WinStationEnumerateW -# | -# | Modified files: -# | * dlls/winsta/main.c, dlls/winsta/winsta.spec -# | -if test "$enable_winsta_WinStationEnumerateW" -eq 1; then - patch_apply winsta-WinStationEnumerateW/0001-winsta-Add-stub-for-WinStationEnumerateW.patch - ( - echo '+ { "Austin English", "winsta: Add stub for WinStationEnumerateW.", 2 },'; - ) >> "$patchlist" -fi - # Patchset wpcap-Dynamic_Linking # | # | Modified files: @@ -6542,22 +6440,6 @@ if test "$enable_ws2_32_Connect_Time" -eq 1; then ) >> "$patchlist" fi -# Patchset ws2_32-Sort_default_route -# | -# | This patchset fixes the following Wine bugs: -# | * [#22819] Ensure default route IP addresses are returned first in gethostbyname -# | * [#37271] Fix issue causing applications to report magic loopback address instead of real IP -# | -# | Modified files: -# | * dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c -# | -if test "$enable_ws2_32_Sort_default_route" -eq 1; then - patch_apply ws2_32-Sort_default_route/0001-ws2_32-Ensure-default-route-IP-addresses-are-returne.patch - ( - echo '+ { "Bruno Jesus", "ws2_32: Ensure default route IP addresses are returned first in gethostbyname.", 1 },'; - ) >> "$patchlist" -fi - # Patchset ws2_32-TransmitFile # | # | This patchset has the following (direct or indirect) dependencies: diff --git a/patches/secur32-ANSI_NTLM_Credentials/0001-secur32-Fix-handling-of-ANSI-NTLM-credentials.patch b/patches/secur32-ANSI_NTLM_Credentials/0001-secur32-Fix-handling-of-ANSI-NTLM-credentials.patch deleted file mode 100644 index b1c28d6e..00000000 --- a/patches/secur32-ANSI_NTLM_Credentials/0001-secur32-Fix-handling-of-ANSI-NTLM-credentials.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 84e4f321118a11991a34e24dd1729181ad8a1574 Mon Sep 17 00:00:00 2001 -From: David Woodhouse -Date: Fri, 8 Aug 2014 13:21:56 +0100 -Subject: secur32: Fix handling of ANSI NTLM credentials - -One of many issues covered in bug 37063... we assume that the -credentials are in Unicode, instead of looking at the Flags field. ---- - dlls/secur32/ntlm.c | 69 ++++++++++++++++++++++++++++++++++++++++++++--------- - 1 file changed, 58 insertions(+), 11 deletions(-) - -diff --git a/dlls/secur32/ntlm.c b/dlls/secur32/ntlm.c -index 0fe64ed..72e9706 100644 ---- a/dlls/secur32/ntlm.c -+++ b/dlls/secur32/ntlm.c -@@ -174,27 +174,74 @@ SECURITY_STATUS SEC_ENTRY ntlm_AcquireCredentialsHandleW( - if(pAuthData != NULL) - { - PSEC_WINNT_AUTH_IDENTITY_W auth_data = pAuthData; -+ LPWSTR domain = NULL, user = NULL, password = NULL; -+ int domain_len = 0, user_len = 0, password_len = 0; - -- TRACE("Username is %s\n", debugstr_wn(auth_data->User, auth_data->UserLength)); -- TRACE("Domain name is %s\n", debugstr_wn(auth_data->Domain, auth_data->DomainLength)); -+ if (auth_data->Flags & SEC_WINNT_AUTH_IDENTITY_ANSI) -+ { -+ if (auth_data->DomainLength) -+ { -+ domain_len = MultiByteToWideChar(CP_ACP, 0, (char *)auth_data->Domain, -+ auth_data->DomainLength, NULL, 0); -+ domain = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR) * domain_len); -+ MultiByteToWideChar(CP_ACP, 0, (char *)auth_data->Domain, auth_data->DomainLength, -+ domain, domain_len); -+ } -+ -+ if (auth_data->UserLength) -+ { -+ user_len = MultiByteToWideChar(CP_ACP, 0, (char *)auth_data->User, -+ auth_data->UserLength, NULL, 0); -+ user = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR) * user_len); -+ MultiByteToWideChar(CP_ACP, 0, (char *)auth_data->User, auth_data->UserLength, -+ user, user_len); -+ } -+ -+ if (auth_data->PasswordLength) -+ { -+ password_len = MultiByteToWideChar(CP_ACP, 0,(char *)auth_data->Password, -+ auth_data->PasswordLength, NULL, 0); -+ password = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR) * password_len); -+ MultiByteToWideChar(CP_ACP, 0, (char *)auth_data->Password, auth_data->PasswordLength, -+ password, password_len); -+ } -+ } -+ else -+ { -+ domain = auth_data->Domain; -+ domain_len = auth_data->DomainLength; -+ -+ user = auth_data->User; -+ user_len = auth_data->UserLength; -+ -+ password = auth_data->Password; -+ password_len = auth_data->PasswordLength; -+ } -+ -+ TRACE("Username is %s\n", debugstr_wn(user, user_len)); -+ TRACE("Domain name is %s\n", debugstr_wn(domain, domain_len)); - -- ntlm_cred->username_arg = ntlm_GetUsernameArg(auth_data->User, auth_data->UserLength); -- ntlm_cred->domain_arg = ntlm_GetDomainArg(auth_data->Domain, auth_data->DomainLength); -+ ntlm_cred->username_arg = ntlm_GetUsernameArg(user, user_len); -+ ntlm_cred->domain_arg = ntlm_GetDomainArg(domain, domain_len); - -- if(auth_data->PasswordLength != 0) -+ if(password_len != 0) - { -- ntlm_cred->pwlen = WideCharToMultiByte(CP_UNIXCP, -- WC_NO_BEST_FIT_CHARS, auth_data->Password, -- auth_data->PasswordLength, NULL, 0, NULL, -- NULL); -+ ntlm_cred->pwlen = WideCharToMultiByte(CP_UNIXCP, WC_NO_BEST_FIT_CHARS, password, -+ password_len, NULL, 0, NULL, NULL); - - ntlm_cred->password = HeapAlloc(GetProcessHeap(), 0, - ntlm_cred->pwlen); - -- WideCharToMultiByte(CP_UNIXCP, WC_NO_BEST_FIT_CHARS, -- auth_data->Password, auth_data->PasswordLength, -+ WideCharToMultiByte(CP_UNIXCP, WC_NO_BEST_FIT_CHARS, password, password_len, - ntlm_cred->password, ntlm_cred->pwlen, NULL, NULL); - } -+ -+ if (auth_data->Flags & SEC_WINNT_AUTH_IDENTITY_ANSI) -+ { -+ HeapFree(GetProcessHeap(), 0, domain); -+ HeapFree(GetProcessHeap(), 0, user); -+ HeapFree(GetProcessHeap(), 0, password); -+ } - } - - phCredential->dwUpper = fCredentialUse; --- -2.3.3 - diff --git a/patches/secur32-ANSI_NTLM_Credentials/definition b/patches/secur32-ANSI_NTLM_Credentials/definition deleted file mode 100644 index 768dc0b4..00000000 --- a/patches/secur32-ANSI_NTLM_Credentials/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [37063] Fix handling of ANSI NTLM credentials diff --git a/patches/server-Parent_Process/0002-server-token_duplicate-should-not-reference-the-orig.patch b/patches/server-Parent_Process/0002-server-token_duplicate-should-not-reference-the-orig.patch deleted file mode 100644 index eb0f0cae..00000000 --- a/patches/server-Parent_Process/0002-server-token_duplicate-should-not-reference-the-orig.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 852441b8d71ffc4fe095a331cd8a7dcc2fdac1c2 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Thu, 10 Dec 2015 16:40:01 +0100 -Subject: server: token_duplicate should not reference the original token, - which will get destroyed on process exit. - ---- - server/token.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/server/token.c b/server/token.c -index 001261d..9edfbf0 100644 ---- a/server/token.c -+++ b/server/token.c -@@ -568,6 +568,7 @@ struct token *token_duplicate( struct token *src_token, unsigned primary, - if (!token) return token; - - /* copy groups */ -+ token->primary_group = NULL; - LIST_FOR_EACH_ENTRY( group, &src_token->groups, struct group, entry ) - { - size_t size = FIELD_OFFSET( struct group, sid.SubAuthority[group->sid.SubAuthorityCount] ); -@@ -579,8 +580,9 @@ struct token *token_duplicate( struct token *src_token, unsigned primary, - } - memcpy( newgroup, group, size ); - list_add_tail( &token->groups, &newgroup->entry ); -+ if (src_token->primary_group == &group->sid) -+ token->primary_group = &newgroup->sid; - } -- token->primary_group = src_token->primary_group; - assert( token->primary_group ); - - /* copy privileges */ --- -2.6.2 - diff --git a/patches/shell32-Progress_Dialog/0001-shell32-Correct-indentation-in-shfileop.c.patch b/patches/shell32-Progress_Dialog/0001-shell32-Correct-indentation-in-shfileop.c.patch index 3c414c45..ebcb1ec0 100644 --- a/patches/shell32-Progress_Dialog/0001-shell32-Correct-indentation-in-shfileop.c.patch +++ b/patches/shell32-Progress_Dialog/0001-shell32-Correct-indentation-in-shfileop.c.patch @@ -1,14 +1,14 @@ -From 46894941581a7d408983d55039308e03f2842b7a Mon Sep 17 00:00:00 2001 +From 7fb6c302f6d53d7e7df71b13d283ef81a0f6eb65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Tue, 24 Feb 2015 04:25:29 +0100 Subject: shell32: Correct indentation in shfileop.c. --- - dlls/shell32/shlfileop.c | 730 +++++++++++++++++++++++------------------------ - 1 file changed, 365 insertions(+), 365 deletions(-) + dlls/shell32/shlfileop.c | 729 ++++++++++++++++++++++++----------------------- + 1 file changed, 365 insertions(+), 364 deletions(-) diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c -index 62d7880..ee40e39 100644 +index 07635c8a7..674f26c 100644 --- a/dlls/shell32/shlfileop.c +++ b/dlls/shell32/shlfileop.c @@ -164,7 +164,7 @@ static INT_PTR ConfirmMsgBox_Init(HWND hDlg, LPARAM lParam) @@ -807,7 +807,7 @@ index 62d7880..ee40e39 100644 } /************************************************************************* * SHFileOperationA [SHELL32.@] -@@ -865,43 +865,43 @@ static DWORD SHNameTranslate(LPWSTR* wString, LPCWSTR* pWToFrom, BOOL more) +@@ -865,42 +865,43 @@ static DWORD SHNameTranslate(LPWSTR* wString, LPCWSTR* pWToFrom, BOOL more) */ int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp) { @@ -840,7 +840,6 @@ index 62d7880..ee40e39 100644 - if (ForFree) continue; - retCode = ERROR_OUTOFMEMORY; - nFileOp.fAnyOperationsAborted = TRUE; -- SetLastError(retCode); - return retCode; - } - } @@ -888,7 +887,7 @@ index 62d7880..ee40e39 100644 } #define ERROR_SHELL_INTERNAL_FILE_NOT_FOUND 1026 -@@ -931,7 +931,7 @@ typedef struct +@@ -930,7 +931,7 @@ typedef struct static inline void grow_list(FILE_LIST *list) { FILE_ENTRY *new = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, list->feFiles, @@ -897,7 +896,7 @@ index 62d7880..ee40e39 100644 list->feFiles = new; list->num_alloc *= 2; } -@@ -1023,7 +1023,7 @@ static HRESULT parse_file_list(FILE_LIST *flList, LPCWSTR szFiles) +@@ -1022,7 +1023,7 @@ static HRESULT parse_file_list(FILE_LIST *flList, LPCWSTR szFiles) /* empty list */ if (!szFiles[0]) return ERROR_ACCESS_DENIED; @@ -906,7 +905,7 @@ index 62d7880..ee40e39 100644 flList->feFiles = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, flList->num_alloc * sizeof(FILE_ENTRY)); -@@ -1127,7 +1127,7 @@ static void copy_dir_to_dir(FILE_OPERATION *op, const FILE_ENTRY *feFrom, LPCWST +@@ -1126,7 +1127,7 @@ static void copy_dir_to_dir(FILE_OPERATION *op, const FILE_ENTRY *feFrom, LPCWST /* Don't ask the user about overwriting files when he accepted to overwrite the folder. FIXME: this is not exactly what Windows does - e.g. there would be an additional confirmation for a nested folder */ @@ -915,7 +914,7 @@ index 62d7880..ee40e39 100644 SHFileOperationW(&fileOp); } -@@ -1339,7 +1339,7 @@ static DWORD delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) +@@ -1339,7 +1340,7 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) /* Windows also checks only the first item */ bTrash = (lpFileOp->fFlags & FOF_ALLOWUNDO) @@ -924,7 +923,7 @@ index 62d7880..ee40e39 100644 if (!(lpFileOp->fFlags & FOF_NOCONFIRMATION) || (!bTrash && lpFileOp->fFlags & FOF_WANTNUKEWARNING)) if (!confirm_delete_list(lpFileOp->hwnd, lpFileOp->fFlags, bTrash, flFrom)) -@@ -1374,11 +1374,11 @@ static DWORD delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) +@@ -1374,11 +1375,11 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) break; } } @@ -938,7 +937,7 @@ index 62d7880..ee40e39 100644 else ret = SHELL_DeleteDirectoryW(lpFileOp->hwnd, fileEntry->szFullPath, FALSE); -@@ -1528,8 +1528,8 @@ static DWORD rename_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, c +@@ -1503,8 +1504,8 @@ static int rename_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con static void check_flags(FILEOP_FLAGS fFlags) { WORD wUnsupportedFlags = FOF_NO_CONNECTED_ELEMENTS | @@ -949,7 +948,7 @@ index 62d7880..ee40e39 100644 if (fFlags & wUnsupportedFlags) FIXME("Unsupported flags: %04x\n", fFlags); -@@ -1611,19 +1611,19 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp) +@@ -1587,19 +1588,19 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp) */ void WINAPI SHFreeNameMappings(HANDLE hNameMapping) { @@ -979,7 +978,7 @@ index 62d7880..ee40e39 100644 } /************************************************************************* -@@ -1729,14 +1729,14 @@ DWORD WINAPI SheChangeDirW(LPWSTR path) +@@ -1705,14 +1706,14 @@ DWORD WINAPI SheChangeDirW(LPWSTR path) } /************************************************************************* @@ -1000,5 +999,5 @@ index 62d7880..ee40e39 100644 -- -2.3.0 +2.9.0 diff --git a/patches/shell32-Progress_Dialog/0003-shell32-Implement-file-operation-progress-dialog.patch b/patches/shell32-Progress_Dialog/0003-shell32-Implement-file-operation-progress-dialog.patch index 11485d14..8a086cb7 100644 --- a/patches/shell32-Progress_Dialog/0003-shell32-Implement-file-operation-progress-dialog.patch +++ b/patches/shell32-Progress_Dialog/0003-shell32-Implement-file-operation-progress-dialog.patch @@ -1,4 +1,4 @@ -From 725a496f1d8484b7392ef0f14cb13ddd18b1dca5 Mon Sep 17 00:00:00 2001 +From 0d8fe9da594db5f9c4d36ce09f91e80e0ca5db34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Fri, 27 Feb 2015 01:04:33 +0100 Subject: shell32: Implement file operation progress dialog. @@ -11,7 +11,7 @@ Based on a patch by Huw Campbell. 3 files changed, 285 insertions(+), 7 deletions(-) diff --git a/dlls/shell32/shell32.rc b/dlls/shell32/shell32.rc -index 37acbe7..dd054fb 100644 +index bfba962..277b23a 100644 --- a/dlls/shell32/shell32.rc +++ b/dlls/shell32/shell32.rc @@ -184,6 +184,13 @@ If the files in the destination folder have the same names as files in the\n\ @@ -29,7 +29,7 @@ index 37acbe7..dd054fb 100644 IDS_RESTART_TITLE "Restart" IDS_RESTART_PROMPT "Do you want to simulate a Windows reboot?" diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c -index ed8ff38..0d50223 100644 +index 583b10f..176911a 100644 --- a/dlls/shell32/shlfileop.c +++ b/dlls/shell32/shlfileop.c @@ -65,6 +65,10 @@ typedef struct @@ -140,7 +140,7 @@ index ed8ff38..0d50223 100644 if (ret) { SHChangeNotify(SHCNE_CREATE, SHCNF_PATHW, dest, NULL); -@@ -1293,6 +1332,8 @@ static DWORD copy_files(FILE_OPERATION *op, BOOL multidest, const FILE_LIST *flF +@@ -1293,6 +1332,8 @@ static int copy_files(FILE_OPERATION *op, BOOL multidest, const FILE_LIST *flFro } /* Vista return code. XP would return e.g. ERROR_FILE_NOT_FOUND, ERROR_ALREADY_EXISTS */ @@ -149,7 +149,7 @@ index ed8ff38..0d50223 100644 if (op->bCancelled) return ERROR_CANCELLED; } -@@ -1374,13 +1415,17 @@ static DWORD delete_files(FILE_OPERATION *op, const FILE_LIST *flFrom) +@@ -1375,13 +1416,17 @@ static int delete_files(FILE_OPERATION *op, const FILE_LIST *flFrom) /* delete the file or directory */ if (IsAttribFile(fileEntry->attributes)) @@ -169,7 +169,7 @@ index ed8ff38..0d50223 100644 } return ERROR_SUCCESS; -@@ -1485,6 +1530,11 @@ static DWORD move_files(FILE_OPERATION *op, BOOL multidest, const FILE_LIST *flF +@@ -1456,6 +1501,11 @@ static int move_files(FILE_OPERATION *op, BOOL multidest, const FILE_LIST *flFro move_to_dir(op, entryToMove, fileDest); else SHNotifyMoveFileW(op, entryToMove->szFullPath, fileDest->szFullPath); @@ -181,7 +181,7 @@ index ed8ff38..0d50223 100644 } if (mismatched > 0) -@@ -1544,6 +1594,7 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp) +@@ -1515,6 +1565,7 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp) { FILE_OPERATION op; FILE_LIST flFrom, flTo; @@ -189,7 +189,7 @@ index ed8ff38..0d50223 100644 int ret = 0; if (!lpFileOp) -@@ -1562,9 +1613,31 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp) +@@ -1533,9 +1584,31 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp) ZeroMemory(&op, sizeof(op)); op.req = lpFileOp; @@ -221,7 +221,7 @@ index ed8ff38..0d50223 100644 switch (lpFileOp->wFunc) { case FO_COPY: -@@ -1584,6 +1657,12 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp) +@@ -1555,6 +1628,12 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp) break; } @@ -234,17 +234,17 @@ index ed8ff38..0d50223 100644 destroy_file_list(&flFrom); if (lpFileOp->wFunc != FO_DELETE) -@@ -1592,6 +1671,9 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp) +@@ -1563,6 +1642,9 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp) if (ret == ERROR_CANCELLED) lpFileOp->fAnyOperationsAborted = TRUE; + if (SUCCEEDED(co_ret)) + CoUninitialize(); + + SetLastError(ERROR_SUCCESS); return ret; } - -@@ -1822,3 +1904,184 @@ HRESULT WINAPI SHPathPrepareForWriteW(HWND hwnd, IUnknown *modless, LPCWSTR path +@@ -1794,3 +1876,184 @@ HRESULT WINAPI SHPathPrepareForWriteW(HWND hwnd, IUnknown *modless, LPCWSTR path else return HRESULT_FROM_WIN32(ERROR_DIRECTORY); } @@ -449,5 +449,5 @@ index 183a75e..8ee525a 100644 #define IDS_RECYCLEBIN_FOLDER_NAME 8964 -- -2.3.0 +2.9.0 diff --git a/patches/wined3d-CSMT_Main/0139-wined3d-Create-the-initial-context-through-the-CS.patch b/patches/wined3d-CSMT_Main/0139-wined3d-Create-the-initial-context-through-the-CS.patch index 889b59f8..c6d0a323 100644 --- a/patches/wined3d-CSMT_Main/0139-wined3d-Create-the-initial-context-through-the-CS.patch +++ b/patches/wined3d-CSMT_Main/0139-wined3d-Create-the-initial-context-through-the-CS.patch @@ -1,4 +1,4 @@ -From 070101f77c342c4eeb49e01d3cc9ca9eaa63fe24 Mon Sep 17 00:00:00 2001 +From 5822b8ebb3c2b8b856a5f91f2dbf364a09df09a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Thu, 10 Oct 2013 16:43:19 +0200 Subject: wined3d: Create the initial context through the CS. @@ -6,12 +6,12 @@ Subject: wined3d: Create the initial context through the CS. Very hacky. --- dlls/wined3d/cs.c | 34 ++++++++++++ - dlls/wined3d/swapchain.c | 118 +++++++++++++++++++++++------------------ + dlls/wined3d/swapchain.c | 120 ++++++++++++++++++++++------------------- dlls/wined3d/wined3d_private.h | 4 ++ - 3 files changed, 103 insertions(+), 53 deletions(-) + 3 files changed, 104 insertions(+), 54 deletions(-) diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c -index 7dc847b..c78ac12 100644 +index d58c131..dd368c6 100644 --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c @@ -89,6 +89,7 @@ enum wined3d_cs_op @@ -77,10 +77,10 @@ index 7dc847b..c78ac12 100644 static inline void *_wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, BOOL prio) diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c -index efe6987..71e5df6 100644 +index ef62cd9..b43e2c1 100644 --- a/dlls/wined3d/swapchain.c +++ b/dlls/wined3d/swapchain.c -@@ -723,6 +723,69 @@ static void swapchain_update_render_to_fbo(struct wined3d_swapchain *swapchain) +@@ -730,6 +730,70 @@ static void swapchain_update_render_to_fbo(struct wined3d_swapchain *swapchain) swapchain->render_to_fbo = TRUE; } @@ -143,6 +143,7 @@ index efe6987..71e5df6 100644 + FIXME("Add OpenGL context recreation support to context_validate_onscreen_formats\n"); + } + context_release(swapchain->context[0]); ++ swapchain_update_swap_interval(swapchain); + + return WINED3D_OK; +} @@ -150,7 +151,7 @@ index efe6987..71e5df6 100644 static HRESULT swapchain_init(struct wined3d_swapchain *swapchain, struct wined3d_device *device, struct wined3d_swapchain_desc *desc, void *parent, const struct wined3d_parent_ops *parent_ops) { -@@ -840,60 +903,9 @@ static HRESULT swapchain_init(struct wined3d_swapchain *swapchain, struct wined3 +@@ -847,61 +911,9 @@ static HRESULT swapchain_init(struct wined3d_swapchain *swapchain, struct wined3 if (!(device->wined3d->flags & WINED3D_NO3D)) { @@ -210,14 +211,15 @@ index efe6987..71e5df6 100644 - FIXME("Add OpenGL context recreation support to context_validate_onscreen_formats\n"); - } - context_release(swapchain->context[0]); +- swapchain_update_swap_interval(swapchain); } if (swapchain->desc.backbuffer_count > 0) diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index df99c6f..4f2e652 100644 +index 9686f1f..7afeb05 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -2804,6 +2804,8 @@ void wined3d_cs_emit_volume_cleanup(struct wined3d_cs *cs, struct wined3d_volume +@@ -2866,6 +2866,8 @@ void wined3d_cs_emit_volume_cleanup(struct wined3d_cs *cs, struct wined3d_volume void wined3d_cs_emit_surface_cleanup(struct wined3d_cs *cs, struct wined3d_surface *surface) DECLSPEC_HIDDEN; void wined3d_cs_emit_texture_cleanup(struct wined3d_cs *cs, struct wined3d_texture *texture) DECLSPEC_HIDDEN; void wined3d_cs_emit_create_dummy_textures(struct wined3d_cs *cs) DECLSPEC_HIDDEN; @@ -226,15 +228,15 @@ index df99c6f..4f2e652 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 -@@ -2988,6 +2990,8 @@ struct wined3d_context *swapchain_get_context(struct wined3d_swapchain *swapchai - void swapchain_destroy_contexts(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; +@@ -3051,6 +3053,8 @@ void swapchain_destroy_contexts(struct wined3d_swapchain *swapchain) DECLSPEC_HI HDC swapchain_get_backup_dc(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; void swapchain_update_draw_bindings(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; + void swapchain_update_swap_interval(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; +HRESULT swapchain_create_context_cs(struct wined3d_device *device, + struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; /***************************************************************************** * Utility function prototypes -- -2.5.1 +2.9.0 diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index 5d674e58..16cd70e9 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -640,7 +640,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c -@@ -1453,6 +1453,7 @@ +@@ -1452,6 +1452,7 @@ goto out; } @@ -648,7 +648,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c ret->current_fb.render_targets = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*ret->current_fb.render_targets) * gl_info->limits.buffers); ret->current_fb.rt_size = gl_info->limits.buffers; -@@ -1461,6 +1462,7 @@ +@@ -1460,6 +1461,7 @@ if (device->context_count) ret->offscreenBuffer = device->contexts[0]->offscreenBuffer; @@ -656,7 +656,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c /* Initialize the texture unit mapping to a 1:1 mapping */ for (s = 0; s < MAX_COMBINED_SAMPLERS; ++s) { -@@ -1784,7 +1786,9 @@ +@@ -1753,7 +1755,9 @@ out: device->shader_backend->shader_free_context_data(ret); device->adapter->fragment_pipe->free_context_data(ret); @@ -666,7 +666,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c HeapFree(GetProcessHeap(), 0, ret->free_event_queries); HeapFree(GetProcessHeap(), 0, ret->free_occlusion_queries); HeapFree(GetProcessHeap(), 0, ret->free_timestamp_queries); -@@ -1819,7 +1823,9 @@ +@@ -1788,7 +1792,9 @@ device->shader_backend->shader_free_context_data(context); device->adapter->fragment_pipe->free_context_data(context); @@ -676,7 +676,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c HeapFree(GetProcessHeap(), 0, context->draw_buffers); HeapFree(GetProcessHeap(), 0, context->blit_targets); device_context_remove(device, context); -@@ -2239,6 +2245,7 @@ +@@ -2208,6 +2214,7 @@ WARN("Depth stencil format is not supported by WGL, rendering the backbuffer in an FBO\n"); /* The currently active context is the necessary context to access the swapchain's onscreen buffers */ @@ -684,7 +684,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c wined3d_resource_load_location(&context->current_rt->resource, context, WINED3D_LOCATION_TEXTURE_RGB); swapchain->render_to_fbo = TRUE; swapchain_update_draw_bindings(swapchain); -@@ -2253,6 +2260,22 @@ +@@ -2222,6 +2229,22 @@ return context_generate_rt_mask_from_surface(rt); else return context_generate_rt_mask(context->offscreenBuffer); @@ -707,7 +707,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c } /* Context activation is done by the caller. */ -@@ -2284,7 +2307,11 @@ +@@ -2253,7 +2276,11 @@ } else { @@ -719,7 +719,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c } cur_mask = context->current_fbo ? &context->current_fbo->rt_mask : &context->draw_buffers_mask; -@@ -2331,7 +2358,11 @@ +@@ -2300,7 +2327,11 @@ DWORD rt_mask = 0, *cur_mask; UINT i; @@ -731,7 +731,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c || rt_count != context->gl_info->limits.buffers) { if (!context_validate_rt_config(rt_count, rts, dsv)) -@@ -2373,11 +2404,17 @@ +@@ -2342,11 +2373,17 @@ } else { @@ -749,7 +749,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c } else if (wined3d_settings.offscreen_rendering_mode == ORM_FBO && (!rt_count || wined3d_resource_is_offscreen(rts[0]->resource))) -@@ -2390,7 +2427,11 @@ +@@ -2359,7 +2396,11 @@ } else { @@ -761,7 +761,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c rt_count ? wined3d_rendertarget_view_get_surface(rts[0]) : NULL); } -@@ -2433,6 +2474,7 @@ +@@ -2402,6 +2443,7 @@ return TRUE; } @@ -769,7 +769,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const struct wined3d_state *state) { struct wined3d_rendertarget_view **rts = state->fb.render_targets; -@@ -2442,6 +2484,18 @@ +@@ -2411,6 +2453,18 @@ if (wined3d_settings.offscreen_rendering_mode != ORM_FBO) return context_generate_rt_mask_no_fbo(context, wined3d_rendertarget_view_get_surface(rts[0])); @@ -788,7 +788,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c else if (!context->render_offscreen) return context_generate_rt_mask_from_surface(wined3d_rendertarget_view_get_surface(rts[0])); -@@ -2464,8 +2518,14 @@ +@@ -2433,8 +2487,14 @@ /* Context activation is done by the caller. */ void context_state_fb(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) { @@ -803,7 +803,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c DWORD *cur_mask; if (wined3d_settings.offscreen_rendering_mode == ORM_FBO) -@@ -2496,8 +2556,10 @@ +@@ -2465,8 +2525,10 @@ context_apply_draw_buffers(context, rt_mask); *cur_mask = rt_mask; } @@ -814,7 +814,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c } static void context_map_stage(struct wined3d_context *context, DWORD stage, DWORD unit) -@@ -2744,12 +2806,22 @@ +@@ -2713,12 +2775,22 @@ /* Context activation is done by the caller. */ void context_state_drawbuf(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) { @@ -837,7 +837,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); -@@ -2951,7 +3023,11 @@ +@@ -2920,7 +2992,11 @@ { if (state->vertex_declaration->half_float_conv_needed && !stream_info->all_vbo) { @@ -849,7 +849,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c context->use_immediate_mode_draw = TRUE; } else -@@ -3126,11 +3202,19 @@ +@@ -3095,11 +3171,19 @@ } /* Context activation is done by the caller. */ @@ -869,7 +869,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c unsigned int i; WORD map; -@@ -3163,12 +3247,17 @@ +@@ -3132,12 +3216,17 @@ for (i = 0, map = context->stream_info.use_map; map; map >>= 1, ++i) { if (map & 1) @@ -887,7 +887,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c } if (state->index_buffer) { -@@ -3263,7 +3352,11 @@ +@@ -3232,7 +3321,11 @@ if (texture->texture_srgb.name) wined3d_texture_load(texture, context, TRUE); wined3d_texture_load(texture, context, FALSE); @@ -3653,7 +3653,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c wined3d_cs_emit_set_scissor_rect(device->cs, &state->scissor_rect); } -@@ -4767,6 +5502,10 @@ +@@ -4771,6 +5506,10 @@ TRACE("device %p, resource %p, type %s.\n", device, resource, debug_d3dresourcetype(type)); @@ -3664,7 +3664,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c switch (type) { case WINED3D_RTYPE_SURFACE: -@@ -4777,6 +5516,7 @@ +@@ -4781,6 +5520,7 @@ for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i) { @@ -3672,7 +3672,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); -@@ -4788,6 +5528,19 @@ +@@ -4792,6 +5532,19 @@ { ERR("Surface %p is still in use as depth/stencil buffer.\n", surface); device->state.fb.depth_stencil = NULL; @@ -3692,7 +3692,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } } break; -@@ -4950,7 +5703,11 @@ +@@ -4954,7 +5707,11 @@ device->blitter = adapter->blitter; @@ -3704,7 +3704,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); -@@ -5049,6 +5806,7 @@ +@@ -5053,6 +5810,7 @@ else return CallWindowProcA(proc, window, message, wparam, lparam); } @@ -3712,7 +3712,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, -@@ -5102,3 +5860,4 @@ +@@ -5106,3 +5864,4 @@ wined3d_device_destroy_bo(device, context, bo); } @@ -3720,7 +3720,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c -@@ -5604,9 +5604,15 @@ +@@ -5623,9 +5623,15 @@ DebugBreak(); } @@ -7867,7 +7867,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c HRESULT swapchain_create_context_cs(struct wined3d_device *device, struct wined3d_swapchain *swapchain) { const struct wined3d_adapter *adapter = device->adapter; -@@ -798,6 +898,7 @@ +@@ -799,6 +899,7 @@ return WINED3D_OK; } @@ -7875,7 +7875,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c static HRESULT swapchain_init(struct wined3d_swapchain *swapchain, struct wined3d_device *device, struct wined3d_swapchain_desc *desc, void *parent, const struct wined3d_parent_ops *parent_ops) { -@@ -888,8 +989,13 @@ +@@ -889,8 +990,13 @@ front_buffer = surface_from_resource(wined3d_texture_get_sub_resource(swapchain->front_buffer, 0)); if (!(device->wined3d->flags & WINED3D_NO3D)) { @@ -7889,7 +7889,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c } /* MSDN says we're only allowed a single fullscreen swapchain per device, -@@ -915,9 +1021,66 @@ +@@ -916,9 +1022,67 @@ if (!(device->wined3d->flags & WINED3D_NO3D)) { @@ -7952,6 +7952,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c + FIXME("Add OpenGL context recreation support to context_validate_onscreen_formats\n"); + } + context_release(swapchain->context[0]); ++ swapchain_update_swap_interval(swapchain); +#endif /* STAGING_CSMT */ } @@ -9200,7 +9201,7 @@ diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c --- a/dlls/wined3d/wined3d_main.c +++ b/dlls/wined3d/wined3d_main.c -@@ -86,8 +86,10 @@ +@@ -87,8 +87,10 @@ ~0U, /* No GS shader model limit by default. */ ~0U, /* No PS shader model limit by default. */ FALSE, /* 3D support enabled by default. */ @@ -9211,7 +9212,7 @@ diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c }; struct wined3d * CDECL wined3d_create(DWORD flags) -@@ -316,6 +318,7 @@ +@@ -323,6 +325,7 @@ TRACE("Disabling 3D support.\n"); wined3d_settings.no_3d = TRUE; } @@ -9219,7 +9220,7 @@ diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c if (!get_config_key(hkey, appkey, "CSMT", buffer, size) && !strcmp(buffer,"disabled")) { -@@ -332,6 +335,9 @@ +@@ -339,6 +342,9 @@ FIXME_(winediag)("Experimental wined3d CSMT feature is currently %s.\n", wined3d_settings.cs_multithreaded ? "enabled" : "disabled"); @@ -9279,7 +9280,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h #include #include #include -@@ -283,8 +311,10 @@ +@@ -284,8 +312,10 @@ unsigned int max_sm_gs; unsigned int max_sm_ps; BOOL no_3d; @@ -9290,7 +9291,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; extern struct wined3d_settings wined3d_settings DECLSPEC_HIDDEN; -@@ -1025,9 +1055,14 @@ +@@ -1026,9 +1056,14 @@ WORD use_map; /* MAX_ATTRIBS, 16 */ }; @@ -9305,7 +9306,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h DWORD get_flexible_vertex_size(DWORD d3dvtVertexType) DECLSPEC_HIDDEN; #define eps 1e-8f -@@ -1115,8 +1150,10 @@ +@@ -1116,8 +1151,10 @@ struct list entry; GLuint id; struct wined3d_context *context; @@ -9316,7 +9317,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; union wined3d_gl_query_object -@@ -1152,6 +1189,7 @@ +@@ -1153,6 +1190,7 @@ struct list entry; GLuint id; struct wined3d_context *context; @@ -9324,7 +9325,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h UINT64 timestamp; }; -@@ -1187,6 +1225,12 @@ +@@ -1188,6 +1226,12 @@ for (i = 0; i < min(dst->rt_size, src->rt_size); i++) dst->render_targets[i] = src->render_targets[i]; } @@ -9337,7 +9338,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_context { -@@ -1202,7 +1246,9 @@ +@@ -1203,7 +1247,9 @@ 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 */ @@ -9347,7 +9348,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_swapchain *swapchain; struct wined3d_surface *current_rt; -@@ -1300,8 +1346,17 @@ +@@ -1301,8 +1347,17 @@ GLfloat fog_coord_value; GLfloat color[4], fogstart, fogend, fogcolor[4]; GLuint dummy_arbfp_prog; @@ -9365,7 +9366,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; typedef void (*APPLYSTATEFUNC)(struct wined3d_context *ctx, const struct wined3d_state *state, DWORD state_id); -@@ -1444,8 +1499,12 @@ +@@ -1445,8 +1500,12 @@ void context_apply_blit_state(struct wined3d_context *context, const struct wined3d_device *device) DECLSPEC_HIDDEN; BOOL context_apply_clear_state(struct wined3d_context *context, const struct wined3d_device *device, UINT rt_count, const struct wined3d_fb_state *fb) DECLSPEC_HIDDEN; @@ -9378,7 +9379,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void context_apply_fbo_state_blit(struct wined3d_context *context, GLenum target, struct wined3d_surface *render_target, struct wined3d_surface *depth_stencil, DWORD location) DECLSPEC_HIDDEN; void context_active_texture(struct wined3d_context *context, const struct wined3d_gl_info *gl_info, -@@ -2047,7 +2106,11 @@ +@@ -2058,7 +2117,11 @@ struct wined3d_state { DWORD flags; @@ -9390,7 +9391,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_vertex_declaration *vertex_declaration; struct wined3d_stream_output stream_output[MAX_STREAM_OUT]; -@@ -2092,6 +2155,7 @@ +@@ -2103,6 +2166,7 @@ DWORD render_states[WINEHIGHEST_RENDER_STATE + 1]; }; @@ -9398,7 +9399,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_gl_bo { GLuint name; -@@ -2100,6 +2164,7 @@ +@@ -2111,6 +2175,7 @@ UINT size; }; @@ -9406,7 +9407,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h #define WINED3D_UNMAPPED_STAGE ~0U /* Multithreaded flag. Removed from the public header to signal that -@@ -2155,11 +2220,23 @@ +@@ -2166,11 +2231,23 @@ struct wined3d_rendertarget_view *back_buffer_view; struct wined3d_swapchain **swapchains; UINT swapchain_count; @@ -9430,7 +9431,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* For rendering to a texture using glCopyTexImage */ GLuint depth_blt_texture; -@@ -2170,6 +2247,9 @@ +@@ -2181,6 +2258,9 @@ UINT xScreenSpace; UINT yScreenSpace; UINT cursorWidth, cursorHeight; @@ -9440,7 +9441,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HCURSOR hardwareCursor; /* The Wine logo texture */ -@@ -2201,6 +2281,7 @@ +@@ -2212,6 +2292,7 @@ UINT message, WPARAM wparam, LPARAM lparam, WNDPROC proc) DECLSPEC_HIDDEN; void device_resource_add(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN; void device_resource_released(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN; @@ -9448,7 +9449,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void device_invalidate_state(const struct wined3d_device *device, DWORD state) DECLSPEC_HIDDEN; void device_invalidate_shader_constants(const struct wined3d_device *device, DWORD mask) DECLSPEC_HIDDEN; void device_exec_update_texture(struct wined3d_context *context, struct wined3d_texture *src_texture, -@@ -2212,6 +2293,11 @@ +@@ -2223,6 +2304,11 @@ void device_create_dummy_textures(struct wined3d_device *device, struct wined3d_context *context) DECLSPEC_HIDDEN; void device_delete_opengl_contexts_cs(struct wined3d_device *device, struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; @@ -9460,7 +9461,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state) { -@@ -2231,9 +2317,11 @@ +@@ -2242,9 +2328,11 @@ HRESULT (*resource_sub_resource_map)(struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags); HRESULT (*resource_sub_resource_unmap)(struct wined3d_resource *resource, unsigned int sub_resource_idx); @@ -9472,7 +9473,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_resource -@@ -2258,6 +2346,7 @@ +@@ -2269,6 +2357,7 @@ UINT depth; UINT size; DWORD priority; @@ -9480,7 +9481,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void *heap_memory, *map_heap_memory, *user_memory, *bitmap_data; UINT custom_row_pitch, custom_slice_pitch; struct wined3d_gl_bo *buffer, *map_buffer; -@@ -2265,6 +2354,10 @@ +@@ -2276,6 +2365,10 @@ DWORD locations; LONG access_fence; BOOL unmap_dirtify; @@ -9491,7 +9492,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void *parent; const struct wined3d_parent_ops *parent_ops; -@@ -2289,6 +2382,7 @@ +@@ -2300,6 +2393,7 @@ void *parent, const struct wined3d_parent_ops *parent_ops, const struct wined3d_resource_ops *resource_ops) DECLSPEC_HIDDEN; void resource_unload(struct wined3d_resource *resource) DECLSPEC_HIDDEN; @@ -9499,7 +9500,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h DWORD wined3d_resource_access_from_location(DWORD location) DECLSPEC_HIDDEN; BOOL wined3d_resource_allocate_sysmem(struct wined3d_resource *resource) DECLSPEC_HIDDEN; void wined3d_resource_changed(struct wined3d_resource *resource, -@@ -2337,6 +2431,15 @@ +@@ -2348,6 +2442,15 @@ { while(InterlockedCompareExchange(&resource->access_fence, 0, 0)); } @@ -9515,7 +9516,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* Tests show that the start address of resources is 32 byte aligned */ #define RESOURCE_ALIGNMENT 16 -@@ -2421,7 +2524,9 @@ +@@ -2432,7 +2535,9 @@ void wined3d_texture_apply_sampler_desc(struct wined3d_texture *texture, const struct wined3d_sampler_desc *sampler_desc, const struct wined3d_gl_info *gl_info) DECLSPEC_HIDDEN; @@ -9525,7 +9526,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_texture_bind(struct wined3d_texture *texture, struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN; void wined3d_texture_bind_and_dirtify(struct wined3d_texture *texture, -@@ -2455,9 +2560,16 @@ +@@ -2466,9 +2571,16 @@ struct wined3d_resource resource; struct wined3d_texture *container; @@ -9542,7 +9543,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; static inline struct wined3d_volume *volume_from_resource(struct wined3d_resource *resource) -@@ -2465,6 +2577,7 @@ +@@ -2476,6 +2588,7 @@ return CONTAINING_RECORD(resource, struct wined3d_volume, resource); } @@ -9550,7 +9551,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HRESULT wined3d_volume_create(struct wined3d_texture *container, const struct wined3d_resource_desc *desc, unsigned int level, struct wined3d_volume **volume) DECLSPEC_HIDDEN; void wined3d_volume_destroy(struct wined3d_volume *volume) DECLSPEC_HIDDEN; -@@ -2480,6 +2593,27 @@ +@@ -2491,6 +2604,27 @@ struct wined3d_surface_dib { HBITMAP DIBsection; @@ -9578,7 +9579,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h UINT bitmap_size; }; -@@ -2505,7 +2639,11 @@ +@@ -2516,7 +2650,11 @@ struct wined3d_surface_ops { HRESULT (*surface_private_setup)(struct wined3d_surface *surface); @@ -9590,7 +9591,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_surface -@@ -2513,12 +2651,26 @@ +@@ -2524,12 +2662,26 @@ struct wined3d_resource resource; const struct wined3d_surface_ops *surface_ops; struct wined3d_texture *container; @@ -9617,7 +9618,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h GLuint rb_multisample; GLuint rb_resolved; GLenum texture_target; -@@ -2562,11 +2714,22 @@ +@@ -2573,11 +2725,22 @@ GLenum surface_get_gl_buffer(const struct wined3d_surface *surface) DECLSPEC_HIDDEN; void surface_get_drawable_size(const struct wined3d_surface *surface, const struct wined3d_context *context, unsigned int *width, unsigned int *height) DECLSPEC_HIDDEN; @@ -9640,7 +9641,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void surface_modify_ds_location(struct wined3d_surface *surface, DWORD location, UINT w, UINT h) DECLSPEC_HIDDEN; void wined3d_surface_prepare(struct wined3d_surface *surface, struct wined3d_context *context, DWORD location) DECLSPEC_HIDDEN; -@@ -2578,6 +2741,7 @@ +@@ -2589,6 +2752,7 @@ const struct wined3d_gl_info *gl_info, void *mem, unsigned int pitch) DECLSPEC_HIDDEN; HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const POINT *dst_point, struct wined3d_surface *src_surface, const RECT *src_rect) DECLSPEC_HIDDEN; @@ -9648,7 +9649,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HRESULT wined3d_surface_create(struct wined3d_texture *container, const struct wined3d_resource_desc *desc, GLenum target, unsigned int level, unsigned int layer, DWORD flags, struct wined3d_surface **surface) DECLSPEC_HIDDEN; -@@ -2592,6 +2756,17 @@ +@@ -2603,6 +2767,17 @@ void wined3d_surface_cleanup_cs(struct wined3d_surface *surface) DECLSPEC_HIDDEN; void wined3d_surface_getdc_cs(struct wined3d_surface *surface) DECLSPEC_HIDDEN; void wined3d_surface_releasedc_cs(struct wined3d_surface *surface) DECLSPEC_HIDDEN; @@ -9666,7 +9667,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h 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; -@@ -2613,8 +2788,10 @@ +@@ -2624,8 +2799,10 @@ GLuint name; }; @@ -9677,7 +9678,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_vertex_declaration_element { const struct wined3d_format *format; -@@ -2643,8 +2820,10 @@ +@@ -2654,8 +2831,10 @@ BOOL half_float_conv_needed; }; @@ -9688,7 +9689,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_saved_states { DWORD transform[(HIGHEST_TRANSFORMSTATE >> 5) + 1]; -@@ -2712,6 +2891,7 @@ +@@ -2723,6 +2902,7 @@ void stateblock_init_contained_states(struct wined3d_stateblock *stateblock) DECLSPEC_HIDDEN; void state_cleanup(struct wined3d_state *state) DECLSPEC_HIDDEN; @@ -9696,7 +9697,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HRESULT state_init(struct wined3d_state *state, const struct wined3d_gl_info *gl_info, const struct wined3d_d3d_info *d3d_info, DWORD flags) DECLSPEC_HIDDEN; void state_unbind_resources(struct wined3d_state *state) DECLSPEC_HIDDEN; -@@ -2762,6 +2942,32 @@ +@@ -2773,6 +2953,32 @@ void wined3d_cs_destroy(struct wined3d_cs *cs) DECLSPEC_HIDDEN; void wined3d_cs_switch_onscreen_ds(struct wined3d_cs *cs, struct wined3d_context *context, struct wined3d_surface *depth_stencil) DECLSPEC_HIDDEN; @@ -9729,7 +9730,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects, DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil) DECLSPEC_HIDDEN; -@@ -2811,6 +3017,7 @@ +@@ -2822,6 +3028,7 @@ void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs, struct wined3d_vertex_declaration *declaration) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_viewport *viewport) DECLSPEC_HIDDEN; @@ -9737,7 +9738,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h 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; void wined3d_cs_emit_set_consts_b(struct wined3d_cs *cs, UINT start_register, -@@ -2874,6 +3081,7 @@ +@@ -2885,6 +3092,7 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_resource *resource, unsigned int sub_resource_idx, const struct wined3d_box *box, const void *data, unsigned int row_pitch, unsigned int depth_pitch) DECLSPEC_HIDDEN; @@ -9745,7 +9746,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* 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 -@@ -2888,8 +3096,12 @@ +@@ -2899,8 +3107,12 @@ struct wined3d_query_ops { HRESULT (*query_get_data)(struct wined3d_query *query, void *data, DWORD data_size, DWORD flags); @@ -9758,7 +9759,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_query -@@ -2903,12 +3115,16 @@ +@@ -2914,12 +3126,16 @@ enum wined3d_query_type type; DWORD data_size; void *extendedData; @@ -9775,7 +9776,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* TODO: Add tests and support for FLOAT16_4 POSITIONT, D3DCOLOR position, other * fixed function semantics as D3DCOLOR or FLOAT16 */ -@@ -2935,7 +3151,9 @@ +@@ -2946,7 +3162,9 @@ GLenum buffer_object_usage; GLenum buffer_type_hint; DWORD flags; @@ -9785,7 +9786,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void *map_ptr; struct wined3d_map_range *maps; -@@ -2960,11 +3178,15 @@ +@@ -2971,11 +3189,15 @@ BYTE *buffer_get_sysmem(struct wined3d_buffer *This, struct wined3d_context *context) DECLSPEC_HIDDEN; void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_context *context, const struct wined3d_state *state) DECLSPEC_HIDDEN; @@ -9801,7 +9802,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_rendertarget_view { -@@ -3003,8 +3225,10 @@ +@@ -3014,8 +3236,10 @@ return surface_from_resource(resource); } @@ -9812,7 +9813,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_shader_resource_view { LONG refcount; -@@ -3017,8 +3241,12 @@ +@@ -3028,8 +3252,12 @@ struct wined3d_swapchain_ops { void (*swapchain_present)(struct wined3d_swapchain *swapchain, const RECT *src_rect, @@ -9825,10 +9826,10 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_swapchain -@@ -3057,8 +3285,10 @@ - void swapchain_destroy_contexts(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; +@@ -3069,8 +3297,10 @@ HDC swapchain_get_backup_dc(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; void swapchain_update_draw_bindings(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; + void swapchain_update_swap_interval(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; +#if defined(STAGING_CSMT) HRESULT swapchain_create_context_cs(struct wined3d_device *device, struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; @@ -9836,7 +9837,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /***************************************************************************** * Utility function prototypes -@@ -3261,7 +3491,9 @@ +@@ -3273,7 +3503,9 @@ void shader_generate_main(const struct wined3d_shader *shader, struct wined3d_string_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; diff --git a/patches/wined3d-Revert_PixelFormat/0003-Revert-wined3d-Track-if-a-context-s-hdc-is-private-s.patch b/patches/wined3d-Revert_PixelFormat/0003-Revert-wined3d-Track-if-a-context-s-hdc-is-private-s.patch index 83326125..6d58b6cc 100644 --- a/patches/wined3d-Revert_PixelFormat/0003-Revert-wined3d-Track-if-a-context-s-hdc-is-private-s.patch +++ b/patches/wined3d-Revert_PixelFormat/0003-Revert-wined3d-Track-if-a-context-s-hdc-is-private-s.patch @@ -1,4 +1,4 @@ -From eb2f60a5106f76e9d1d8666edb4161ee091dc41e Mon Sep 17 00:00:00 2001 +From a7c9894a53f6eb8f2abaca3a1f5c6b49d69944e0 Mon Sep 17 00:00:00 2001 From: Ken Thomases Date: Sun, 14 Sep 2014 19:47:03 -0500 Subject: Revert "wined3d: Track if a context's hdc is private so we never need @@ -11,7 +11,7 @@ This reverts commit 272873823e9beff91ea1a62845fc7e5f94a9636f. 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c -index c11dd08..10e484c 100644 +index 1af6d4a..73463f1 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -812,7 +812,7 @@ static BOOL context_restore_pixel_format(struct wined3d_context *ctx) @@ -73,15 +73,15 @@ index c11dd08..10e484c 100644 context->needs_set = 1; context->valid = 1; -@@ -1446,7 +1445,6 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain, - int swap_interval; +@@ -1445,7 +1444,6 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain, + unsigned int s; DWORD state; HDC hdc; - BOOL hdc_is_private = FALSE; TRACE("swapchain %p, target %p, window %p.\n", swapchain, target, swapchain->win_handle); -@@ -1519,9 +1517,7 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain, +@@ -1518,9 +1516,7 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain, { WARN("Failed to retrieve device context, trying swapchain backup.\n"); @@ -92,7 +92,7 @@ index c11dd08..10e484c 100644 { ERR("Failed to retrieve a device context.\n"); goto out; -@@ -1587,7 +1583,7 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain, +@@ -1586,7 +1582,7 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain, ret->gl_info = gl_info; @@ -101,7 +101,7 @@ index c11dd08..10e484c 100644 { ERR("Failed to set pixel format %d on device context %p.\n", pixel_format, hdc); context_release(ret); -@@ -1650,7 +1646,6 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain, +@@ -1649,7 +1645,6 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain, ret->glCtx = ctx; ret->win_handle = swapchain->win_handle; ret->hdc = hdc; @@ -110,10 +110,10 @@ index c11dd08..10e484c 100644 ret->needs_set = 1; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index b060f53..c6390a2 100644 +index 1791b0f..7dacf7c 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -1193,9 +1193,8 @@ struct wined3d_context +@@ -1194,9 +1194,8 @@ struct wined3d_context DWORD use_immediate_mode_draw : 1; DWORD rebind_fbo : 1; DWORD needs_set : 1; @@ -125,5 +125,5 @@ index b060f53..c6390a2 100644 DWORD constant_update_mask; DWORD numbered_array_mask; -- -2.7.1 +2.9.0 diff --git a/patches/winsta-WinStationEnumerateW/0001-winsta-Add-stub-for-WinStationEnumerateW.patch b/patches/winsta-WinStationEnumerateW/0001-winsta-Add-stub-for-WinStationEnumerateW.patch deleted file mode 100644 index 7b5f93fb..00000000 --- a/patches/winsta-WinStationEnumerateW/0001-winsta-Add-stub-for-WinStationEnumerateW.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 7b26357b2125f80df05269f2bb38592dd2e8be6f Mon Sep 17 00:00:00 2001 -From: Austin English -Date: Thu, 7 May 2015 06:15:58 +0200 -Subject: winsta: Add stub for WinStationEnumerateW. (v2) - ---- - dlls/winsta/main.c | 7 +++++++ - dlls/winsta/winsta.spec | 2 +- - 2 files changed, 8 insertions(+), 1 deletion(-) - -diff --git a/dlls/winsta/main.c b/dlls/winsta/main.c -index a95782f..59efef2 100644 ---- a/dlls/winsta/main.c -+++ b/dlls/winsta/main.c -@@ -91,3 +91,10 @@ BOOL WINAPI WinStationVirtualOpen( PVOID a, PVOID b, PVOID c ) - SetLastError( ERROR_CALL_NOT_IMPLEMENTED ); - return FALSE; - } -+ -+BOOLEAN WINAPI WinStationEnumerateW( HANDLE server, PSESSIONIDW *sessionids, ULONG *count ) -+{ -+ FIXME( "%p %p %p\n", server, sessionids, count ); -+ SetLastError( ERROR_CALL_NOT_IMPLEMENTED ); -+ return FALSE; -+} -diff --git a/dlls/winsta/winsta.spec b/dlls/winsta/winsta.spec -index 30aa6b5..a9def1a 100644 ---- a/dlls/winsta/winsta.spec -+++ b/dlls/winsta/winsta.spec -@@ -29,7 +29,7 @@ - @ stub WinStationEnumerateA - @ stub WinStationEnumerateLicenses - @ stub WinStationEnumerateProcesses --@ stub WinStationEnumerateW -+@ stdcall WinStationEnumerateW(long ptr ptr) - @ stub WinStationEnumerate_IndexedA - @ stub WinStationEnumerate_IndexedW - @ stub WinStationFreeGAPMemory --- -2.4.5 - diff --git a/patches/winsta-WinStationEnumerateW/definition b/patches/winsta-WinStationEnumerateW/definition deleted file mode 100644 index 960df7bc..00000000 --- a/patches/winsta-WinStationEnumerateW/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [38102] Add stub for winsta.WinStationEnumerateW diff --git a/patches/ws2_32-Sort_default_route/0001-ws2_32-Ensure-default-route-IP-addresses-are-returne.patch b/patches/ws2_32-Sort_default_route/0001-ws2_32-Ensure-default-route-IP-addresses-are-returne.patch deleted file mode 100644 index 94edbf1c..00000000 --- a/patches/ws2_32-Sort_default_route/0001-ws2_32-Ensure-default-route-IP-addresses-are-returne.patch +++ /dev/null @@ -1,99 +0,0 @@ -From d2d862c195527b1cff45f2fedc2bd3f6014f3187 Mon Sep 17 00:00:00 2001 -From: Bruno Jesus <00cpxxx@gmail.com> -Date: Sun, 29 Nov 2015 11:28:28 +0800 -Subject: ws2_32: Ensure default route IP addresses are returned first in - gethostbyname - -Fixes: -https://bugs.winehq.org/show_bug.cgi?id=37271 -https://bugs.winehq.org/show_bug.cgi?id=22819 ---- - dlls/ws2_32/socket.c | 23 +++++++++++++++++------ - dlls/ws2_32/tests/sock.c | 1 - - 2 files changed, 17 insertions(+), 7 deletions(-) - -diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c -index d31f0b4..6877063 100644 ---- a/dlls/ws2_32/socket.c -+++ b/dlls/ws2_32/socket.c -@@ -596,7 +596,7 @@ struct per_thread_data - struct route { - struct in_addr addr; - IF_INDEX interface; -- DWORD metric; -+ DWORD metric, default_route; - }; - - static INT num_startup; /* reference counter */ -@@ -5931,7 +5931,14 @@ struct WS_hostent* WINAPI WS_gethostbyaddr(const char *addr, int len, int type) - */ - static int WS_compare_routes_by_metric_asc(const void *left, const void *right) - { -- return ((const struct route*)left)->metric - ((const struct route*)right)->metric; -+ const struct route *a = left, *b = right; -+ if (a->default_route && b->default_route) -+ return a->default_route - b->default_route; -+ if (a->default_route && !b->default_route) -+ return -1; -+ if (b->default_route && !a->default_route) -+ return 1; -+ return a->metric - b->metric; - } - - /*********************************************************************** -@@ -5948,7 +5955,7 @@ static int WS_compare_routes_by_metric_asc(const void *left, const void *right) - */ - static struct WS_hostent* WS_get_local_ips( char *hostname ) - { -- int numroutes = 0, i, j; -+ int numroutes = 0, i, j, default_routes = 0; - DWORD n; - PIP_ADAPTER_INFO adapters = NULL, k; - struct WS_hostent *hostlist = NULL; -@@ -5975,10 +5982,13 @@ static struct WS_hostent* WS_get_local_ips( char *hostname ) - for (n = 0; n < routes->dwNumEntries; n++) - { - IF_INDEX ifindex; -- DWORD ifmetric; -+ DWORD ifmetric, ifdefault = 0; - BOOL exists = FALSE; - -- if (routes->table[n].u1.ForwardType != MIB_IPROUTE_TYPE_DIRECT) -+ /* Check if this is a default route (there may be more than one) */ -+ if (!routes->table[n].dwForwardDest) -+ ifdefault = ++default_routes; -+ else if (routes->table[n].u1.ForwardType != MIB_IPROUTE_TYPE_DIRECT) - continue; - ifindex = routes->table[n].dwForwardIfIndex; - ifmetric = routes->table[n].dwForwardMetric1; -@@ -5999,13 +6009,14 @@ static struct WS_hostent* WS_get_local_ips( char *hostname ) - goto cleanup; /* Memory allocation error, fail gracefully */ - route_addrs[numroutes].interface = ifindex; - route_addrs[numroutes].metric = ifmetric; -+ route_addrs[numroutes].default_route = ifdefault; - /* If no IP is found in the next step (for whatever reason) - * then fall back to the magic loopback address. - */ - memcpy(&(route_addrs[numroutes].addr.s_addr), magic_loopback_addr, 4); - numroutes++; - } -- if (numroutes == 0) -+ if (numroutes == 0) - goto cleanup; /* No routes, fall back to the Magic IP */ - /* Find the IP address associated with each found interface */ - for (i = 0; i < numroutes; i++) -diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c -index 00fac77..ce09053 100644 ---- a/dlls/ws2_32/tests/sock.c -+++ b/dlls/ws2_32/tests/sock.c -@@ -4545,7 +4545,6 @@ static void test_gethostbyname(void) - } - } - } --todo_wine - ok (found_default, "failed to find the first IP from gethostbyname!\n"); - - cleanup: --- -2.6.2 - diff --git a/patches/ws2_32-Sort_default_route/definition b/patches/ws2_32-Sort_default_route/definition deleted file mode 100644 index f06e6e3f..00000000 --- a/patches/ws2_32-Sort_default_route/definition +++ /dev/null @@ -1,2 +0,0 @@ -Fixes: [22819] Ensure default route IP addresses are returned first in gethostbyname -Fixes: [37271] Fix issue causing applications to report magic loopback address instead of real IP