diff --git a/patches/kernel32-SetProcessAffinityUpdateMode/0001-kernel32-add-SetProcessAffinityUpdateMode-stub.patch b/patches/kernel32-SetProcessAffinityUpdateMode/0001-kernel32-add-SetProcessAffinityUpdateMode-stub.patch deleted file mode 100644 index 958c9a77..00000000 --- a/patches/kernel32-SetProcessAffinityUpdateMode/0001-kernel32-add-SetProcessAffinityUpdateMode-stub.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 98c0534337d1057e68369b939769dfed30f065ed Mon Sep 17 00:00:00 2001 -From: Thomas Crider -Date: Fri, 13 Apr 2018 18:04:09 -0400 -Subject: kernel32: add SetProcessAffinityUpdateMode stub - ---- - .../api-ms-win-core-processthreads-l1-1-0.spec | 2 +- - .../api-ms-win-core-processthreads-l1-1-1.spec | 2 +- - .../api-ms-win-core-processthreads-l1-1-2.spec | 2 +- - dlls/kernel32/kernel32.spec | 2 +- - dlls/kernel32/process.c | 7 +++++++ - dlls/kernelbase/kernelbase.spec | 2 +- - 6 files changed, 12 insertions(+), 5 deletions(-) - -diff --git a/dlls/api-ms-win-core-processthreads-l1-1-0/api-ms-win-core-processthreads-l1-1-0.spec b/dlls/api-ms-win-core-processthreads-l1-1-0/api-ms-win-core-processthreads-l1-1-0.spec -index ff13d48..154c875 100644 ---- a/dlls/api-ms-win-core-processthreads-l1-1-0/api-ms-win-core-processthreads-l1-1-0.spec -+++ b/dlls/api-ms-win-core-processthreads-l1-1-0/api-ms-win-core-processthreads-l1-1-0.spec -@@ -32,7 +32,7 @@ - @ stdcall QueueUserAPC(ptr long long) kernel32.QueueUserAPC - @ stdcall ResumeThread(long) kernel32.ResumeThread - @ stdcall SetPriorityClass(long long) kernel32.SetPriorityClass --@ stub SetProcessAffinityUpdateMode -+@ stdcall SetProcessAffinityUpdateMode(long long) kernel32.SetProcessAffinityUpdateMode - @ stdcall SetProcessShutdownParameters(long long) kernel32.SetProcessShutdownParameters - @ stdcall SetThreadPriority(long long) kernel32.SetThreadPriority - @ stdcall SetThreadPriorityBoost(long long) kernel32.SetThreadPriorityBoost -diff --git a/dlls/api-ms-win-core-processthreads-l1-1-1/api-ms-win-core-processthreads-l1-1-1.spec b/dlls/api-ms-win-core-processthreads-l1-1-1/api-ms-win-core-processthreads-l1-1-1.spec -index 381db8a..ebbe55f 100644 ---- a/dlls/api-ms-win-core-processthreads-l1-1-1/api-ms-win-core-processthreads-l1-1-1.spec -+++ b/dlls/api-ms-win-core-processthreads-l1-1-1/api-ms-win-core-processthreads-l1-1-1.spec -@@ -43,7 +43,7 @@ - @ stdcall QueueUserAPC(ptr long long) kernel32.QueueUserAPC - @ stdcall ResumeThread(long) kernel32.ResumeThread - @ stdcall SetPriorityClass(long long) kernel32.SetPriorityClass --@ stub SetProcessAffinityUpdateMode -+@ stdcall SetProcessAffinityUpdateMode(long long) kernel32.SetProcessAffinityUpdateMode - @ stub SetProcessMitigationPolicy - @ stdcall SetProcessShutdownParameters(long long) kernel32.SetProcessShutdownParameters - @ stdcall SetThreadContext(long ptr) kernel32.SetThreadContext -diff --git a/dlls/api-ms-win-core-processthreads-l1-1-2/api-ms-win-core-processthreads-l1-1-2.spec b/dlls/api-ms-win-core-processthreads-l1-1-2/api-ms-win-core-processthreads-l1-1-2.spec -index fc2feec..db94c2e 100644 ---- a/dlls/api-ms-win-core-processthreads-l1-1-2/api-ms-win-core-processthreads-l1-1-2.spec -+++ b/dlls/api-ms-win-core-processthreads-l1-1-2/api-ms-win-core-processthreads-l1-1-2.spec -@@ -48,7 +48,7 @@ - @ stdcall QueueUserAPC(ptr long long) kernel32.QueueUserAPC - @ stdcall ResumeThread(long) kernel32.ResumeThread - @ stdcall SetPriorityClass(long long) kernel32.SetPriorityClass --@ stub SetProcessAffinityUpdateMode -+@ stdcall SetProcessAffinityUpdateMode(long long) kernel32.SetProcessAffinityUpdateMode - @ stub SetProcessMitigationPolicy - @ stdcall SetProcessPriorityBoost(long long) kernel32.SetProcessPriorityBoost - @ stdcall SetProcessShutdownParameters(long long) kernel32.SetProcessShutdownParameters -diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec -index 7470d2b..8b8fa3a 100644 ---- a/dlls/kernel32/kernel32.spec -+++ b/dlls/kernel32/kernel32.spec -@@ -1425,7 +1425,7 @@ - @ stdcall SetNamedPipeHandleState(long ptr ptr ptr) - @ stdcall SetPriorityClass(long long) - @ stdcall SetProcessAffinityMask(long long) --# @ stub SetProcessAffinityUpdateMode -+@ stdcall SetProcessAffinityUpdateMode(long long) - @ stdcall SetProcessDEPPolicy(long) - # @ stub SetProcessPreferredUILanguages - @ stdcall SetProcessPriorityBoost(long long) -diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c -index 47f1cfb..613b30b 100644 ---- a/dlls/kernel32/process.c -+++ b/dlls/kernel32/process.c -@@ -3647,6 +3647,13 @@ cleanup: - return !status; - } - -+BOOL WINAPI SetProcessAffinityUpdateMode(HANDLE hProcess, DWORD flags) -+{ -+ FIXME("(%p,0x%08x): stub\n", hProcess, flags); -+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED); -+ return FALSE; -+} -+ - /*********************************************************************** - * K32GetProcessImageFileNameA (KERNEL32.@) - */ -diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec -index be1e5b5..768eadf 100644 ---- a/dlls/kernelbase/kernelbase.spec -+++ b/dlls/kernelbase/kernelbase.spec -@@ -1452,7 +1452,7 @@ - @ stdcall SetPriorityClass(long long) kernel32.SetPriorityClass - @ stdcall SetPrivateObjectSecurity(long ptr ptr ptr long) advapi32.SetPrivateObjectSecurity - @ stub SetPrivateObjectSecurityEx --@ stub SetProcessAffinityUpdateMode -+@ stdcall SetProcessAffinityUpdateMode(long long) kernel32.SetProcessAffinityUpdateMode - # @ stub SetProcessDefaultCpuSets - # @ stub SetProcessGroupAffinity - # @ stub SetProcessInformation --- -2.7.4 - diff --git a/patches/kernel32-SetProcessAffinityUpdateMode/definition b/patches/kernel32-SetProcessAffinityUpdateMode/definition deleted file mode 100644 index 8ce986b8..00000000 --- a/patches/kernel32-SetProcessAffinityUpdateMode/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: Crash in Dead Rising 4 \ No newline at end of file diff --git a/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch b/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch index 2f175fe4..bb820397 100644 --- a/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch +++ b/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch @@ -1,4 +1,4 @@ -From ac83666eff8a7a92177d048f719d5494e32a098c Mon Sep 17 00:00:00 2001 +From 225b86d4fb6f51854f173076564f6bea9a9e5ac0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Mon, 3 Apr 2017 05:30:27 +0200 Subject: [PATCH] ntdll: Implement HashLinks field in LDR module data. @@ -10,7 +10,7 @@ Subject: [PATCH] ntdll: Implement HashLinks field in LDR module data. 3 files changed, 144 insertions(+), 2 deletions(-) diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c -index f1c33eef84..5ea7f5ecd8 100644 +index ac62d28..0f5ddf1 100644 --- a/dlls/kernel32/tests/loader.c +++ b/dlls/kernel32/tests/loader.c @@ -29,6 +29,7 @@ @@ -21,7 +21,7 @@ index f1c33eef84..5ea7f5ecd8 100644 #include "wine/test.h" #include "delayloadhandler.h" -@@ -3546,6 +3547,79 @@ static void test_InMemoryOrderModuleList(void) +@@ -3573,6 +3574,79 @@ static void test_InMemoryOrderModuleList(void) ok(entry2 == mark2, "expected entry2 == mark2, got %p and %p\n", entry2, mark2); } @@ -101,14 +101,14 @@ index f1c33eef84..5ea7f5ecd8 100644 START_TEST(loader) { int argc; -@@ -3610,4 +3684,5 @@ START_TEST(loader) +@@ -3637,4 +3711,5 @@ START_TEST(loader) test_import_resolution(); test_ExitProcess(); test_InMemoryOrderModuleList(); + test_HashLinks(); } diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index 7d7c29ec1e..a2a72dd571 100644 +index 06915aa..722ab44 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -86,6 +86,9 @@ static const char * const reason_names[] = @@ -121,11 +121,10 @@ index 7d7c29ec1e..a2a72dd571 100644 /* internal representation of 32bit modules. per process. */ typedef struct _wine_modref { -@@ -347,6 +350,52 @@ static inline ULONG_PTR allocate_stub( const char *dll, const char *name ) { ret - #endif /* __i386__ */ +@@ -349,6 +352,52 @@ static inline ULONG_PTR allocate_stub( const char *dll, const char *name ) { ret -+/************************************************************************* + /************************************************************************* + * hash_basename + * + * Calculates the bucket index of a dll using the basename. @@ -171,10 +170,11 @@ index 7d7c29ec1e..a2a72dd571 100644 + } +} + - /************************************************************************* ++/************************************************************************* * get_modref * -@@ -1059,7 +1108,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, LPCWSTR filename, LPCWSTR fak + * Looks for the referenced HMODULE in the current process +@@ -1067,7 +1116,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, LPCWSTR filename, LPCWSTR fak &wm->ldr.InLoadOrderModuleList); InsertTailList(&NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList, &wm->ldr.InMemoryOrderModuleList); @@ -187,7 +187,7 @@ index 7d7c29ec1e..a2a72dd571 100644 if (!(nt->OptionalHeader.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_NX_COMPAT)) { -@@ -1768,6 +1822,7 @@ static void load_builtin_callback( void *module, const char *filename ) +@@ -1795,6 +1849,7 @@ static void load_builtin_callback( void *module, const char *filename ) /* the module has only be inserted in the load & memory order lists */ RemoveEntryList(&wm->ldr.InLoadOrderModuleList); RemoveEntryList(&wm->ldr.InMemoryOrderModuleList); @@ -195,7 +195,7 @@ index 7d7c29ec1e..a2a72dd571 100644 /* FIXME: free the modref */ builtin_load_info->status = STATUS_DLL_NOT_FOUND; return; -@@ -2024,6 +2079,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, LPCWSTR fakemo +@@ -2055,6 +2110,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, LPCWSTR fakemo /* the module has only be inserted in the load & memory order lists */ RemoveEntryList(&wm->ldr.InLoadOrderModuleList); RemoveEntryList(&wm->ldr.InMemoryOrderModuleList); @@ -203,7 +203,7 @@ index 7d7c29ec1e..a2a72dd571 100644 /* FIXME: there are several more dangling references * left. Including dlls loaded by this dll before the -@@ -3171,6 +3227,7 @@ static void free_modref( WINE_MODREF *wm ) +@@ -3230,6 +3286,7 @@ static void free_modref( WINE_MODREF *wm ) { RemoveEntryList(&wm->ldr.InLoadOrderModuleList); RemoveEntryList(&wm->ldr.InMemoryOrderModuleList); @@ -211,7 +211,7 @@ index 7d7c29ec1e..a2a72dd571 100644 if (wm->ldr.InInitializationOrderModuleList.Flink) RemoveEntryList(&wm->ldr.InInitializationOrderModuleList); -@@ -3568,6 +3625,9 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2, +@@ -3627,6 +3684,9 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2, RemoveEntryList( &wm->ldr.InMemoryOrderModuleList ); InsertHeadList( &peb->LdrData->InMemoryOrderModuleList, &wm->ldr.InMemoryOrderModuleList ); @@ -221,7 +221,7 @@ index 7d7c29ec1e..a2a72dd571 100644 if ((status = virtual_alloc_thread_stack( NtCurrentTeb(), 0, 0, NULL )) != STATUS_SUCCESS) { ERR( "Main exe initialization for %s failed, status %x\n", -@@ -3717,6 +3777,7 @@ void __wine_process_init(void) +@@ -3773,6 +3833,7 @@ void __wine_process_init(void) NTSTATUS status; ANSI_STRING func_name; void (* DECLSPEC_NORETURN CDECL init_func)(void); @@ -229,7 +229,7 @@ index 7d7c29ec1e..a2a72dd571 100644 main_exe_file = thread_init(); -@@ -3726,6 +3787,10 @@ void __wine_process_init(void) +@@ -3782,6 +3843,10 @@ void __wine_process_init(void) load_global_options(); @@ -241,10 +241,10 @@ index 7d7c29ec1e..a2a72dd571 100644 wine_dll_set_callback( load_builtin_callback ); diff --git a/include/winternl.h b/include/winternl.h -index 8c7071071c..144c27a629 100644 +index 3659db1..bd6a8af 100644 --- a/include/winternl.h +++ b/include/winternl.h -@@ -2147,8 +2147,7 @@ typedef struct _LDR_MODULE +@@ -2164,8 +2164,7 @@ typedef struct _LDR_MODULE ULONG Flags; SHORT LoadCount; SHORT TlsIndex; @@ -254,7 +254,7 @@ index 8c7071071c..144c27a629 100644 ULONG TimeDateStamp; HANDLE ActivationContext; PVOID PatchInformation; -@@ -2158,6 +2157,9 @@ typedef struct _LDR_MODULE +@@ -2175,6 +2174,9 @@ typedef struct _LDR_MODULE PVOID ContextInformation; ULONG_PTR OriginalBase; LARGE_INTEGER LoadTime; @@ -263,7 +263,7 @@ index 8c7071071c..144c27a629 100644 + HANDLE SectionHandle; } LDR_MODULE, *PLDR_MODULE; - /* those defines are (some of the) regular LDR_MODULE.Flags values */ + typedef struct _LDR_DLL_LOADED_NOTIFICATION_DATA -- -2.16.1 +1.9.1 diff --git a/patches/ntdll-LDR_MODULE/0002-include-Update-LDR_MODULE-to-more-recent-windows-ver.patch b/patches/ntdll-LDR_MODULE/0002-include-Update-LDR_MODULE-to-more-recent-windows-ver.patch index 7a940423..10331978 100644 --- a/patches/ntdll-LDR_MODULE/0002-include-Update-LDR_MODULE-to-more-recent-windows-ver.patch +++ b/patches/ntdll-LDR_MODULE/0002-include-Update-LDR_MODULE-to-more-recent-windows-ver.patch @@ -1,17 +1,17 @@ -From 4b74342ce0dd261a93f5a2d30140078696b5a46d Mon Sep 17 00:00:00 2001 +From 85dae537010f21064aea63c24888609169cf249a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Tue, 7 Mar 2017 15:26:50 +0100 -Subject: include: Update LDR_MODULE to more recent windows versions. +Subject: [PATCH] include: Update LDR_MODULE to more recent windows versions. --- include/winternl.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/winternl.h b/include/winternl.h -index 5cd1664f1f..ef9a5bad1c 100644 +index 7612f8a..3659db1 100644 --- a/include/winternl.h +++ b/include/winternl.h -@@ -2103,6 +2103,13 @@ typedef struct _LDR_MODULE +@@ -2168,6 +2168,13 @@ typedef struct _LDR_MODULE ULONG CheckSum; ULONG TimeDateStamp; HANDLE ActivationContext; @@ -24,7 +24,7 @@ index 5cd1664f1f..ef9a5bad1c 100644 + LARGE_INTEGER LoadTime; } LDR_MODULE, *PLDR_MODULE; - /* those defines are (some of the) regular LDR_MODULE.Flags values */ + typedef struct _LDR_DLL_LOADED_NOTIFICATION_DATA -- -2.11.0 +1.9.1 diff --git a/patches/ntdll-LdrRegisterDllNotification/0001-ntdll-Implement-LdrRegisterDllNotification-and-LdrUn.patch b/patches/ntdll-LdrRegisterDllNotification/0001-ntdll-Implement-LdrRegisterDllNotification-and-LdrUn.patch index efc0a919..fdc090a1 100644 --- a/patches/ntdll-LdrRegisterDllNotification/0001-ntdll-Implement-LdrRegisterDllNotification-and-LdrUn.patch +++ b/patches/ntdll-LdrRegisterDllNotification/0001-ntdll-Implement-LdrRegisterDllNotification-and-LdrUn.patch @@ -1,18 +1,16 @@ -From 99b6bb4e3d0136d51ef3f1b03b3ca8f2b6bdca3d Mon Sep 17 00:00:00 2001 +From 1a105dee7bff64ffe5280b29e4274c0d375cacf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sat, 22 Jul 2017 03:56:26 +0200 Subject: [PATCH] ntdll: Implement LdrRegisterDllNotification and LdrUnregisterDllNotification. --- - dlls/ntdll/loader.c | 90 ++++++++++++++++++ - dlls/ntdll/ntdll.spec | 2 + + dlls/ntdll/loader.c | 79 +++++++++++++++- dlls/ntdll/tests/rtl.c | 250 +++++++++++++++++++++++++++++++++++++++++++++++++ - include/winternl.h | 29 ++++++ - 4 files changed, 371 insertions(+) + 2 files changed, 325 insertions(+), 4 deletions(-) diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index 0a9069f..adde9ee 100644 +index ba3e2df..6495bb3 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -40,6 +40,7 @@ @@ -39,7 +37,7 @@ index 0a9069f..adde9ee 100644 #define IS_OPTION_TRUE(ch) ((ch) == 'y' || (ch) == 'Y' || (ch) == 't' || (ch) == 'T' || (ch) == '1') static BOOL imports_fixup_done = FALSE; /* set once the imports have been fixed up, before attaching them */ -@@ -345,6 +355,29 @@ static ULONG_PTR allocate_stub( const char *dll, const char *name ) +@@ -350,6 +360,29 @@ static ULONG_PTR allocate_stub( const char *dll, const char *name ) static inline ULONG_PTR allocate_stub( const char *dll, const char *name ) { return 0xdeadbeef; } #endif /* __i386__ */ @@ -69,7 +67,7 @@ index 0a9069f..adde9ee 100644 /************************************************************************* * hash_basename -@@ -1295,16 +1328,23 @@ static NTSTATUS process_attach( WINE_MODREF *wm, LPVOID lpReserved ) +@@ -1334,16 +1367,23 @@ static NTSTATUS process_attach( WINE_MODREF *wm, LPVOID lpReserved ) { WINE_MODREF *prev = current_modref; current_modref = wm; @@ -93,7 +91,7 @@ index 0a9069f..adde9ee 100644 current_modref = prev; } -@@ -1373,6 +1413,7 @@ static void process_detach(void) +@@ -1412,6 +1452,7 @@ static void process_detach(void) mod->Flags &= ~LDR_PROCESS_ATTACHED; MODULE_InitDLL( CONTAINING_RECORD(mod, WINE_MODREF, ldr), DLL_PROCESS_DETACH, ULongToPtr(process_detaching) ); @@ -101,15 +99,12 @@ index 0a9069f..adde9ee 100644 /* Restart at head of WINE_MODREF list, as entries might have been added and/or removed while performing the call ... */ -@@ -1482,6 +1523,54 @@ NTSTATUS WINAPI LdrEnumerateLoadedModules( void *unknown, LDRENUMPROC callback, - } - - /****************************************************************** -+ * LdrRegisterDllNotification (NTDLL.@) -+ */ -+NTSTATUS WINAPI LdrRegisterDllNotification(ULONG flags, PLDR_DLL_NOTIFICATION_FUNCTION callback, -+ void *context, void **cookie) -+{ +@@ -1526,8 +1567,27 @@ NTSTATUS WINAPI LdrEnumerateLoadedModules( void *unknown, LDRENUMPROC callback, + NTSTATUS WINAPI LdrRegisterDllNotification(ULONG flags, PLDR_DLL_NOTIFICATION_FUNCTION callback, + void *context, void **cookie) + { +- FIXME( "(%04x, %p, %p, %p) stub\n", flags, callback, context, cookie ); +- return STATUS_NOT_IMPLEMENTED; + struct ldr_notification *notify; + + TRACE( "(%x, %p, %p, %p)\n", flags, callback, context, cookie ); @@ -131,13 +126,15 @@ index 0a9069f..adde9ee 100644 + + *cookie = notify; + return STATUS_SUCCESS; -+} -+ -+/****************************************************************** -+ * LdrUnregisterDllNotification (NTDLL.@) -+ */ -+NTSTATUS WINAPI LdrUnregisterDllNotification(void *cookie) -+{ + } + + /****************************************************************** +@@ -1535,8 +1595,18 @@ NTSTATUS WINAPI LdrRegisterDllNotification(ULONG flags, PLDR_DLL_NOTIFICATION_FU + */ + NTSTATUS WINAPI LdrUnregisterDllNotification( void *cookie ) + { +- FIXME( "(%p) stub\n", cookie ); +- return STATUS_NOT_IMPLEMENTED; + struct ldr_notification *notify = cookie; + + TRACE( "(%p)\n", cookie ); @@ -150,13 +147,10 @@ index 0a9069f..adde9ee 100644 + + RtlFreeHeap( GetProcessHeap(), 0, notify ); + return STATUS_SUCCESS; -+} -+ -+/****************************************************************** - * LdrLockLoaderLock (NTDLL.@) - * - * Note: some flags are not implemented. -@@ -2068,6 +2157,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, HANDLE file, + } + + /****************************************************************** +@@ -2141,6 +2211,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, LPCWSTR fakemo TRACE_(loaddll)( "Loaded %s at %p: native\n", debugstr_w(wm->ldr.FullDllName.Buffer), module ); wm->ldr.LoadCount = 1; @@ -164,26 +158,6 @@ index 0a9069f..adde9ee 100644 *pwm = wm; return STATUS_SUCCESS; } -diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec -index 2257a93..4c34e10 100644 ---- a/dlls/ntdll/ntdll.spec -+++ b/dlls/ntdll/ntdll.spec -@@ -83,6 +83,7 @@ - @ stdcall LdrProcessRelocationBlock(ptr long ptr long) - @ stdcall LdrQueryImageFileExecutionOptions(ptr wstr long ptr long ptr) - @ stdcall LdrQueryProcessModuleInformation(ptr long ptr) -+@ stdcall LdrRegisterDllNotification(long ptr long ptr) - @ stdcall LdrResolveDelayLoadedAPI(ptr ptr ptr ptr ptr long) - @ stub LdrSetAppCompatDllRedirectionCallback - @ stub LdrSetDllManifestProber -@@ -91,6 +92,7 @@ - @ stub LdrUnloadAlternateResourceModule - @ stdcall LdrUnloadDll(ptr) - @ stdcall LdrUnlockLoaderLock(long long) -+@ stdcall LdrUnregisterDllNotification(ptr) - @ stub LdrVerifyImageMatchesChecksum - @ extern NlsAnsiCodePage - @ extern NlsMbCodePageTag diff --git a/dlls/ntdll/tests/rtl.c b/dlls/ntdll/tests/rtl.c index 02ae1c1..8358cd5 100644 --- a/dlls/ntdll/tests/rtl.c @@ -471,53 +445,6 @@ index 02ae1c1..8358cd5 100644 test_RtlMakeSelfRelativeSD(); + test_LdrRegisterDllNotification(); } -diff --git a/include/winternl.h b/include/winternl.h -index 743f3d7..d24e3f9 100644 ---- a/include/winternl.h -+++ b/include/winternl.h -@@ -2161,6 +2161,32 @@ typedef struct _LDR_MODULE - HANDLE SectionHandle; - } LDR_MODULE, *PLDR_MODULE; - -+typedef struct _LDR_DLL_LOADED_NOTIFICATION_DATA -+{ -+ ULONG Flags; -+ PCUNICODE_STRING FullDllName; -+ PCUNICODE_STRING BaseDllName; -+ PVOID DllBase; -+ ULONG SizeOfImage; -+} LDR_DLL_LOADED_NOTIFICATION_DATA, *PLDR_DLL_LOADED_NOTIFICATION_DATA; -+ -+typedef struct _LDR_DLL_UNLOADED_NOTIFICATION_DATA -+{ -+ ULONG Flags; -+ PCUNICODE_STRING FullDllName; -+ PCUNICODE_STRING BaseDllName; -+ PVOID DllBase; -+ ULONG SizeOfImage; -+} LDR_DLL_UNLOADED_NOTIFICATION_DATA, *PLDR_DLL_UNLOADED_NOTIFICATION_DATA; -+ -+typedef union _LDR_DLL_NOTIFICATION_DATA -+{ -+ LDR_DLL_LOADED_NOTIFICATION_DATA Loaded; -+ LDR_DLL_UNLOADED_NOTIFICATION_DATA Unloaded; -+} LDR_DLL_NOTIFICATION_DATA, *PLDR_DLL_NOTIFICATION_DATA; -+ -+typedef void (CALLBACK *PLDR_DLL_NOTIFICATION_FUNCTION)(ULONG, LDR_DLL_NOTIFICATION_DATA*, void*); -+ - /* those defines are (some of the) regular LDR_MODULE.Flags values */ - #define LDR_IMAGE_IS_DLL 0x00000004 - #define LDR_LOAD_IN_PROGRESS 0x00001000 -@@ -2180,6 +2206,9 @@ typedef struct _LDR_MODULE - /* FIXME: to be checked */ - #define MAXIMUM_FILENAME_LENGTH 256 - -+#define LDR_DLL_NOTIFICATION_REASON_LOADED 1 -+#define LDR_DLL_NOTIFICATION_REASON_UNLOADED 2 -+ - typedef struct _SYSTEM_MODULE - { - PVOID Reserved1; /* 00/00 */ -- -2.7.4 +1.9.1 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index b38dbeca..6e4f1c20 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "ba1d9f3aad85303997635ce8328caffa08992c14" + echo "48aeef69fc99ff1460da934f4933f0499ff33b13" } # Show version information @@ -181,7 +181,6 @@ patch_enable_all () enable_kernel32_Profile="$1" enable_kernel32_SCSI_Sysfs="$1" enable_kernel32_SetFileCompletionNotificationModes="$1" - enable_kernel32_SetProcessAffinityUpdateMode="$1" enable_kernelbase_PathCchCombineEx="$1" enable_krnl386_exe16_GDT_LDT_Emulation="$1" enable_krnl386_exe16_Invalid_Console_Handles="$1" @@ -307,7 +306,6 @@ patch_enable_all () enable_shdocvw_ParseURLFromOutsideSource_Tests="$1" enable_shell32_ACE_Viewer="$1" enable_shell32_Context_Menu="$1" - enable_shell32_Microsoft_Windows_Themes="$1" enable_shell32_NewMenu_Interface="$1" enable_shell32_Placeholder_Icons="$1" enable_shell32_Progress_Dialog="$1" @@ -346,7 +344,6 @@ patch_enable_all () enable_user32_lpCreateParams="$1" enable_uxtheme_CloseThemeClass="$1" enable_uxtheme_GTK_Theming="$1" - enable_version_GetFileVersionInfoSizeExW="$1" enable_version_VerFindFileA="$1" enable_version_VerQueryValue="$1" enable_virtdisk_GetStorageDependencyInformation="$1" @@ -376,7 +373,6 @@ patch_enable_all () enable_wined3d_CSMT_Main="$1" enable_wined3d_DXTn="$1" enable_wined3d_Dual_Source_Blending="$1" - enable_wined3d_Implement_oMask="$1" enable_wined3d_Indexed_Vertex_Blending="$1" enable_wined3d_QUERY_Stubs="$1" enable_wined3d_Silence_FIXMEs="$1" @@ -724,9 +720,6 @@ patch_enable () kernel32-SetFileCompletionNotificationModes) enable_kernel32_SetFileCompletionNotificationModes="$2" ;; - kernel32-SetProcessAffinityUpdateMode) - enable_kernel32_SetProcessAffinityUpdateMode="$2" - ;; kernelbase-PathCchCombineEx) enable_kernelbase_PathCchCombineEx="$2" ;; @@ -1102,9 +1095,6 @@ patch_enable () shell32-Context_Menu) enable_shell32_Context_Menu="$2" ;; - shell32-Microsoft_Windows_Themes) - enable_shell32_Microsoft_Windows_Themes="$2" - ;; shell32-NewMenu_Interface) enable_shell32_NewMenu_Interface="$2" ;; @@ -1219,9 +1209,6 @@ patch_enable () uxtheme-GTK_Theming) enable_uxtheme_GTK_Theming="$2" ;; - version-GetFileVersionInfoSizeExW) - enable_version_GetFileVersionInfoSizeExW="$2" - ;; version-VerFindFileA) enable_version_VerFindFileA="$2" ;; @@ -1309,9 +1296,6 @@ patch_enable () wined3d-Dual_Source_Blending) enable_wined3d_Dual_Source_Blending="$2" ;; - wined3d-Implement-oMask) - enable_wined3d_Implement_oMask="$2" - ;; wined3d-Indexed_Vertex_Blending) enable_wined3d_Indexed_Vertex_Blending="$2" ;; @@ -4415,20 +4399,6 @@ if test "$enable_kernel32_SetFileCompletionNotificationModes" -eq 1; then ) >> "$patchlist" fi -# Patchset kernel32-SetProcessAffinityUpdateMode -# | -# | Modified files: -# | * dlls/api-ms-win-core-processthreads-l1-1-0/api-ms-win-core-processthreads-l1-1-0.spec, dlls/api-ms-win-core- -# | processthreads-l1-1-1/api-ms-win-core-processthreads-l1-1-1.spec, dlls/api-ms-win-core-processthreads-l1-1-2/api-ms-win- -# | core-processthreads-l1-1-2.spec, dlls/kernel32/kernel32.spec, dlls/kernel32/process.c, dlls/kernelbase/kernelbase.spec -# | -if test "$enable_kernel32_SetProcessAffinityUpdateMode" -eq 1; then - patch_apply kernel32-SetProcessAffinityUpdateMode/0001-kernel32-add-SetProcessAffinityUpdateMode-stub.patch - ( - printf '%s\n' '+ { "Thomas Crider", "kernel32: Add SetProcessAffinityUpdateMode stub.", 1 },'; - ) >> "$patchlist" -fi - # Patchset kernelbase-PathCchCombineEx # | # | This patchset fixes the following Wine bugs: @@ -5177,7 +5147,7 @@ fi # | * [#44585] Implement LdrRegisterDllNotification/LdrUnregisterDllNotification # | # | Modified files: -# | * dlls/ntdll/loader.c, dlls/ntdll/ntdll.spec, dlls/ntdll/tests/rtl.c, include/winternl.h +# | * dlls/ntdll/loader.c, dlls/ntdll/tests/rtl.c # | if test "$enable_ntdll_LdrRegisterDllNotification" -eq 1; then patch_apply ntdll-LdrRegisterDllNotification/0001-ntdll-Implement-LdrRegisterDllNotification-and-LdrUn.patch @@ -6521,21 +6491,6 @@ if test "$enable_shell32_Context_Menu" -eq 1; then ) >> "$patchlist" fi -# Patchset shell32-Microsoft_Windows_Themes -# | -# | This patchset fixes the following Wine bugs: -# | * [#34910] Create Microsoft\Windows\Themes directory during Wineprefix creation -# | -# | Modified files: -# | * dlls/shell32/shellpath.c -# | -if test "$enable_shell32_Microsoft_Windows_Themes" -eq 1; then - patch_apply shell32-Microsoft_Windows_Themes/0001-shell32-Create-Microsoft-Windows-Themes-directory-du.patch - ( - printf '%s\n' '+ { "Sebastian Lackner", "shell32: Create Microsoft\\Windows\\Themes directory during Wineprefix creation.", 1 },'; - ) >> "$patchlist" -fi - # Patchset shell32-NewMenu_Interface # | # | This patchset fixes the following Wine bugs: @@ -7191,18 +7146,6 @@ if test "$enable_uxtheme_GTK_Theming" -eq 1; then ) >> "$patchlist" fi -# Patchset version-GetFileVersionInfoSizeExW -# | -# | Modified files: -# | * dlls/version/version.c -# | -if test "$enable_version_GetFileVersionInfoSizeExW" -eq 1; then - patch_apply version-GetFileVersionInfoSizeExW/0001-version-Return-ERROR_FILE_NOT_FOUND-for-Win-9X-when-.patch - ( - printf '%s\n' '+ { "Michael Müller", "version: Return ERROR_FILE_NOT_FOUND for Win 9X when a file was not found in GetFileVersionInfoSizeEx.", 1 },'; - ) >> "$patchlist" -fi - # Patchset version-VerFindFileA # | # | Modified files: @@ -7784,21 +7727,6 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then ) >> "$patchlist" fi -# Patchset wined3d-Implement-oMask -# | -# | This patchset fixes the following Wine bugs: -# | * [#44964] Implement oMask. -# | -# | Modified files: -# | * dlls/wined3d/glsl_shader.c, dlls/wined3d/shader.c, dlls/wined3d/wined3d_private.h -# | -if test "$enable_wined3d_Implement_oMask" -eq 1; then - patch_apply wined3d-Implement-oMask/0001-wined3d-Implement-oMask.patch - ( - printf '%s\n' '+ { "Józef Kucia", "wined3d: Implement oMask.", 1 },'; - ) >> "$patchlist" -fi - # Patchset wined3d-WINED3D_RS_COLORWRITEENABLE # | # | This patchset has the following (direct or indirect) dependencies: diff --git a/patches/shell32-Microsoft_Windows_Themes/0001-shell32-Create-Microsoft-Windows-Themes-directory-du.patch b/patches/shell32-Microsoft_Windows_Themes/0001-shell32-Create-Microsoft-Windows-Themes-directory-du.patch deleted file mode 100644 index 39bc8a00..00000000 --- a/patches/shell32-Microsoft_Windows_Themes/0001-shell32-Create-Microsoft-Windows-Themes-directory-du.patch +++ /dev/null @@ -1,47 +0,0 @@ -From f3cfd0b818d3dd45034a4ba90fb3cd170b8fd32e Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Thu, 3 Sep 2015 04:56:23 +0200 -Subject: [PATCH] shell32: Create Microsoft\Windows\Themes directory during - Wineprefix creation. - ---- - dlls/shell32/shellpath.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c -index e14f533..bd07574 100644 ---- a/dlls/shell32/shellpath.c -+++ b/dlls/shell32/shellpath.c -@@ -857,6 +857,7 @@ static const WCHAR Microsoft_Windows_Start_Menu_Admin_ToolsW[] = {'M','i','c','r - static const WCHAR Microsoft_Windows_Start_Menu_StartupW[] = {'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\','S','t','a','r','t',' ','M','e','n','u','\\','P','r','o','g','r','a','m','s','\\','S','t','a','r','t','U','p','\0'}; - static const WCHAR Microsoft_Windows_TemplatesW[] = {'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\','T','e','m','p','l','a','t','e','s',0}; - static const WCHAR Microsoft_Windows_Temporary_Internet_FilesW[] = {'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\','T','e','m','p','o','r','a','r','y',' ','I','n','t','e','r','n','e','t',' ','F','i','l','e','s',0}; -+static const WCHAR Microsoft_Windows_ThemesW[] = {'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\','T','h','e','m','e','s',0}; - static const WCHAR MoviesW[] = {'M','o','v','i','e','s','\0'}; - static const WCHAR MusicW[] = {'M','u','s','i','c','\0'}; - static const WCHAR MusicLibraryW[] = {'M','u','s','i','c','L','i','b','r','a','r','y',0}; -@@ -4267,6 +4268,7 @@ static HRESULT _SHRegisterUserShellFolders(BOOL bDefault) - }; - WCHAR userShellFolderPath[MAX_PATH], shellFolderPath[MAX_PATH]; - LPCWSTR pUserShellFolderPath, pShellFolderPath; -+ WCHAR path[MAX_PATH]; - HRESULT hr = S_OK; - HKEY hRootKey; - HANDLE hToken; -@@ -4295,6 +4297,13 @@ static HRESULT _SHRegisterUserShellFolders(BOOL bDefault) - - hr = _SHRegisterFolders(hRootKey, hToken, pUserShellFolderPath, - pShellFolderPath, folders, ARRAY_SIZE(folders)); -+ -+ if (SUCCEEDED(hr)) -+ { -+ hr = SHGetFolderPathAndSubDirW(0, CSIDL_APPDATA | CSIDL_FLAG_CREATE, NULL, -+ SHGFP_TYPE_DEFAULT, Microsoft_Windows_ThemesW, path); -+ } -+ - TRACE("returning 0x%08x\n", hr); - return hr; - } --- -1.9.1 - diff --git a/patches/shell32-Microsoft_Windows_Themes/definition b/patches/shell32-Microsoft_Windows_Themes/definition deleted file mode 100644 index 504a311b..00000000 --- a/patches/shell32-Microsoft_Windows_Themes/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [34910] Create Microsoft\Windows\Themes directory during Wineprefix creation diff --git a/patches/version-GetFileVersionInfoSizeExW/0001-version-Return-ERROR_FILE_NOT_FOUND-for-Win-9X-when-.patch b/patches/version-GetFileVersionInfoSizeExW/0001-version-Return-ERROR_FILE_NOT_FOUND-for-Win-9X-when-.patch deleted file mode 100644 index 9927b72f..00000000 --- a/patches/version-GetFileVersionInfoSizeExW/0001-version-Return-ERROR_FILE_NOT_FOUND-for-Win-9X-when-.patch +++ /dev/null @@ -1,31 +0,0 @@ -From de85bfa7d218a6a4a938aefffda709dbec7e7b4f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Wed, 2 Mar 2016 22:59:57 +0100 -Subject: version: Return ERROR_FILE_NOT_FOUND for Win 9X when a file was not - found in GetFileVersionInfoSizeEx. - ---- - dlls/version/version.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/dlls/version/version.c b/dlls/version/version.c -index 43f5c18..71bfc67 100644 ---- a/dlls/version/version.c -+++ b/dlls/version/version.c -@@ -694,7 +694,12 @@ DWORD WINAPI GetFileVersionInfoSizeExW( DWORD flags, LPCWSTR filename, LPDWORD h - return (len * 2) + 4; - - default: -- SetLastError( lzfd == HFILE_ERROR ? ofs.nErrCode : ERROR_RESOURCE_DATA_NOT_FOUND ); -+ if (lzfd == HFILE_ERROR) -+ SetLastError(ofs.nErrCode); -+ else if (GetVersion() & 0x80000000) -+ SetLastError(ERROR_FILE_NOT_FOUND); -+ else -+ SetLastError(ERROR_RESOURCE_DATA_NOT_FOUND); - return 0; - } - } --- -2.7.1 - diff --git a/patches/version-GetFileVersionInfoSizeExW/definition b/patches/version-GetFileVersionInfoSizeExW/definition deleted file mode 100644 index c24ba953..00000000 --- a/patches/version-GetFileVersionInfoSizeExW/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: Return ERROR_FILE_NOT_FOUND for Win 9X when a file was not found in GetFileVersionInfoSizeEx diff --git a/patches/wined3d-Implement-oMask/0001-wined3d-Implement-oMask.patch b/patches/wined3d-Implement-oMask/0001-wined3d-Implement-oMask.patch deleted file mode 100644 index 4bd97c98..00000000 --- a/patches/wined3d-Implement-oMask/0001-wined3d-Implement-oMask.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 18de08ab2090d87ae9a313362fa254c350e5c730 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=B3zef=20Kucia?= -Date: Sat, 12 May 2018 09:29:10 +1000 -Subject: [PATCH] wined3d: Implement oMask - ---- - dlls/wined3d/glsl_shader.c | 10 ++++++++++ - dlls/wined3d/shader.c | 4 ++++ - dlls/wined3d/wined3d_private.h | 6 ++++-- - 3 files changed, 18 insertions(+), 2 deletions(-) - -diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c -index c79fbb5f4fc..e250f34b89a 100644 ---- a/dlls/wined3d/glsl_shader.c -+++ b/dlls/wined3d/glsl_shader.c -@@ -2955,6 +2955,10 @@ static void shader_glsl_get_register_name(const struct wined3d_shader_register * - sprintf(register_name, "vpc[%u]", reg->idx[0].offset); - break; - -+ case WINED3DSPR_SAMPLEMASK: -+ sprintf(register_name, "sample_mask"); -+ break; -+ - default: - FIXME("Unhandled register type %#x.\n", reg->type); - sprintf(register_name, "unrecognized_register"); -@@ -7268,6 +7272,9 @@ static void shader_glsl_generate_ps_epilogue(const struct wined3d_gl_info *gl_in - shader_glsl_generate_fog_code(buffer, gl_info, args->fog); - - shader_glsl_generate_alpha_test(buffer, gl_info, args->alpha_test_func + 1); -+ -+ if (reg_maps->sample_mask) -+ shader_addline(buffer, "gl_SampleMask[0] = floatBitsToInt(sample_mask);\n"); - } - - /* Context activation is done by the caller. */ -@@ -7476,6 +7483,9 @@ static GLuint shader_glsl_generate_pshader(const struct wined3d_context *context - - shader_addline(buffer, "void main()\n{\n"); - -+ if (reg_maps->sample_mask) -+ shader_addline(buffer, "float sample_mask = uintBitsToFloat(0xffffffffu);\n"); -+ - /* Direct3D applications expect integer vPos values, while OpenGL drivers - * add approximately 0.5. This causes off-by-one problems as spotted by - * the vPos d3d9 visual test. Unfortunately ATI cards do not add exactly -diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c -index 624dc55e900..da7b8134add 100644 ---- a/dlls/wined3d/shader.c -+++ b/dlls/wined3d/shader.c -@@ -810,6 +810,10 @@ static BOOL shader_record_register_usage(struct wined3d_shader *shader, struct w - reg_maps->vocp = 1; - break; - -+ case WINED3DSPR_SAMPLEMASK: -+ reg_maps->sample_mask = 1; -+ break; -+ - default: - TRACE("Not recording register of type %#x and [%#x][%#x].\n", - reg->type, reg->idx[0].offset, reg->idx[1].offset); -diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index f8f4bd59149..bb2a1068087 100644 ---- a/dlls/wined3d/wined3d_private.h -+++ b/dlls/wined3d/wined3d_private.h -@@ -1043,7 +1043,8 @@ struct wined3d_shader_reg_maps - DWORD vocp : 1; - DWORD input_rel_addressing : 1; - DWORD viewport_array : 1; -- DWORD padding : 15; -+ DWORD sample_mask : 1; -+ DWORD padding : 14; - - DWORD rt_mask; /* Used render targets, 32 max. */ - -@@ -4143,13 +4144,14 @@ static inline BOOL shader_is_scalar(const struct wined3d_shader_register *reg) - /* oPos */ - return FALSE; - -+ case WINED3DSPR_CONSTBOOL: /* b# */ - case WINED3DSPR_DEPTHOUT: /* oDepth */ - case WINED3DSPR_DEPTHOUTGE: - case WINED3DSPR_DEPTHOUTLE: -- case WINED3DSPR_CONSTBOOL: /* b# */ - case WINED3DSPR_LOOP: /* aL */ - case WINED3DSPR_PREDICATE: /* p0 */ - case WINED3DSPR_PRIMID: /* primID */ -+ case WINED3DSPR_SAMPLEMASK: - return TRUE; - - case WINED3DSPR_MISCTYPE: --- -2.17.0 - diff --git a/patches/wined3d-Implement-oMask/definition b/patches/wined3d-Implement-oMask/definition deleted file mode 100644 index b4ab4253..00000000 --- a/patches/wined3d-Implement-oMask/definition +++ /dev/null @@ -1,2 +0,0 @@ -Fixes: [44964] Implement oMask. - diff --git a/patches/wined3d-Indexed_Vertex_Blending/0002-wined3d-Implement-hardware-indexed-vertex-blending-w.patch b/patches/wined3d-Indexed_Vertex_Blending/0002-wined3d-Implement-hardware-indexed-vertex-blending-w.patch index 164cfd09..c129ae27 100644 --- a/patches/wined3d-Indexed_Vertex_Blending/0002-wined3d-Implement-hardware-indexed-vertex-blending-w.patch +++ b/patches/wined3d-Indexed_Vertex_Blending/0002-wined3d-Implement-hardware-indexed-vertex-blending-w.patch @@ -1,7 +1,8 @@ -From 67cb3d1151bf787bb66d54e4fa4e06dc6b5cb0ac Mon Sep 17 00:00:00 2001 +From ece98fdbc8cdf819452f91ee713542d7d13b3d49 Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Sat, 26 Aug 2017 00:59:29 +0200 -Subject: wined3d: Implement hardware indexed vertex blending with 9 matrices. +Subject: [PATCH] wined3d: Implement hardware indexed vertex blending with 9 + matrices. --- dlls/d3d9/tests/visual.c | 2 +- @@ -12,10 +13,10 @@ Subject: wined3d: Implement hardware indexed vertex blending with 9 matrices. 5 files changed, 51 insertions(+), 12 deletions(-) diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c -index 9e0c33b..6d05d68 100644 +index bb5410e..a6408c0 100644 --- a/dlls/d3d9/tests/visual.c +++ b/dlls/d3d9/tests/visual.c -@@ -20392,7 +20392,7 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char +@@ -20491,7 +20491,7 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char ok(SUCCEEDED(hr), "Failed to get device caps, hr %#x.\n", hr); if (caps.MaxVertexBlendMatrixIndex < 7 || caps.MaxVertexBlendMatrices < 4) { @@ -25,7 +26,7 @@ index 9e0c33b..6d05d68 100644 return; } diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c -index 6cc030a..12100a5 100644 +index a8ed36a..586991e 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -143,7 +143,7 @@ struct glsl_vs_program @@ -37,7 +38,7 @@ index 6cc030a..12100a5 100644 GLint projection_matrix_location; GLint normal_matrix_location; GLint texture_matrix_location[MAX_TEXTURES]; -@@ -1818,7 +1818,7 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context +@@ -1831,7 +1831,7 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context { struct wined3d_matrix mat; @@ -46,7 +47,7 @@ index 6cc030a..12100a5 100644 { if (prog->vs.modelview_matrix_location[i] == -1) break; -@@ -8755,8 +8755,7 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr +@@ -8956,8 +8956,7 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr { {"vec4", "ffp_attrib_position"}, /* WINED3D_FFP_POSITION */ {"vec4", "ffp_attrib_blendweight"}, /* WINED3D_FFP_BLENDWEIGHT */ @@ -56,7 +57,7 @@ index 6cc030a..12100a5 100644 {"vec3", "ffp_attrib_normal"}, /* WINED3D_FFP_NORMAL */ {"float", "ffp_attrib_psize"}, /* WINED3D_FFP_PSIZE */ {"vec4", "ffp_attrib_diffuse"}, /* WINED3D_FFP_DIFFUSE */ -@@ -8768,6 +8767,7 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr +@@ -8969,6 +8968,7 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr BOOL legacy_lighting = priv->legacy_lighting; GLuint shader_obj; unsigned int i; @@ -64,7 +65,7 @@ index 6cc030a..12100a5 100644 string_buffer_clear(buffer); -@@ -8786,7 +8786,7 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr +@@ -8987,7 +8987,7 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr } shader_addline(buffer, "\n"); @@ -73,7 +74,7 @@ index 6cc030a..12100a5 100644 shader_addline(buffer, "uniform mat4 ffp_projection_matrix;\n"); shader_addline(buffer, "uniform mat3 ffp_normal_matrix;\n"); shader_addline(buffer, "uniform mat4 ffp_texture_matrix[%u];\n", MAX_TEXTURES); -@@ -8878,7 +8878,10 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr +@@ -9079,7 +9079,10 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr shader_addline(buffer, "vec4 ec_pos = vec4(0.0);\n"); for (i = 0; i < settings->vertexblends + 1; ++i) @@ -85,7 +86,7 @@ index 6cc030a..12100a5 100644 shader_addline(buffer, "gl_Position = ffp_projection_matrix * ec_pos;\n"); if (settings->clipping) -@@ -8902,7 +8905,10 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr +@@ -9103,7 +9106,10 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr else { for (i = 0; i < settings->vertexblends + 1; ++i) @@ -97,7 +98,7 @@ index 6cc030a..12100a5 100644 } if (settings->normalize) -@@ -9775,7 +9781,7 @@ static void shader_glsl_init_vs_uniform_locations(const struct wined3d_gl_info * +@@ -9973,7 +9979,7 @@ static void shader_glsl_init_vs_uniform_locations(const struct wined3d_gl_info * vs->pos_fixup_location = GL_EXTCALL(glGetUniformLocation(program_id, "pos_fixup")); @@ -106,7 +107,7 @@ index 6cc030a..12100a5 100644 { string_buffer_sprintf(name, "ffp_modelview_matrix[%u]", i); vs->modelview_matrix_location[i] = GL_EXTCALL(glGetUniformLocation(program_id, name->buffer)); -@@ -10349,7 +10355,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const +@@ -10565,7 +10571,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const entry->constant_update_mask |= WINED3D_SHADER_CONST_FFP_MODELVIEW | WINED3D_SHADER_CONST_FFP_PROJ; @@ -115,7 +116,7 @@ index 6cc030a..12100a5 100644 { if (entry->vs.modelview_matrix_location[i] != -1) { -@@ -11321,7 +11327,7 @@ static void glsl_vertex_pipe_vp_get_caps(const struct wined3d_gl_info *gl_info, +@@ -11538,7 +11544,7 @@ static void glsl_vertex_pipe_vp_get_caps(const struct wined3d_gl_info *gl_info, caps->ffp_generic_attributes = TRUE; caps->max_active_lights = MAX_ACTIVE_LIGHTS; caps->max_vertex_blend_matrices = MAX_VERTEX_BLENDS; @@ -124,7 +125,7 @@ index 6cc030a..12100a5 100644 caps->vertex_processing_caps = WINED3DVTXPCAPS_TEXGEN | WINED3DVTXPCAPS_MATERIALSOURCE7 | WINED3DVTXPCAPS_VERTEXFOG -@@ -11699,6 +11705,11 @@ static const struct StateEntryTemplate glsl_vertex_pipe_vp_states[] = +@@ -11916,6 +11922,11 @@ static const struct StateEntryTemplate glsl_vertex_pipe_vp_states[] = {STATE_TRANSFORM(WINED3D_TS_WORLD_MATRIX(1)), {STATE_TRANSFORM(WINED3D_TS_WORLD_MATRIX(1)), glsl_vertex_pipe_vertexblend }, WINED3D_GL_EXT_NONE }, {STATE_TRANSFORM(WINED3D_TS_WORLD_MATRIX(2)), {STATE_TRANSFORM(WINED3D_TS_WORLD_MATRIX(2)), glsl_vertex_pipe_vertexblend }, WINED3D_GL_EXT_NONE }, {STATE_TRANSFORM(WINED3D_TS_WORLD_MATRIX(3)), {STATE_TRANSFORM(WINED3D_TS_WORLD_MATRIX(3)), glsl_vertex_pipe_vertexblend }, WINED3D_GL_EXT_NONE }, @@ -137,10 +138,10 @@ index 6cc030a..12100a5 100644 {STATE_TEXTURESTAGE(1, WINED3D_TSS_TEXTURE_TRANSFORM_FLAGS), {STATE_TEXTURESTAGE(1, WINED3D_TSS_TEXTURE_TRANSFORM_FLAGS), glsl_vertex_pipe_texmatrix}, WINED3D_GL_EXT_NONE }, {STATE_TEXTURESTAGE(2, WINED3D_TSS_TEXTURE_TRANSFORM_FLAGS), {STATE_TEXTURESTAGE(2, WINED3D_TSS_TEXTURE_TRANSFORM_FLAGS), glsl_vertex_pipe_texmatrix}, WINED3D_GL_EXT_NONE }, diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c -index 7cb2007..60a9ee0 100644 +index ab9fc45..8df1a49 100644 --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c -@@ -5957,6 +5957,9 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_context *context, +@@ -5910,6 +5910,9 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_context *context, break; } @@ -171,18 +172,18 @@ index 3d1518d..82348b4 100644 switch(element->format) { diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index 45a7903..64dad01 100644 +index 7c813bf..e7892ea 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -275,6 +275,7 @@ static inline enum complex_fixup get_complex_fixup(struct color_fixup_desc fixup +@@ -276,6 +276,7 @@ static inline enum complex_fixup get_complex_fixup(struct color_fixup_desc fixup #define MAX_UNORDERED_ACCESS_VIEWS 8 #define MAX_TGSM_REGISTERS 8192 #define MAX_VERTEX_BLENDS 4 +#define MAX_VERTEX_INDEX_BLENDS 9 - #define MAX_MULTISAMPLE_TYPES 8 #define MAX_RENDER_TARGETS 8 -@@ -2741,7 +2742,8 @@ struct wined3d_ffp_vs_settings + struct min_lookup +@@ -2778,7 +2779,8 @@ struct wined3d_ffp_vs_settings DWORD ortho_fog : 1; DWORD flatshading : 1; DWORD swizzle_map : 16; /* MAX_ATTRIBS, 16 */ @@ -192,7 +193,7 @@ index 45a7903..64dad01 100644 DWORD texgen[MAX_TEXTURES]; }; -@@ -4326,6 +4328,20 @@ static inline BOOL wined3d_format_is_typeless(const struct wined3d_format *forma +@@ -4372,6 +4374,20 @@ static inline BOOL wined3d_format_is_typeless(const struct wined3d_format *forma return format->id == format->typeless_id && format->id != WINED3DFMT_UNKNOWN; } @@ -214,5 +215,5 @@ index 45a7903..64dad01 100644 { /* Check state->vertex_declaration to allow this to be used before the -- -2.7.4 +1.9.1 diff --git a/patches/wined3d-WINED3D_RS_COLORWRITEENABLE/0001-wined3d-Implement-all-8-d3d11-color-write-masks.patch b/patches/wined3d-WINED3D_RS_COLORWRITEENABLE/0001-wined3d-Implement-all-8-d3d11-color-write-masks.patch index f872ec03..02703f6a 100644 --- a/patches/wined3d-WINED3D_RS_COLORWRITEENABLE/0001-wined3d-Implement-all-8-d3d11-color-write-masks.patch +++ b/patches/wined3d-WINED3D_RS_COLORWRITEENABLE/0001-wined3d-Implement-all-8-d3d11-color-write-masks.patch @@ -1,4 +1,4 @@ -From d144b219097df75232e1c17ca2ba06b1a12b2e41 Mon Sep 17 00:00:00 2001 +From 75844a9945a5b9f6c5580c54346af548e29cbf02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 20 Jul 2017 13:50:07 +0200 Subject: [PATCH] wined3d: Implement all 8 d3d11 color write masks. @@ -17,10 +17,10 @@ Subject: [PATCH] wined3d: Implement all 8 d3d11 color write masks. 10 files changed, 73 insertions(+), 71 deletions(-) diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c -index 73cfd1a..73b0050 100644 +index 82901c2..8779980 100644 --- a/dlls/d3d11/device.c +++ b/dlls/d3d11/device.c -@@ -688,6 +688,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_OMSetBlendState(ID3D11Devi +@@ -2068,6 +2068,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_OMSetBlendState(ID3D11Devi static const float default_blend_factor[] = {1.0f, 1.0f, 1.0f, 1.0f}; struct d3d_blend_state *blend_state_impl; const D3D11_BLEND_DESC *desc; @@ -28,7 +28,7 @@ index 73cfd1a..73b0050 100644 TRACE("iface %p, blend_state %p, blend_factor %s, sample_mask 0x%08x.\n", iface, blend_state, debug_float4(blend_factor), sample_mask); -@@ -702,14 +703,11 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_OMSetBlendState(ID3D11Devi +@@ -2082,14 +2083,11 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_OMSetBlendState(ID3D11Devi { wined3d_device_set_blend_state(device->wined3d_device, NULL); wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_ALPHABLENDENABLE, FALSE); @@ -48,7 +48,7 @@ index 73cfd1a..73b0050 100644 wined3d_mutex_unlock(); return; } -@@ -737,14 +735,13 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_OMSetBlendState(ID3D11Devi +@@ -2117,14 +2115,13 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_OMSetBlendState(ID3D11Devi || d->DestBlendAlpha == D3D11_BLEND_BLEND_FACTOR || d->DestBlendAlpha == D3D11_BLEND_INV_BLEND_FACTOR)) FIXME("Ignoring blend factor %s.\n", debug_float4(blend_factor)); } @@ -71,7 +71,7 @@ index 73cfd1a..73b0050 100644 } diff --git a/dlls/d3d11/state.c b/dlls/d3d11/state.c -index a14c9d3..2bec92e 100644 +index f880a23..e5bd1de 100644 --- a/dlls/d3d11/state.c +++ b/dlls/d3d11/state.c @@ -335,10 +335,6 @@ HRESULT d3d_blend_state_create(struct d3d_device *device, const D3D11_BLEND_DESC @@ -86,10 +86,10 @@ index a14c9d3..2bec92e 100644 /* glEnableIndexedEXT(GL_BLEND, ...) */ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c -index e85e20d..6075a68 100644 +index b1a28b8..3681cb8 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c -@@ -2730,7 +2730,7 @@ void context_apply_blit_state(struct wined3d_context *context, const struct wine +@@ -2746,7 +2746,7 @@ void context_apply_blit_state(struct wined3d_context *context, const struct wine const struct wined3d_gl_info *gl_info = context->gl_info; struct wined3d_texture *rt = context->current_rt.texture; DWORD rt_mask, *cur_mask; @@ -98,7 +98,7 @@ index e85e20d..6075a68 100644 SIZE rt_size; TRACE("Setting up context %p for blitting.\n", context); -@@ -2834,10 +2834,8 @@ void context_apply_blit_state(struct wined3d_context *context, const struct wine +@@ -2851,10 +2851,8 @@ void context_apply_blit_state(struct wined3d_context *context, const struct wine context_invalidate_state(context, STATE_RENDER(WINED3D_RS_SRGBWRITEENABLE)); } gl_info->gl_ops.gl.p_glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); @@ -111,7 +111,7 @@ index e85e20d..6075a68 100644 context->last_was_rhw = TRUE; context_invalidate_state(context, STATE_VDECL); /* because of last_was_rhw = TRUE */ -@@ -4809,7 +4807,7 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s +@@ -4836,7 +4834,7 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s if (!(rtv = fb->render_targets[i]) || rtv->format->id == WINED3DFMT_NULL) continue; @@ -121,7 +121,7 @@ index e85e20d..6075a68 100644 wined3d_rendertarget_view_load_location(rtv, context, rtv->resource->draw_binding); wined3d_rendertarget_view_invalidate_location(rtv, ~rtv->resource->draw_binding); diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index 4ff1f06..0e7b7a0 100644 +index 50452b5..0067199 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -392,10 +392,8 @@ void device_clear_render_targets(struct wined3d_device *device, UINT rt_count, c @@ -138,10 +138,10 @@ index 4ff1f06..0e7b7a0 100644 checkGLcall("glClearColor"); clear_mask = clear_mask | GL_COLOR_BUFFER_BIT; diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c -index f20507b..69ea814 100644 +index ab7e033..b5f39e5 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c -@@ -1556,9 +1556,6 @@ static void state_debug_monitor(struct wined3d_context *context, const struct wi +@@ -1565,9 +1565,6 @@ static void state_debug_monitor(struct wined3d_context *context, const struct wi static void state_colorwrite(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) { DWORD mask0 = state->render_states[WINED3D_RS_COLORWRITEENABLE]; @@ -151,7 +151,7 @@ index f20507b..69ea814 100644 const struct wined3d_gl_info *gl_info = context->gl_info; TRACE("Color mask: r(%d) g(%d) b(%d) a(%d)\n", -@@ -1572,13 +1569,7 @@ static void state_colorwrite(struct wined3d_context *context, const struct wined +@@ -1581,13 +1578,7 @@ static void state_colorwrite(struct wined3d_context *context, const struct wined mask0 & WINED3DCOLORWRITEENABLE_ALPHA ? GL_TRUE : GL_FALSE); checkGLcall("glColorMask(...)"); @@ -166,7 +166,7 @@ index f20507b..69ea814 100644 } static void set_color_mask(const struct wined3d_gl_info *gl_info, UINT index, DWORD mask) -@@ -1591,24 +1582,20 @@ static void set_color_mask(const struct wined3d_gl_info *gl_info, UINT index, DW +@@ -1600,24 +1591,20 @@ static void set_color_mask(const struct wined3d_gl_info *gl_info, UINT index, DW checkGLcall("glColorMaski"); } @@ -201,7 +201,7 @@ index f20507b..69ea814 100644 } static void state_localviewer(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) -@@ -5128,18 +5115,26 @@ const struct StateEntryTemplate misc_state_template[] = +@@ -4689,18 +4676,26 @@ const struct StateEntryTemplate misc_state_template[] = { STATE_RENDER(WINED3D_RS_MULTISAMPLEANTIALIAS), { STATE_RENDER(WINED3D_RS_MULTISAMPLEANTIALIAS), state_msaa_w }, WINED3D_GL_EXT_NONE }, { STATE_RENDER(WINED3D_RS_MULTISAMPLEMASK), { STATE_RENDER(WINED3D_RS_MULTISAMPLEMASK), state_multisampmask }, WINED3D_GL_EXT_NONE }, { STATE_RENDER(WINED3D_RS_DEBUGMONITORTOKEN), { STATE_RENDER(WINED3D_RS_DEBUGMONITORTOKEN), state_debug_monitor }, WINED3D_GL_EXT_NONE }, @@ -236,7 +236,7 @@ index f20507b..69ea814 100644 { STATE_RENDER(WINED3D_RS_BLENDFACTOR), { STATE_RENDER(WINED3D_RS_BLENDFACTOR), state_blendfactor_w }, WINED3D_GL_EXT_NONE }, { STATE_RENDER(WINED3D_RS_DEPTHBIAS), { STATE_RENDER(WINED3D_RS_DEPTHBIAS), state_depthbias }, WINED3D_GL_EXT_NONE }, diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c -index b9efcec..c9b3527 100644 +index 2f5f24a..e5025ce 100644 --- a/dlls/wined3d/stateblock.c +++ b/dlls/wined3d/stateblock.c @@ -45,6 +45,10 @@ static const DWORD pixel_states_render[] = @@ -250,7 +250,7 @@ index b9efcec..c9b3527 100644 WINED3D_RS_DEPTHBIAS, WINED3D_RS_DESTBLEND, WINED3D_RS_DESTBLENDALPHA, -@@ -1212,7 +1216,6 @@ static void state_init_default(struct wined3d_state *state, const struct wined3d +@@ -1226,7 +1230,6 @@ static void state_init_default(struct wined3d_state *state, const struct wined3d tmpfloat.f = gl_info->limits.pointsize_max; state->render_states[WINED3D_RS_POINTSIZE_MAX] = tmpfloat.d; state->render_states[WINED3D_RS_INDEXEDVERTEXBLENDENABLE] = FALSE; @@ -258,7 +258,7 @@ index b9efcec..c9b3527 100644 tmpfloat.f = 0.0f; state->render_states[WINED3D_RS_TWEENFACTOR] = tmpfloat.d; state->render_states[WINED3D_RS_BLENDOP] = WINED3D_BLEND_OP_ADD; -@@ -1238,9 +1241,6 @@ static void state_init_default(struct wined3d_state *state, const struct wined3d +@@ -1252,9 +1255,6 @@ static void state_init_default(struct wined3d_state *state, const struct wined3d state->render_states[WINED3D_RS_BACK_STENCILZFAIL] = WINED3D_STENCIL_OP_KEEP; state->render_states[WINED3D_RS_BACK_STENCILPASS] = WINED3D_STENCIL_OP_KEEP; state->render_states[WINED3D_RS_BACK_STENCILFUNC] = WINED3D_CMP_ALWAYS; @@ -268,7 +268,7 @@ index b9efcec..c9b3527 100644 state->render_states[WINED3D_RS_BLENDFACTOR] = 0xffffffff; state->render_states[WINED3D_RS_SRGBWRITEENABLE] = 0; state->render_states[WINED3D_RS_DEPTHBIAS] = 0; -@@ -1259,6 +1259,8 @@ static void state_init_default(struct wined3d_state *state, const struct wined3d +@@ -1273,6 +1273,8 @@ static void state_init_default(struct wined3d_state *state, const struct wined3d state->render_states[WINED3D_RS_SRCBLENDALPHA] = WINED3D_BLEND_ONE; state->render_states[WINED3D_RS_DESTBLENDALPHA] = WINED3D_BLEND_ZERO; state->render_states[WINED3D_RS_BLENDOPALPHA] = WINED3D_BLEND_OP_ADD; @@ -278,7 +278,7 @@ index b9efcec..c9b3527 100644 /* Texture Stage States - Put directly into state block, we will call function below */ for (i = 0; i < MAX_TEXTURES; ++i) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index ad4ed1c..90f17cc 100644 +index e649fa3..baad32e 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -160,6 +160,7 @@ static void texture2d_blt_fbo(const struct wined3d_device *device, struct wined3 @@ -303,10 +303,10 @@ index ad4ed1c..90f17cc 100644 gl_info->gl_ops.gl.p_glDisable(GL_SCISSOR_TEST); context_invalidate_state(context, STATE_RENDER(WINED3D_RS_SCISSORTESTENABLE)); diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c -index d1d5adc..c36bb1e 100644 +index d475b37..ab9fc45 100644 --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c -@@ -4396,7 +4396,6 @@ const char *debug_d3drenderstate(enum wined3d_render_state state) +@@ -4398,7 +4398,6 @@ const char *debug_d3drenderstate(enum wined3d_render_state state) D3DSTATE_TO_STR(WINED3D_RS_DEBUGMONITORTOKEN); D3DSTATE_TO_STR(WINED3D_RS_POINTSIZE_MAX); D3DSTATE_TO_STR(WINED3D_RS_INDEXEDVERTEXBLENDENABLE); @@ -314,7 +314,7 @@ index d1d5adc..c36bb1e 100644 D3DSTATE_TO_STR(WINED3D_RS_TWEENFACTOR); D3DSTATE_TO_STR(WINED3D_RS_BLENDOP); D3DSTATE_TO_STR(WINED3D_RS_POSITIONDEGREE); -@@ -4416,9 +4415,14 @@ const char *debug_d3drenderstate(enum wined3d_render_state state) +@@ -4418,9 +4417,14 @@ const char *debug_d3drenderstate(enum wined3d_render_state state) D3DSTATE_TO_STR(WINED3D_RS_BACK_STENCILZFAIL); D3DSTATE_TO_STR(WINED3D_RS_BACK_STENCILPASS); D3DSTATE_TO_STR(WINED3D_RS_BACK_STENCILFUNC); @@ -330,22 +330,22 @@ index d1d5adc..c36bb1e 100644 D3DSTATE_TO_STR(WINED3D_RS_SRGBWRITEENABLE); D3DSTATE_TO_STR(WINED3D_RS_DEPTHBIAS); diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index 4a27b08..4bfb2cd 100644 +index 4c22a5c..7c813bf 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -276,6 +276,7 @@ static inline enum complex_fixup get_complex_fixup(struct color_fixup_desc fixup + #define MAX_UNORDERED_ACCESS_VIEWS 8 #define MAX_TGSM_REGISTERS 8192 #define MAX_VERTEX_BLENDS 4 - #define MAX_MULTISAMPLE_TYPES 8 +#define MAX_RENDER_TARGETS 8 struct min_lookup { diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h -index 48701a9..a0942ae 100644 +index 6772524..a3deb60 100644 --- a/include/wine/wined3d.h +++ b/include/wine/wined3d.h -@@ -388,8 +388,20 @@ enum wined3d_render_state +@@ -390,8 +390,20 @@ enum wined3d_render_state WINED3D_RS_BLENDOPALPHA = 209, WINED3D_RS_DEPTHCLIP = 210, WINED3D_RS_DEPTHBIASCLAMP = 211, @@ -368,5 +368,5 @@ index 48701a9..a0942ae 100644 enum wined3d_blend { -- -2.7.4 +1.9.1