From f85accadd527f31438090e7e8710225061d73061 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Fri, 8 Feb 2019 10:49:30 +1100 Subject: [PATCH] Rebase against 957a1f0216995c14c3a3fe737358578a506af707 --- ...ntoskrnl.exe-Implement-NtBuildNumber.patch | 124 ------------------ patches/patchinstall.sh | 25 +--- ...ultisample-quality-for-MULTISAMPLE_N.patch | 43 ------ .../wined3d-multisample-quality/definition | 1 - ...ice-Load-some-common-drivers-and-fix.patch | 20 +-- 5 files changed, 12 insertions(+), 201 deletions(-) delete mode 100644 patches/ntoskrnl-Stubs/0013-ntoskrnl.exe-Implement-NtBuildNumber.patch delete mode 100644 patches/wined3d-multisample-quality/0001-wined3d-Ignore-multisample-quality-for-MULTISAMPLE_N.patch delete mode 100644 patches/wined3d-multisample-quality/definition diff --git a/patches/ntoskrnl-Stubs/0013-ntoskrnl.exe-Implement-NtBuildNumber.patch b/patches/ntoskrnl-Stubs/0013-ntoskrnl.exe-Implement-NtBuildNumber.patch deleted file mode 100644 index 04317090..00000000 --- a/patches/ntoskrnl-Stubs/0013-ntoskrnl.exe-Implement-NtBuildNumber.patch +++ /dev/null @@ -1,124 +0,0 @@ -From e82c474f4befd2ba092dc41e0d7e188cd6303b7e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Tue, 6 Jun 2017 21:08:51 +0200 -Subject: [PATCH] ntoskrnl.exe: Implement NtBuildNumber. - ---- - dlls/ntoskrnl.exe/ntoskrnl.c | 11 +++++++++-- - dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +- - dlls/ntoskrnl.exe/tests/driver.c | 29 +++++++++++++++++++++++++++++ - 3 files changed, 39 insertions(+), 3 deletions(-) - -diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c -index c3276c95..0e9fa425 100644 ---- a/dlls/ntoskrnl.exe/ntoskrnl.c -+++ b/dlls/ntoskrnl.exe/ntoskrnl.c -@@ -60,6 +60,7 @@ WINE_DECLARE_DEBUG_CHANNEL(plugplay); - - BOOLEAN KdDebuggerEnabled = FALSE; - ULONG InitSafeBootMode = 0; -+USHORT NtBuildNumber = 0; - - extern LONG CALLBACK vectored_handler( EXCEPTION_POINTERS *ptrs ); - -@@ -2913,6 +2914,13 @@ NTSTATUS WINAPI IoAcquireRemoveLockEx(PIO_REMOVE_LOCK lock, PVOID tag, - return STATUS_NOT_IMPLEMENTED; - } - -+static void ntoskrnl_init(void) -+{ -+ LARGE_INTEGER count; -+ -+ KeQueryTickCount( &count ); /* initialize the global KeTickCount */ -+ NtBuildNumber = NtCurrentTeb()->Peb->OSBuildNumber; -+} - - /***************************************************** - * DllMain -@@ -2920,7 +2928,6 @@ NTSTATUS WINAPI IoAcquireRemoveLockEx(PIO_REMOVE_LOCK lock, PVOID tag, - BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved ) - { - static void *handler; -- LARGE_INTEGER count; - - switch(reason) - { -@@ -2929,7 +2936,7 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved ) - #if defined(__i386__) || defined(__x86_64__) - handler = RtlAddVectoredExceptionHandler( TRUE, vectored_handler ); - #endif -- KeQueryTickCount( &count ); /* initialize the global KeTickCount */ -+ ntoskrnl_init(); - break; - case DLL_PROCESS_DETACH: - if (reserved) break; -diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec -index 19cde8cf..271b7f08 100644 ---- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec -+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec -@@ -751,7 +751,7 @@ - @ stdcall NtAllocateLocallyUniqueId(ptr) - @ stdcall NtAllocateUuids(ptr ptr ptr ptr) - @ stdcall NtAllocateVirtualMemory(long ptr long ptr long long) --@ stub NtBuildNumber -+@ extern NtBuildNumber - @ stdcall NtClose(long) - @ stdcall NtConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) - @ stdcall NtCreateEvent(ptr long ptr long long) -diff --git a/dlls/ntoskrnl.exe/tests/driver.c b/dlls/ntoskrnl.exe/tests/driver.c -index bd1070c1..2e622c8d 100644 ---- a/dlls/ntoskrnl.exe/tests/driver.c -+++ b/dlls/ntoskrnl.exe/tests/driver.c -@@ -174,6 +174,22 @@ static void winetest_end_todo(void) - #define todo_wine_if(is_todo) todo_if((is_todo) && running_under_wine) - #define win_skip(...) win_skip_(__FILE__, __LINE__, __VA_ARGS__) - -+static void *get_proc_address(const char *name) -+{ -+ UNICODE_STRING name_u; -+ ANSI_STRING name_a; -+ NTSTATUS status; -+ void *ret; -+ -+ RtlInitAnsiString(&name_a, name); -+ status = RtlAnsiStringToUnicodeString(&name_u, &name_a, TRUE); -+ if (status) return NULL; -+ -+ ret = MmGetSystemRoutineAddress(&name_u); -+ RtlFreeUnicodeString(&name_u); -+ return ret; -+} -+ - static void test_currentprocess(void) - { - PEPROCESS current; -@@ -604,6 +620,18 @@ static void test_lookaside_list(void) - ExDeleteNPagedLookasideList(&list); - } - -+static void test_version(void) -+{ -+ USHORT *pNtBuildNumber; -+ ULONG build; -+ -+ pNtBuildNumber = get_proc_address("NtBuildNumber"); -+ ok(!!pNtBuildNumber, "Could not get pointer to NtBuildNumber\n"); -+ -+ PsGetVersion(NULL, NULL, &build, NULL); -+ ok(*pNtBuildNumber == build, "Expected build number %u, got %u\n", build, *pNtBuildNumber); -+} -+ - static NTSTATUS main_test(IRP *irp, IO_STACK_LOCATION *stack, ULONG_PTR *info) - { - ULONG length = stack->Parameters.DeviceIoControl.OutputBufferLength; -@@ -633,6 +661,7 @@ static NTSTATUS main_test(IRP *irp, IO_STACK_LOCATION *stack, ULONG_PTR *info) - test_init_funcs(); - test_load_driver(); - test_sync(); -+ test_version(); - test_stack_callout(); - test_lookaside_list(); - --- -2.20.1 - diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 44ab2f4f..c10ae1ca 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "c3ac646a8ded3ef3ebc743a7fdda01b0691a427a" + echo "957a1f0216995c14c3a3fe737358578a506af707" } # Show version information @@ -359,7 +359,6 @@ patch_enable_all () enable_wined3d_WINED3D_RS_COLORWRITEENABLE="$1" enable_wined3d_WINED3D_TEXF_ANISOTROPIC="$1" enable_wined3d_mesa_texture_download="$1" - enable_wined3d_multisample_quality="$1" enable_wined3d_stream_frequency="$1" enable_wined3d_wined3d_guess_gl_vendor="$1" enable_winedbg_Process_Arguments="$1" @@ -1241,9 +1240,6 @@ patch_enable () wined3d-mesa_texture_download) enable_wined3d_mesa_texture_download="$2" ;; - wined3d-multisample-quality) - enable_wined3d_multisample_quality="$2" - ;; wined3d-stream-frequency) enable_wined3d_stream_frequency="$2" ;; @@ -5248,16 +5244,14 @@ fi # Patchset ntoskrnl-Stubs # | # | Modified files: -# | * dlls/ntoskrnl.exe/ntoskrnl.c, dlls/ntoskrnl.exe/ntoskrnl.exe.spec, dlls/ntoskrnl.exe/tests/driver.c +# | * dlls/ntoskrnl.exe/ntoskrnl.c, dlls/ntoskrnl.exe/ntoskrnl.exe.spec # | if test "$enable_ntoskrnl_Stubs" -eq 1; then patch_apply ntoskrnl-Stubs/0009-ntoskrnl.exe-Implement-MmMapLockedPages-and-MmUnmapL.patch patch_apply ntoskrnl-Stubs/0011-ntoskrnl.exe-Add-IoGetDeviceAttachmentBaseRef-stub.patch - patch_apply ntoskrnl-Stubs/0013-ntoskrnl.exe-Implement-NtBuildNumber.patch ( printf '%s\n' '+ { "Christian Costa", "ntoskrnl.exe: Implement MmMapLockedPages and MmUnmapLockedPages.", 1 },'; printf '%s\n' '+ { "Jarkko Korpi", "ntoskrnl.exe: Add IoGetDeviceAttachmentBaseRef stub.", 1 },'; - printf '%s\n' '+ { "Michael Müller", "ntoskrnl.exe: Implement NtBuildNumber.", 1 },'; ) >> "$patchlist" fi @@ -7278,21 +7272,6 @@ if test "$enable_wined3d_mesa_texture_download" -eq 1; then ) >> "$patchlist" fi -# Patchset wined3d-multisample-quality -# | -# | This patchset fixes the following Wine bugs: -# | * [#39080] wined3d: Ignore multisample quality for MULTISAMPLE_NONE -# | -# | Modified files: -# | * dlls/d3d9/tests/visual.c, dlls/wined3d/context.c -# | -if test "$enable_wined3d_multisample_quality" -eq 1; then - patch_apply wined3d-multisample-quality/0001-wined3d-Ignore-multisample-quality-for-MULTISAMPLE_N.patch - ( - printf '%s\n' '+ { "Paul Gofman", "wined3d: Ignore multisample quality for MULTISAMPLE_NONE in context_find_fbo_entry().", 1 },'; - ) >> "$patchlist" -fi - # Patchset wined3d-stream-frequency # | # | This patchset fixes the following Wine bugs: diff --git a/patches/wined3d-multisample-quality/0001-wined3d-Ignore-multisample-quality-for-MULTISAMPLE_N.patch b/patches/wined3d-multisample-quality/0001-wined3d-Ignore-multisample-quality-for-MULTISAMPLE_N.patch deleted file mode 100644 index e8b21989..00000000 --- a/patches/wined3d-multisample-quality/0001-wined3d-Ignore-multisample-quality-for-MULTISAMPLE_N.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 79a35fd2239cadfa9c8c588c295eef4ca9aba48a Mon Sep 17 00:00:00 2001 -From: Paul Gofman -Date: Tue, 22 Jan 2019 00:22:28 +0300 -Subject: [PATCH] wined3d: Ignore multisample quality for MULTISAMPLE_NONE in - context_find_fbo_entry(). - -Wine-bug: https://bugs.winehq.org/show_bug.cgi?id=39080 -Signed-off-by: Paul Gofman ---- - dlls/d3d9/tests/visual.c | 2 +- - dlls/wined3d/context.c | 3 ++- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c -index 072c6a8364..fb1c7ef21d 100644 ---- a/dlls/d3d9/tests/visual.c -+++ b/dlls/d3d9/tests/visual.c -@@ -21273,7 +21273,7 @@ static void test_depthbias(void) - } - - hr = IDirect3DDevice9_CreateDepthStencilSurface(device, 640, 480, formats[i], -- D3DMULTISAMPLE_NONE, 0, FALSE, &ds, NULL); -+ D3DMULTISAMPLE_NONE, 1, FALSE, &ds, NULL); - ok(SUCCEEDED(hr), "Failed to create depth stencil surface, hr %#x.\n", hr); - hr = IDirect3DDevice9_SetDepthStencilSurface(device, ds); - ok(SUCCEEDED(hr), "Failed to set depth stencil surface, hr %#x.\n", hr); -diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c -index 37203738fe..c7eb7849fc 100644 ---- a/dlls/wined3d/context.c -+++ b/dlls/wined3d/context.c -@@ -599,7 +599,8 @@ static struct fbo_entry *context_find_fbo_entry(struct wined3d_context *context, - depth_stencil = &ds_null; - } - else if (ds_texture->resource.multisample_type != rt_texture->resource.multisample_type -- || ds_texture->resource.multisample_quality != rt_texture->resource.multisample_quality) -+ || (ds_texture->resource.multisample_type -+ && ds_texture->resource.multisample_quality != rt_texture->resource.multisample_quality)) - { - WARN("Color multisample type %u and quality %u, depth stencil has %u and %u, disabling ds buffer.\n", - rt_texture->resource.multisample_type, rt_texture->resource.multisample_quality, --- -2.20.1 - diff --git a/patches/wined3d-multisample-quality/definition b/patches/wined3d-multisample-quality/definition deleted file mode 100644 index 56116ad3..00000000 --- a/patches/wined3d-multisample-quality/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [39080] wined3d: Ignore multisample quality for MULTISAMPLE_NONE diff --git a/patches/winedevice-Default_Drivers/0004-programs-winedevice-Load-some-common-drivers-and-fix.patch b/patches/winedevice-Default_Drivers/0004-programs-winedevice-Load-some-common-drivers-and-fix.patch index 9dd4af85..0bbeb99a 100644 --- a/patches/winedevice-Default_Drivers/0004-programs-winedevice-Load-some-common-drivers-and-fix.patch +++ b/patches/winedevice-Default_Drivers/0004-programs-winedevice-Load-some-common-drivers-and-fix.patch @@ -1,16 +1,16 @@ -From 09df46b62a34ccfdc214bc3b5e20731d7170f93f Mon Sep 17 00:00:00 2001 +From 6ac70538d8f1989386bfe95bdbdc61af60b482c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 8 Jun 2017 23:50:03 +0200 Subject: [PATCH] programs/winedevice: Load some common drivers and fix ldr order. --- - dlls/ntoskrnl.exe/tests/driver.c | 51 ++++++++++++++++++++++++++++++++ - programs/winedevice/device.c | 26 ++++++++++++++++ + dlls/ntoskrnl.exe/tests/driver.c | 51 ++++++++++++++++++++++++++++++++++++++++ + programs/winedevice/device.c | 26 ++++++++++++++++++++ 2 files changed, 77 insertions(+) diff --git a/dlls/ntoskrnl.exe/tests/driver.c b/dlls/ntoskrnl.exe/tests/driver.c -index 2e622c8d..d37e0b93 100644 +index 3984240..c467ac5 100644 --- a/dlls/ntoskrnl.exe/tests/driver.c +++ b/dlls/ntoskrnl.exe/tests/driver.c @@ -38,6 +38,8 @@ static const WCHAR driver_device[] = {'\\','D','e','v','i','c','e', @@ -22,7 +22,7 @@ index 2e622c8d..d37e0b93 100644 static HANDLE okfile; static LONG successes; static LONG failures; -@@ -632,6 +634,52 @@ static void test_version(void) +@@ -636,6 +638,52 @@ static void test_version(void) ok(*pNtBuildNumber == build, "Expected build number %u, got %u\n", build, *pNtBuildNumber); } @@ -72,10 +72,10 @@ index 2e622c8d..d37e0b93 100644 + ok(dxgmms1, "Failed to find dxgmms1.sys\n"); +} + - static NTSTATUS main_test(IRP *irp, IO_STACK_LOCATION *stack, ULONG_PTR *info) + static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *stack, ULONG_PTR *info) { ULONG length = stack->Parameters.DeviceIoControl.OutputBufferLength; -@@ -664,6 +712,7 @@ static NTSTATUS main_test(IRP *irp, IO_STACK_LOCATION *stack, ULONG_PTR *info) +@@ -669,6 +717,7 @@ static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *st test_version(); test_stack_callout(); test_lookaside_list(); @@ -83,7 +83,7 @@ index 2e622c8d..d37e0b93 100644 /* print process report */ if (test_input->winetest_debug) -@@ -772,6 +821,8 @@ NTSTATUS WINAPI DriverEntry(DRIVER_OBJECT *driver, PUNICODE_STRING registry) +@@ -781,6 +830,8 @@ NTSTATUS WINAPI DriverEntry(DRIVER_OBJECT *driver, PUNICODE_STRING registry) DbgPrint("loading driver\n"); @@ -93,7 +93,7 @@ index 2e622c8d..d37e0b93 100644 driver->DriverUnload = driver_Unload; diff --git a/programs/winedevice/device.c b/programs/winedevice/device.c -index 201a0411..33b332da 100644 +index 201a041..33b332d 100644 --- a/programs/winedevice/device.c +++ b/programs/winedevice/device.c @@ -124,7 +124,33 @@ static DWORD WINAPI service_handler( DWORD ctrl, DWORD event_type, LPVOID event_ @@ -131,5 +131,5 @@ index 201a0411..33b332da 100644 if (!(stop_event = CreateEventW( NULL, TRUE, FALSE, NULL ))) return; -- -2.20.1 +1.9.1