From 2c12e538dd64d35526eb2bc7e3117c0b100f2951 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Tue, 25 Jul 2017 17:24:47 +0200 Subject: [PATCH] Rebase against 21763489982177f4db9e5f8cc8ccb751441f5a2e. --- ...ption-if-invalid-handle-is-passed-to.patch | 24 ++++---- ...r-WORD-of-segment-registers-in-RtlCa.patch | 14 ++--- patches/ntdll-RtlCaptureContext/definition | 1 + patches/patchinstall.sh | 44 ++------------ ...e-cursor-height-if-it-also-includes-.patch | 25 -------- ...ate-syscall-thunks-for-ntdll-exports.patch | 58 +++++++++++++------ ...uild-Add-stub-functions-in-fake-dlls.patch | 22 +++---- .../wined3d-CSMT_Main/9999-IfDefined.patch | 8 +-- ...ervative-depth-access-information-to.patch | 22 +++---- staging/VERSION | 2 +- 10 files changed, 94 insertions(+), 126 deletions(-) create mode 100644 patches/ntdll-RtlCaptureContext/definition delete mode 100644 patches/user32-Cursor_Size/0001-user32-Reduce-the-cursor-height-if-it-also-includes-.patch diff --git a/patches/ntdll-Exception/0001-ntdll-Throw-exception-if-invalid-handle-is-passed-to.patch b/patches/ntdll-Exception/0001-ntdll-Throw-exception-if-invalid-handle-is-passed-to.patch index aa68412d..c4a56a1b 100644 --- a/patches/ntdll-Exception/0001-ntdll-Throw-exception-if-invalid-handle-is-passed-to.patch +++ b/patches/ntdll-Exception/0001-ntdll-Throw-exception-if-invalid-handle-is-passed-to.patch @@ -1,4 +1,4 @@ -From cd82af4ce885a2541e75c4adb3527197eb940569 Mon Sep 17 00:00:00 2001 +From 7f456e63bf51237bdd161fb6110a68f14d4e84ac Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sun, 28 Sep 2014 22:42:46 +0200 Subject: ntdll: Throw exception if invalid handle is passed to NtClose and @@ -10,7 +10,7 @@ Subject: ntdll: Throw exception if invalid handle is passed to NtClose and 2 files changed, 92 insertions(+) diff --git a/dlls/ntdll/om.c b/dlls/ntdll/om.c -index 1279f2b..35c3672 100644 +index c13934a89bd..098229cc094 100644 --- a/dlls/ntdll/om.c +++ b/dlls/ntdll/om.c @@ -38,6 +38,7 @@ @@ -62,10 +62,10 @@ index 1279f2b..35c3672 100644 } diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c -index f1bfee6..3e22bed 100644 +index 6e901e92b6d..0f369dd672d 100644 --- a/dlls/ntdll/tests/exception.c +++ b/dlls/ntdll/tests/exception.c -@@ -51,6 +51,7 @@ static NTSTATUS (WINAPI *pNtTerminateProcess)(HANDLE handle, LONG exit_code); +@@ -52,6 +52,7 @@ static NTSTATUS (WINAPI *pNtTerminateProcess)(HANDLE handle, LONG exit_code); static NTSTATUS (WINAPI *pNtQueryInformationProcess)(HANDLE, PROCESSINFOCLASS, PVOID, ULONG, PULONG); static NTSTATUS (WINAPI *pNtSetInformationProcess)(HANDLE, PROCESSINFOCLASS, PVOID, ULONG); static BOOL (WINAPI *pIsWow64Process)(HANDLE, PBOOL); @@ -73,7 +73,7 @@ index f1bfee6..3e22bed 100644 #if defined(__x86_64__) typedef struct -@@ -989,6 +990,16 @@ static void test_debugger(void) +@@ -1025,6 +1026,16 @@ static void test_debugger(void) if (stage == 10) continuestatus = DBG_EXCEPTION_NOT_HANDLED; } @@ -90,7 +90,7 @@ index f1bfee6..3e22bed 100644 else ok(FALSE, "unexpected stage %x\n", stage); -@@ -2194,6 +2205,53 @@ static void test_breakpoint(DWORD numexc) +@@ -2511,6 +2522,53 @@ static void test_breakpoint(DWORD numexc) pRtlRemoveVectoredExceptionHandler(vectored_handler); } @@ -144,15 +144,15 @@ index f1bfee6..3e22bed 100644 static void test_vectored_continue_handler(void) { PVOID handler1, handler2; -@@ -2245,6 +2303,7 @@ START_TEST(exception) +@@ -2565,6 +2623,7 @@ START_TEST(exception) pNtGetContextThread = (void *)GetProcAddress( hntdll, "NtGetContextThread" ); pNtSetContextThread = (void *)GetProcAddress( hntdll, "NtSetContextThread" ); pNtReadVirtualMemory = (void *)GetProcAddress( hntdll, "NtReadVirtualMemory" ); + pNtClose = (void *)GetProcAddress( hntdll, "NtClose" ); pRtlUnwind = (void *)GetProcAddress( hntdll, "RtlUnwind" ); pRtlRaiseException = (void *)GetProcAddress( hntdll, "RtlRaiseException" ); - pNtTerminateProcess = (void *)GetProcAddress( hntdll, "NtTerminateProcess" ); -@@ -2315,6 +2374,10 @@ START_TEST(exception) + pRtlCaptureContext = (void *)GetProcAddress( hntdll, "RtlCaptureContext" ); +@@ -2636,6 +2695,10 @@ START_TEST(exception) test_breakpoint(0); test_stage = 10; test_breakpoint(1); @@ -163,7 +163,7 @@ index f1bfee6..3e22bed 100644 } else skip( "RtlRaiseException not found\n" ); -@@ -2331,6 +2394,7 @@ START_TEST(exception) +@@ -2652,6 +2715,7 @@ START_TEST(exception) test_ripevent(1); test_debug_service(1); test_breakpoint(1); @@ -171,7 +171,7 @@ index f1bfee6..3e22bed 100644 test_vectored_continue_handler(); test_debugger(); test_simd_exceptions(); -@@ -2355,6 +2419,7 @@ START_TEST(exception) +@@ -2685,6 +2749,7 @@ START_TEST(exception) test_ripevent(1); test_debug_service(1); test_breakpoint(1); @@ -180,5 +180,5 @@ index f1bfee6..3e22bed 100644 test_virtual_unwind(); test___C_specific_handler(); -- -2.9.0 +2.13.1 diff --git a/patches/ntdll-RtlCaptureContext/0001-ntdll-Clear-upper-WORD-of-segment-registers-in-RtlCa.patch b/patches/ntdll-RtlCaptureContext/0001-ntdll-Clear-upper-WORD-of-segment-registers-in-RtlCa.patch index 97175e06..9d1ad154 100644 --- a/patches/ntdll-RtlCaptureContext/0001-ntdll-Clear-upper-WORD-of-segment-registers-in-RtlCa.patch +++ b/patches/ntdll-RtlCaptureContext/0001-ntdll-Clear-upper-WORD-of-segment-registers-in-RtlCa.patch @@ -1,4 +1,4 @@ -From 3966912cf531178531910e730e2e88bc05448556 Mon Sep 17 00:00:00 2001 +From f0fe03443eddebbe3997e9ca9e4ed6d8954b159b Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Wed, 19 Jul 2017 01:20:01 +0200 Subject: ntdll: Clear upper WORD of segment registers in RtlCaptureContext. @@ -8,10 +8,10 @@ Subject: ntdll: Clear upper WORD of segment registers in RtlCaptureContext. 1 file changed, 6 insertions(+) diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c -index 9a25468308b..24f797ffaf9 100644 +index 9c4c07dea4a..03c0f5ebc79 100644 --- a/dlls/ntdll/signal_i386.c +++ b/dlls/ntdll/signal_i386.c -@@ -1241,9 +1241,13 @@ __ASM_STDCALL_FUNC( RtlCaptureContext, 4, +@@ -1228,9 +1228,13 @@ __ASM_STDCALL_FUNC( RtlCaptureContext, 4, "movl 8(%esp),%eax\n\t" /* context */ "movl $0x10007,(%eax)\n\t" /* context->ContextFlags */ "movw %gs,0x8c(%eax)\n\t" /* context->SegGs */ @@ -25,16 +25,16 @@ index 9a25468308b..24f797ffaf9 100644 "movl %edi,0x9c(%eax)\n\t" /* context->Edi */ "movl %esi,0xa0(%eax)\n\t" /* context->Esi */ "movl %ebx,0xa4(%eax)\n\t" /* context->Ebx */ -@@ -1253,6 +1257,7 @@ __ASM_STDCALL_FUNC( RtlCaptureContext, 4, - "movl 4(%esp),%edx\n\t" +@@ -1241,6 +1245,7 @@ __ASM_STDCALL_FUNC( RtlCaptureContext, 4, + "movl 4(%ebp),%edx\n\t" "movl %edx,0xb8(%eax)\n\t" /* context->Eip */ "movw %cs,0xbc(%eax)\n\t" /* context->SegCs */ + "movw $0,0xbe(%eax)\n\t" "pushfl\n\t" __ASM_CFI(".cfi_adjust_cfa_offset 4\n\t") "popl 0xc0(%eax)\n\t" /* context->EFlags */ -@@ -1260,6 +1265,7 @@ __ASM_STDCALL_FUNC( RtlCaptureContext, 4, - "leal 8(%esp),%edx\n\t" +@@ -1248,6 +1253,7 @@ __ASM_STDCALL_FUNC( RtlCaptureContext, 4, + "leal 8(%ebp),%edx\n\t" "movl %edx,0xc4(%eax)\n\t" /* context->Esp */ "movw %ss,0xc8(%eax)\n\t" /* context->SegSs */ + "movw $0,0xca(%eax)\n\t" diff --git a/patches/ntdll-RtlCaptureContext/definition b/patches/ntdll-RtlCaptureContext/definition new file mode 100644 index 00000000..6e4f1a82 --- /dev/null +++ b/patches/ntdll-RtlCaptureContext/definition @@ -0,0 +1 @@ +Disabled: true diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index f17fb64a..cd4e155b 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,13 +52,13 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "7d3c068c3beeac8691cfa96f0dce6b5583072eaa" + echo "21763489982177f4db9e5f8cc8ccb751441f5a2e" } # Show version information version() { - echo "Wine Staging 2.13" + echo "Wine Staging 2.14 (unreleased)" echo "Copyright (C) 2014-2017 the Wine Staging project authors." echo "" echo "Patchset to be applied on upstream Wine:" @@ -269,7 +269,6 @@ patch_enable_all () enable_ntdll_ProcessPriorityClass="$1" enable_ntdll_ProcessQuotaLimits="$1" enable_ntdll_Purist_Mode="$1" - enable_ntdll_RtlCaptureContext="$1" enable_ntdll_RtlCaptureStackBackTrace="$1" enable_ntdll_RtlGetUnloadEventTraceEx="$1" enable_ntdll_RtlIpStringToAddress_Stubs="$1" @@ -379,7 +378,6 @@ patch_enable_all () enable_user_exe16_DlgDirList="$1" enable_user32_Auto_Radio_Button="$1" enable_user32_Combobox_WM_SIZE="$1" - enable_user32_Cursor_Size="$1" enable_user32_DM_SETDEFID="$1" enable_user32_DialogBoxParam="$1" enable_user32_Dialog_Focus="$1" @@ -1074,9 +1072,6 @@ patch_enable () ntdll-Purist_Mode) enable_ntdll_Purist_Mode="$2" ;; - ntdll-RtlCaptureContext) - enable_ntdll_RtlCaptureContext="$2" - ;; ntdll-RtlCaptureStackBackTrace) enable_ntdll_RtlCaptureStackBackTrace="$2" ;; @@ -1404,9 +1399,6 @@ patch_enable () user32-Combobox_WM_SIZE) enable_user32_Combobox_WM_SIZE="$2" ;; - user32-Cursor_Size) - enable_user32_Cursor_Size="$2" - ;; user32-DM_SETDEFID) enable_user32_DM_SETDEFID="$2" ;; @@ -6475,18 +6467,6 @@ if test "$enable_ntdll_Purist_Mode" -eq 1; then ) >> "$patchlist" fi -# Patchset ntdll-RtlCaptureContext -# | -# | Modified files: -# | * dlls/ntdll/signal_i386.c -# | -if test "$enable_ntdll_RtlCaptureContext" -eq 1; then - patch_apply ntdll-RtlCaptureContext/0001-ntdll-Clear-upper-WORD-of-segment-registers-in-RtlCa.patch - ( - printf '%s\n' '+ { "Sebastian Lackner", "ntdll: Clear upper WORD of segment registers in RtlCaptureContext.", 1 },'; - ) >> "$patchlist" -fi - # Patchset ntdll-RtlCaptureStackBackTrace # | # | This patchset fixes the following Wine bugs: @@ -8275,18 +8255,6 @@ if test "$enable_user32_Combobox_WM_SIZE" -eq 1; then ) >> "$patchlist" fi -# Patchset user32-Cursor_Size -# | -# | Modified files: -# | * dlls/user32/cursoricon.c -# | -if test "$enable_user32_Cursor_Size" -eq 1; then - patch_apply user32-Cursor_Size/0001-user32-Reduce-the-cursor-height-if-it-also-includes-.patch - ( - printf '%s\n' '+ { "Alexandre Julliard", "user32: Reduce the cursor height if it also includes the mask.", 1 },'; - ) >> "$patchlist" -fi - # Patchset user32-DM_SETDEFID # | # | This patchset fixes the following Wine bugs: @@ -9253,10 +9221,10 @@ fi # | * dlls/dbghelp/cpu_i386.c, dlls/kernel32/tests/loader.c, dlls/krnl386.exe16/kernel.c, # | dlls/krnl386.exe16/kernel16_private.h, dlls/krnl386.exe16/ne_module.c, dlls/krnl386.exe16/ne_segment.c, # | dlls/krnl386.exe16/task.c, dlls/krnl386.exe16/thunk.c, dlls/krnl386.exe16/wowthunk.c, dlls/ntdll/signal_i386.c, -# | dlls/system.drv16/system.c, dlls/toolhelp.dll16/toolhelp.c, dlls/user.exe16/message.c, dlls/user.exe16/user.c, -# | dlls/user.exe16/window.c, include/winternl.h, libs/wine/loader.c, tools/winebuild/build.h, tools/winebuild/import.c, -# | tools/winebuild/parser.c, tools/winebuild/relay.c, tools/winebuild/res32.c, tools/winebuild/spec16.c, -# | tools/winebuild/spec32.c, tools/winebuild/utils.c +# | dlls/ntdll/tests/exception.c, dlls/system.drv16/system.c, dlls/toolhelp.dll16/toolhelp.c, dlls/user.exe16/message.c, +# | dlls/user.exe16/user.c, dlls/user.exe16/window.c, include/winternl.h, libs/wine/loader.c, tools/winebuild/build.h, +# | tools/winebuild/import.c, tools/winebuild/parser.c, tools/winebuild/relay.c, tools/winebuild/res32.c, +# | tools/winebuild/spec16.c, tools/winebuild/spec32.c, tools/winebuild/utils.c # | if test "$enable_winebuild_Fake_Dlls" -eq 1; then patch_apply winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch diff --git a/patches/user32-Cursor_Size/0001-user32-Reduce-the-cursor-height-if-it-also-includes-.patch b/patches/user32-Cursor_Size/0001-user32-Reduce-the-cursor-height-if-it-also-includes-.patch deleted file mode 100644 index fd35ca8b..00000000 --- a/patches/user32-Cursor_Size/0001-user32-Reduce-the-cursor-height-if-it-also-includes-.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 15121c7f2af09c906bcfeddd830b61ac1efa3c25 Mon Sep 17 00:00:00 2001 -From: Alexandre Julliard -Date: Mon, 24 Jul 2017 13:12:50 +0200 -Subject: user32: Reduce the cursor height if it also includes the mask. - -Signed-off-by: Alexandre Julliard ---- - dlls/user32/cursoricon.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/dlls/user32/cursoricon.c b/dlls/user32/cursoricon.c -index 5ee5cdfa966..252ea1f2942 100644 ---- a/dlls/user32/cursoricon.c -+++ b/dlls/user32/cursoricon.c -@@ -947,6 +947,7 @@ static BOOL CURSORICON_GetResCursorEntry( LPCVOID dir, DWORD size, int n, - *width = cursor->wWidth; - *height = cursor->wHeight; - *bits = resdir->idEntries[n].wBitCount; -+ if (*height == *width * 2) *height /= 2; - return TRUE; - } - --- -2.13.1 - diff --git a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch index b6ee0faa..e6aae3ed 100644 --- a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch +++ b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch @@ -1,33 +1,44 @@ -From 32bb8b671dd0c6df8d3cf295447b3c8f7d3b7457 Mon Sep 17 00:00:00 2001 +From fce736fd0ec3a9d497cbbe4cd7ac7a6ca146f544 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 11 May 2017 05:32:55 +0200 Subject: winebuild: Generate syscall thunks for ntdll exports. Based on a patch by Erich E. Hoover. --- - dlls/ntdll/signal_i386.c | 2 ++ - include/winternl.h | 2 +- - tools/winebuild/build.h | 6 +++++ - tools/winebuild/import.c | 10 ++++--- - tools/winebuild/parser.c | 59 +++++++++++++++++++++++++++++++++++++++++ - tools/winebuild/spec16.c | 22 +--------------- - tools/winebuild/spec32.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++ - tools/winebuild/utils.c | 21 +++++++++++++++ - 8 files changed, 164 insertions(+), 26 deletions(-) + dlls/ntdll/signal_i386.c | 5 +++- + dlls/ntdll/tests/exception.c | 2 ++ + include/winternl.h | 2 +- + tools/winebuild/build.h | 6 ++++ + tools/winebuild/import.c | 10 ++++--- + tools/winebuild/parser.c | 59 ++++++++++++++++++++++++++++++++++++++ + tools/winebuild/spec16.c | 22 +------------- + tools/winebuild/spec32.c | 68 ++++++++++++++++++++++++++++++++++++++++++++ + tools/winebuild/utils.c | 21 ++++++++++++++ + 9 files changed, 168 insertions(+), 27 deletions(-) diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c -index d3da84c7be9..f2657045c94 100644 +index ef45e37c5fd..d015c4ea831 100644 --- a/dlls/ntdll/signal_i386.c +++ b/dlls/ntdll/signal_i386.c -@@ -481,6 +481,7 @@ static wine_signal_handler handlers[256]; +@@ -481,6 +481,8 @@ static wine_signal_handler handlers[256]; static BOOL fpux_support; /* whether the CPU supports extended fpu context */ extern void DECLSPEC_NORETURN __wine_restore_regs( const CONTEXT *context ); +extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void ); ++extern NTSTATUS WINAPI __syscall_NtGetContextThread( HANDLE handle, CONTEXT *context ); enum i386_trap_code { -@@ -2434,6 +2435,7 @@ NTSTATUS signal_alloc_thread( TEB **teb ) +@@ -1499,7 +1501,7 @@ NTSTATUS CDECL __regs_NtGetContextThread( DWORD edi, DWORD esi, DWORD ebx, DWORD + { + context->Ebp = ebp; + context->Esp = (DWORD)&retaddr; +- context->Eip = *(&edi - 1); ++ context->Eip = (DWORD)__syscall_NtGetContextThread + 18; + context->SegCs = wine_get_cs(); + context->SegSs = wine_get_ss(); + context->EFlags = eflags; +@@ -2469,6 +2471,7 @@ NTSTATUS signal_alloc_thread( TEB **teb ) *teb = addr; (*teb)->Tib.Self = &(*teb)->Tib; (*teb)->Tib.ExceptionList = (void *)~0UL; @@ -35,11 +46,24 @@ index d3da84c7be9..f2657045c94 100644 thread_data = (struct x86_thread_data *)(*teb)->SystemReserved2; if (!(thread_data->fs = wine_ldt_alloc_fs())) { +diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c +index 90490871f36..f614ef0edb8 100644 +--- a/dlls/ntdll/tests/exception.c ++++ b/dlls/ntdll/tests/exception.c +@@ -1544,6 +1544,8 @@ static void test_thread_context(void) + ok( (char *)context.Eip >= (char *)pNtGetContextThread - 0x10000 && + (char *)context.Eip <= (char *)pNtGetContextThread + 0x10000, + "wrong Eip %08x/%08x\n", context.Eip, (DWORD)pNtGetContextThread ); ++ ok( *(WORD *)context.Eip == 0xc483 || *(WORD *)context.Eip == 0x08c2 || *(WORD *)context.Eip == 0x8dc3, ++ "expected 0xc483 or 0x08c2 or 0x8dc3, got %04x\n", *(WORD *)context.Eip ); + /* segment registers clear the high word */ + ok( context.SegCs == LOWORD(expect.SegCs), "wrong SegCs %08x/%08x\n", context.SegCs, expect.SegCs ); + ok( context.SegDs == LOWORD(expect.SegDs), "wrong SegDs %08x/%08x\n", context.SegDs, expect.SegDs ); diff --git a/include/winternl.h b/include/winternl.h -index c11df3e53f6..80b7b91f906 100644 +index 404730ddbb6..b1871e689fa 100644 --- a/include/winternl.h +++ b/include/winternl.h -@@ -322,7 +322,7 @@ typedef struct _TEB +@@ -323,7 +323,7 @@ typedef struct _TEB PVOID CsrClientThread; /* 03c/0070 */ PVOID Win32ThreadInfo; /* 040/0078 */ ULONG Win32ClientInfo[31]; /* 044/0080 used for user32 private data in Wine */ @@ -134,7 +158,7 @@ index e7bad72c37b..cc8c422a33c 100644 } } diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c -index 2762a8cd10e..d8dceaead28 100644 +index 2762a8cd10e..402c0d60368 100644 --- a/tools/winebuild/parser.c +++ b/tools/winebuild/parser.c @@ -507,6 +507,24 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp ) @@ -145,7 +169,7 @@ index 2762a8cd10e..d8dceaead28 100644 +{ + if (target_cpu != CPU_x86) + return 0; -+ if (odp->flags & (FLAG_FORWARD | FLAG_NORELAY | FLAG_REGISTER)) ++ if (odp->flags & (FLAG_FORWARD | FLAG_REGISTER)) + return 0; + if (odp->type != TYPE_STDCALL) + return 0; diff --git a/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch index 5f510650..b6dc8977 100644 --- a/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch +++ b/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch @@ -1,4 +1,4 @@ -From 47c26e73121327980c26501ecb20cc6d6b08f3f3 Mon Sep 17 00:00:00 2001 +From c3d774f0b6613aac336b3a2ed28452fbb6a5f9c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Mon, 15 May 2017 16:27:56 +0200 Subject: winebuild: Add stub functions in fake dlls. @@ -13,10 +13,10 @@ Subject: winebuild: Add stub functions in fake dlls. 6 files changed, 255 insertions(+), 15 deletions(-) diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c -index f8d45d829fc..77bac0861f7 100644 +index e9b05013875..6be54321d50 100644 --- a/dlls/kernel32/tests/loader.c +++ b/dlls/kernel32/tests/loader.c -@@ -856,9 +856,7 @@ static void test_FakeDLL(void) +@@ -892,9 +892,7 @@ static void test_FakeDLL(void) ok(ptr != NULL, "MapViewOfFile failed with error %u\n", GetLastError()); dir = RtlImageDirectoryEntryToData(ptr, TRUE, IMAGE_DIRECTORY_ENTRY_EXPORT, &size); @@ -26,7 +26,7 @@ index f8d45d829fc..77bac0861f7 100644 names = RVAToAddr(dir->AddressOfNames, ptr); ordinals = RVAToAddr(dir->AddressOfNameOrdinals, ptr); -@@ -887,17 +885,20 @@ todo_wine +@@ -923,17 +921,20 @@ todo_wine /* check position in memory */ dll_rva = (DWORD_PTR)dll_func - (DWORD_PTR)module; map_rva = funcs[ordinals[i]]; @@ -47,7 +47,7 @@ index f8d45d829fc..77bac0861f7 100644 ok(!memcmp(map_func, dll_func, 0x20), "%s: Function content does not match!\n", func_name); if (!strcmp(func_name, "NtSetEvent")) -@@ -911,10 +912,11 @@ todo_wine +@@ -947,10 +948,11 @@ todo_wine ok(event != NULL, "CreateEvent failed with error %u\n", GetLastError()); pNtSetEvent(event, 0); ok(WaitForSingleObject(event, 0) == WAIT_OBJECT_0, "Event was not signaled\n"); @@ -61,12 +61,12 @@ index f8d45d829fc..77bac0861f7 100644 CloseHandle(map); CloseHandle(file); diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c -index f2657045c94..c2375d6f0e8 100644 +index d015c4ea831..3818e696c49 100644 --- a/dlls/ntdll/signal_i386.c +++ b/dlls/ntdll/signal_i386.c -@@ -483,6 +483,45 @@ static BOOL fpux_support; /* whether the CPU supports extended fpu context */ - extern void DECLSPEC_NORETURN __wine_restore_regs( const CONTEXT *context ); +@@ -484,6 +484,45 @@ extern void DECLSPEC_NORETURN __wine_restore_regs( const CONTEXT *context ); extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void ); + extern NTSTATUS WINAPI __syscall_NtGetContextThread( HANDLE handle, CONTEXT *context ); +/* convert from straight ASCII to Unicode without depending on the current codepage */ +static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len ) @@ -110,7 +110,7 @@ index f2657045c94..c2375d6f0e8 100644 enum i386_trap_code { TRAP_x86_UNKNOWN = -1, /* Unknown fault (TRAP_sig not defined) */ -@@ -2436,6 +2475,7 @@ NTSTATUS signal_alloc_thread( TEB **teb ) +@@ -2472,6 +2511,7 @@ NTSTATUS signal_alloc_thread( TEB **teb ) (*teb)->Tib.Self = &(*teb)->Tib; (*teb)->Tib.ExceptionList = (void *)~0UL; (*teb)->WOW32Reserved = __wine_syscall_dispatcher; @@ -119,10 +119,10 @@ index f2657045c94..c2375d6f0e8 100644 if (!(thread_data->fs = wine_ldt_alloc_fs())) { diff --git a/include/winternl.h b/include/winternl.h -index 80b7b91f906..4780aca43a3 100644 +index b1871e689fa..140669b0105 100644 --- a/include/winternl.h +++ b/include/winternl.h -@@ -362,7 +362,7 @@ typedef struct _TEB +@@ -363,7 +363,7 @@ typedef struct _TEB PVOID WinSockData; /* f6c/1738 */ ULONG GdiBatchCount; /* f70/1740 */ ULONG Spare2; /* f74/1744 */ diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index aebca832..5a41431b 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -619,7 +619,7 @@ diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -2822,6 +2822,16 @@ struct wined3d_state +@@ -2823,6 +2823,16 @@ struct wined3d_state struct wined3d_rasterizer_state *rasterizer_state; }; @@ -636,7 +636,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 -@@ -2933,6 +2943,12 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL +@@ -2934,6 +2944,12 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL 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; void device_invalidate_state(const struct wined3d_device *device, DWORD state) DECLSPEC_HIDDEN; @@ -649,7 +649,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) { -@@ -3120,7 +3136,11 @@ struct wined3d_texture +@@ -3121,7 +3137,11 @@ struct wined3d_texture unsigned int map_count; DWORD locations; @@ -661,7 +661,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h } sub_resources[1]; }; -@@ -3435,6 +3455,9 @@ struct wined3d_cs_queue +@@ -3436,6 +3456,9 @@ struct wined3d_cs_queue struct wined3d_cs_ops { diff --git a/patches/wined3d-conservative_depth/0002-wined3d-Add-conservative-depth-access-information-to.patch b/patches/wined3d-conservative_depth/0002-wined3d-Add-conservative-depth-access-information-to.patch index ed78b65f..7990790b 100644 --- a/patches/wined3d-conservative_depth/0002-wined3d-Add-conservative-depth-access-information-to.patch +++ b/patches/wined3d-conservative_depth/0002-wined3d-Add-conservative-depth-access-information-to.patch @@ -1,4 +1,4 @@ -From 233f63ce576d8d2f321fb41c281a9ff1f62ae491 Mon Sep 17 00:00:00 2001 +From 8e70f4d3c05ec6f4b31ab4e0785ea1bd9d071cd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sat, 22 Jul 2017 19:39:40 +0200 Subject: wined3d: Add conservative depth access information to glsl pixel @@ -13,7 +13,7 @@ Subject: wined3d: Add conservative depth access information to glsl pixel 5 files changed, 24 insertions(+) diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c -index d2815b8b3ac..82f6300d0f5 100644 +index 86b7c6289bf..d508a965642 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -116,6 +116,7 @@ static const struct wined3d_extension_map gl_extension_map[] = @@ -25,10 +25,10 @@ index d2815b8b3ac..82f6300d0f5 100644 {"GL_ARB_copy_image", ARB_COPY_IMAGE }, {"GL_ARB_debug_output", ARB_DEBUG_OUTPUT }, diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c -index df27c3286e7..c6c3011b9bb 100644 +index 1fe6f86bd35..5b0cc5964fd 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c -@@ -7312,10 +7312,20 @@ static GLuint shader_glsl_generate_pshader(const struct wined3d_context *context +@@ -7265,10 +7265,20 @@ static GLuint shader_glsl_generate_pshader(const struct wined3d_context *context * nvidia drivers write a warning if we don't do so. */ if (gl_info->supported[ARB_TEXTURE_RECTANGLE]) shader_addline(buffer, "#extension GL_ARB_texture_rectangle : enable\n"); @@ -50,10 +50,10 @@ index df27c3286e7..c6c3011b9bb 100644 * This is NOT done inside the loop that declares the texture samplers * since the NP2 fixup code is currently only used for the GeforceFX diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c -index 8485a0e784a..e48709fb597 100644 +index 014b0a69244..a27b1566193 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c -@@ -1133,6 +1133,17 @@ static HRESULT shader_get_registers_used(struct wined3d_shader *shader, const st +@@ -1148,6 +1148,17 @@ static HRESULT shader_get_registers_used(struct wined3d_shader *shader, const st FIXME("Invalid instruction %#x for shader type %#x.\n", ins.handler_idx, shader_version.type); } @@ -72,7 +72,7 @@ index 8485a0e784a..e48709fb597 100644 { if (shader_version.type == WINED3D_SHADER_TYPE_HULL) diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h -index a048dc1d74e..4fe1971b5e6 100644 +index cf0947b9c33..4f73478a3b4 100644 --- a/dlls/wined3d/wined3d_gl.h +++ b/dlls/wined3d/wined3d_gl.h @@ -50,6 +50,7 @@ enum wined3d_gl_extension @@ -84,13 +84,13 @@ index a048dc1d74e..4fe1971b5e6 100644 ARB_COPY_IMAGE, ARB_DEBUG_OUTPUT, diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index 040b068ad0e..b62aeb26bbd 100644 +index 3377d401985..01bce7fcba3 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -3899,6 +3899,7 @@ struct wined3d_pixel_shader - /* Some information about the shader behavior */ - BOOL color0_mov; +@@ -3938,6 +3938,7 @@ struct wined3d_pixel_shader DWORD color0_reg; + + BOOL force_early_depth_stencil; + DWORD depth_compare; }; diff --git a/staging/VERSION b/staging/VERSION index 72b1743e..09ec85f2 100644 --- a/staging/VERSION +++ b/staging/VERSION @@ -1 +1 @@ -Wine Staging 2.13 +Wine Staging 2.14 (unreleased)