Rebase against 96a48efeeade7359c8c84a8c3a0a9768fb2a6194.

This commit is contained in:
Sebastian Lackner 2017-01-27 00:45:45 +01:00
parent db836be757
commit a6c14e35e7
10 changed files with 39 additions and 392 deletions

View File

@ -1,4 +1,4 @@
From ad8bbfd9104e2d35aba7f37b26c555bb7cbd7e16 Mon Sep 17 00:00:00 2001
From f7566e5af2508b89e87644cc079844f5827714ce Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 2 Oct 2015 05:09:10 +0200
Subject: mfplat/tests: Add tests.
@ -12,12 +12,12 @@ Subject: mfplat/tests: Add tests.
create mode 100644 dlls/mfplat/tests/mfplat.c
diff --git a/configure.ac b/configure.ac
index c37c491..54641a6 100644
index 26be5e60676..a4c1360b3db 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3078,6 +3078,7 @@ WINE_CONFIG_DLL(mciseq)
WINE_CONFIG_DLL(mciwave)
@@ -3122,6 +3122,7 @@ WINE_CONFIG_DLL(mciwave)
WINE_CONFIG_DLL(mf)
WINE_CONFIG_DLL(mf3216)
WINE_CONFIG_DLL(mfplat)
+WINE_CONFIG_TEST(dlls/mfplat/tests)
WINE_CONFIG_DLL(mfreadwrite)
@ -25,7 +25,7 @@ index c37c491..54641a6 100644
WINE_CONFIG_DLL(midimap)
diff --git a/dlls/mfplat/tests/Makefile.in b/dlls/mfplat/tests/Makefile.in
new file mode 100644
index 0000000..41a098d
index 00000000000..41a098daafe
--- /dev/null
+++ b/dlls/mfplat/tests/Makefile.in
@@ -0,0 +1,5 @@
@ -36,7 +36,7 @@ index 0000000..41a098d
+ mfplat.c
diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c
new file mode 100644
index 0000000..5e3be98
index 00000000000..5e3be98b59d
--- /dev/null
+++ b/dlls/mfplat/tests/mfplat.c
@@ -0,0 +1,151 @@
@ -192,5 +192,5 @@ index 0000000..5e3be98
+ test_register();
+}
--
2.5.1
2.11.0

View File

@ -1,4 +1,4 @@
From cf007e14398fed6d26eea0f5f78bebb22c9fc55c Mon Sep 17 00:00:00 2001
From 66e1fd2fc1c0a3b55597603b123f0c599faa2b75 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 15 Jan 2016 13:17:31 +0100
Subject: ntdll: Add stub for ApiSetQueryApiSetPresence.
@ -10,18 +10,18 @@ Subject: ntdll: Add stub for ApiSetQueryApiSetPresence.
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/dlls/api-ms-win-core-apiquery-l1-1-0/api-ms-win-core-apiquery-l1-1-0.spec b/dlls/api-ms-win-core-apiquery-l1-1-0/api-ms-win-core-apiquery-l1-1-0.spec
index 6d63b5b..1d99dd7 100644
index 6d63b5bf43f..1d99dd71320 100644
--- a/dlls/api-ms-win-core-apiquery-l1-1-0/api-ms-win-core-apiquery-l1-1-0.spec
+++ b/dlls/api-ms-win-core-apiquery-l1-1-0/api-ms-win-core-apiquery-l1-1-0.spec
@@ -1 +1 @@
-@ stub ApiSetQueryApiSetPresence
+@ stdcall ApiSetQueryApiSetPresence(ptr ptr) ntdll.ApiSetQueryApiSetPresence
diff --git a/dlls/ntdll/misc.c b/dlls/ntdll/misc.c
index de14e80..2f4cfa0 100644
index 40a878539a6..55a93938dcd 100644
--- a/dlls/ntdll/misc.c
+++ b/dlls/ntdll/misc.c
@@ -435,3 +435,14 @@ ULONG WINAPI EtwRegisterTraceGuidsA( WMIDPREQUEST RequestAddress,
debugstr_a(MofResourceName), RegistrationHandle);
@@ -457,3 +457,14 @@ ULONG WINAPI EtwUnregisterTraceGuids( TRACEHANDLE RegistrationHandle )
FIXME("%s: stub\n", wine_dbgstr_longlong(RegistrationHandle));
return ERROR_SUCCESS;
}
+
@ -36,7 +36,7 @@ index de14e80..2f4cfa0 100644
+ return TRUE;
+}
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index d9937b3..11ca926 100644
index 28dc60c40a2..076d0d280fe 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -3,6 +3,7 @@
@ -48,5 +48,5 @@ index d9937b3..11ca926 100644
@ stub CsrAllocateCapturePointer
@ stub CsrAllocateMessagePointer
--
2.9.0
2.11.0

View File

@ -1,4 +1,4 @@
From e3f5a9e92c48948be5c6d8213b248fcc4b79e984 Mon Sep 17 00:00:00 2001
From d0df8b13a6233a3dc91be942b83747fe999c276e Mon Sep 17 00:00:00 2001
From: Louis Lenders <xerox.xerox2000x@gmail.com>
Date: Mon, 16 Jan 2017 12:12:39 +0100
Subject: ntdll: Improve stub for NtAllocateUuids
@ -15,10 +15,10 @@ Signed-off-by: Louis Lenders <xerox.xerox2000x@gmail.com>
4 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 28aa2df77e7..32ea2c8a12b 100644
index 28dc60c40a2..7d6c7447d79 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -108,7 +108,7 @@
@@ -109,7 +109,7 @@
@ stdcall NtAlertThread(long)
@ stdcall NtAllocateLocallyUniqueId(ptr)
# @ stub NtAllocateUserPhysicalPages
@ -27,7 +27,7 @@ index 28aa2df77e7..32ea2c8a12b 100644
@ stdcall NtAllocateVirtualMemory(long ptr ptr ptr long long)
@ stdcall NtAreMappedFilesTheSame(ptr ptr)
@ stdcall NtAssignProcessToJobObject(long long)
@@ -1034,7 +1034,7 @@
@@ -1035,7 +1035,7 @@
@ stdcall -private ZwAlertThread(long) NtAlertThread
@ stdcall -private ZwAllocateLocallyUniqueId(ptr) NtAllocateLocallyUniqueId
# @ stub ZwAllocateUserPhysicalPages
@ -56,12 +56,12 @@ index 1279f2bb4c6..c13934a89bd 100644
/**************************************************************************
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 50c442ad077..ec178c99a9e 100644
index 62ceaceeea6..bba67d71c7d 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -736,7 +736,7 @@
@ stdcall NtAddAtom(ptr long ptr) ntdll.NtAddAtom
@ stdcall NtAdjustPrivilegesToken(long long long long long long) ntdll.NtAdjustPrivilegesToken
@ stdcall NtAdjustPrivilegesToken(long long ptr long ptr ptr) ntdll.NtAdjustPrivilegesToken
@ stdcall NtAllocateLocallyUniqueId(ptr) ntdll.NtAllocateLocallyUniqueId
-@ stdcall NtAllocateUuids(ptr ptr ptr) ntdll.NtAllocateUuids
+@ stdcall NtAllocateUuids(ptr ptr ptr ptr) ntdll.NtAllocateUuids

View File

@ -1,93 +0,0 @@
From 59ec5eb37d3cd13b22ba5f6a9866e2c8d8e65c7a Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 14 Jan 2017 08:17:30 +0100
Subject: ntdll: Catch page faults in NtQueryPerformanceCounter.
---
dlls/ntdll/tests/time.c | 23 +++++++++++++++++++++++
dlls/ntdll/time.c | 14 ++++++++++++--
2 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/tests/time.c b/dlls/ntdll/tests/time.c
index 48f4640ebb8..b684bc1980d 100644
--- a/dlls/ntdll/tests/time.c
+++ b/dlls/ntdll/tests/time.c
@@ -26,6 +26,7 @@
static VOID (WINAPI *pRtlTimeToTimeFields)( const LARGE_INTEGER *liTime, PTIME_FIELDS TimeFields) ;
static VOID (WINAPI *pRtlTimeFieldsToTime)( PTIME_FIELDS TimeFields, PLARGE_INTEGER Time) ;
+static NTSTATUS (WINAPI *pNtQueryPerformanceCounter)( LARGE_INTEGER *counter, LARGE_INTEGER *frequency );
static const int MonthLengths[2][12] =
{
@@ -94,13 +95,35 @@ static void test_pRtlTimeToTimeFields(void)
}
}
+static void test_NtQueryPerformanceCounter(void)
+{
+ LARGE_INTEGER counter, frequency;
+ NTSTATUS status;
+
+ status = pNtQueryPerformanceCounter(NULL, NULL);
+ ok(status == STATUS_ACCESS_VIOLATION, "expected STATUS_ACCESS_VIOLATION, got %08x\n", status);
+ status = pNtQueryPerformanceCounter(NULL, &frequency);
+ ok(status == STATUS_ACCESS_VIOLATION, "expected STATUS_ACCESS_VIOLATION, got %08x\n", status);
+ status = pNtQueryPerformanceCounter(&counter, (void *)0xdeadbee0);
+ ok(status == STATUS_ACCESS_VIOLATION, "expected STATUS_ACCESS_VIOLATION, got %08x\n", status);
+ status = pNtQueryPerformanceCounter((void *)0xdeadbee0, &frequency);
+ ok(status == STATUS_ACCESS_VIOLATION, "expected STATUS_ACCESS_VIOLATION, got %08x\n", status);
+
+ status = pNtQueryPerformanceCounter(&counter, NULL);
+ ok(status == STATUS_SUCCESS, "expected STATUS_SUCCESS, got %08x\n", status);
+ status = pNtQueryPerformanceCounter(&counter, &frequency);
+ ok(status == STATUS_SUCCESS, "expected STATUS_SUCCESS, got %08x\n", status);
+}
+
START_TEST(time)
{
HMODULE mod = GetModuleHandleA("ntdll.dll");
pRtlTimeToTimeFields = (void *)GetProcAddress(mod,"RtlTimeToTimeFields");
pRtlTimeFieldsToTime = (void *)GetProcAddress(mod,"RtlTimeFieldsToTime");
+ pNtQueryPerformanceCounter = (void *)GetProcAddress(mod, "NtQueryPerformanceCounter");
if (pRtlTimeToTimeFields && pRtlTimeFieldsToTime)
test_pRtlTimeToTimeFields();
else
win_skip("Required time conversion functions are not available\n");
+ test_NtQueryPerformanceCounter();
}
diff --git a/dlls/ntdll/time.c b/dlls/ntdll/time.c
index 96ffcfad52f..ac81ea042d4 100644
--- a/dlls/ntdll/time.c
+++ b/dlls/ntdll/time.c
@@ -46,6 +46,7 @@
#define WIN32_NO_STATUS
#include "windef.h"
#include "winternl.h"
+#include "wine/exception.h"
#include "wine/unicode.h"
#include "wine/debug.h"
#include "ntdll_misc.h"
@@ -474,8 +475,17 @@ NTSTATUS WINAPI NtQueryPerformanceCounter( LARGE_INTEGER *counter, LARGE_INTEGER
{
if (!counter) return STATUS_ACCESS_VIOLATION;
- counter->QuadPart = monotonic_counter();
- if (frequency) frequency->QuadPart = TICKSPERSEC;
+ __TRY
+ {
+ counter->QuadPart = monotonic_counter();
+ if (frequency) frequency->QuadPart = TICKSPERSEC;
+ }
+ __EXCEPT_PAGE_FAULT
+ {
+ return STATUS_ACCESS_VIOLATION;
+ }
+ __ENDTRY
+
return STATUS_SUCCESS;
}
--
2.11.0

View File

@ -1 +0,0 @@
Fixes: Catch page faults in NtQueryPerformanceCounter

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "76644a7c26f2c2b3a5968665c349b45bdb294387"
echo "96a48efeeade7359c8c84a8c3a0a9768fb2a6194"
}
# Show version information
@ -243,7 +243,6 @@ patch_enable_all ()
enable_ntdll_NtAccessCheck="$1"
enable_ntdll_NtAllocateUuids="$1"
enable_ntdll_NtQueryEaFile="$1"
enable_ntdll_NtQueryPerformanceCounter="$1"
enable_ntdll_NtQuerySection="$1"
enable_ntdll_NtSetInformationToken="$1"
enable_ntdll_NtSetLdtEntries="$1"
@ -298,7 +297,6 @@ patch_enable_all ()
enable_rasapi32_RasEnumDevicesA="$1"
enable_riched20_Class_Tests="$1"
enable_riched20_IText_Interface="$1"
enable_rstrtmgr_RmShutdown="$1"
enable_secur32_Zero_Buffer_Length="$1"
enable_server_ClipCursor="$1"
enable_server_CreateProcess_ACLs="$1"
@ -405,7 +403,6 @@ patch_enable_all ()
enable_wined3d_Accounting="$1"
enable_wined3d_Blend_Factor="$1"
enable_wined3d_CSMT_Helper="$1"
enable_wined3d_CSMT_Main="$1"
enable_wined3d_DXTn="$1"
enable_wined3d_GTX_560M="$1"
enable_wined3d_Limit_Vram="$1"
@ -945,9 +942,6 @@ patch_enable ()
ntdll-NtQueryEaFile)
enable_ntdll_NtQueryEaFile="$2"
;;
ntdll-NtQueryPerformanceCounter)
enable_ntdll_NtQueryPerformanceCounter="$2"
;;
ntdll-NtQuerySection)
enable_ntdll_NtQuerySection="$2"
;;
@ -1110,9 +1104,6 @@ patch_enable ()
riched20-IText_Interface)
enable_riched20_IText_Interface="$2"
;;
rstrtmgr-RmShutdown)
enable_rstrtmgr_RmShutdown="$2"
;;
secur32-Zero_Buffer_Length)
enable_secur32_Zero_Buffer_Length="$2"
;;
@ -1431,9 +1422,6 @@ patch_enable ()
wined3d-CSMT_Helper)
enable_wined3d_CSMT_Helper="$2"
;;
wined3d-CSMT_Main)
enable_wined3d_CSMT_Main="$2"
;;
wined3d-DXTn)
enable_wined3d_DXTn="$2"
;;
@ -1967,13 +1955,6 @@ if test "$enable_winex11_WM_WINDOWPOSCHANGING" -eq 1; then
enable_winex11__NET_ACTIVE_WINDOW=1
fi
if test "$enable_wined3d_CSMT_Main" -eq 1; then
if test "$enable_wined3d_CSMT_Helper" -gt 1; then
abort "Patchset wined3d-CSMT_Helper disabled, but wined3d-CSMT_Main depends on that."
fi
enable_wined3d_CSMT_Helper=1
fi
if test "$enable_wined3d_CSMT_Helper" -eq 1; then
if test "$enable_d3d11_Deferred_Context" -gt 1; then
abort "Patchset d3d11-Deferred_Context disabled, but wined3d-CSMT_Helper depends on that."
@ -5531,18 +5512,6 @@ if test "$enable_ntdll_NtAllocateUuids" -eq 1; then
) >> "$patchlist"
fi
# Patchset ntdll-NtQueryPerformanceCounter
# |
# | Modified files:
# | * dlls/ntdll/tests/time.c, dlls/ntdll/time.c
# |
if test "$enable_ntdll_NtQueryPerformanceCounter" -eq 1; then
patch_apply ntdll-NtQueryPerformanceCounter/0001-ntdll-Catch-page-faults-in-NtQueryPerformanceCounter.patch
(
printf '%s\n' '+ { "Sebastian Lackner", "ntdll: Catch page faults in NtQueryPerformanceCounter.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-NtQuerySection
# |
# | Modified files:
@ -6490,21 +6459,6 @@ if test "$enable_riched20_IText_Interface" -eq 1; then
) >> "$patchlist"
fi
# Patchset rstrtmgr-RmShutdown
# |
# | This patchset fixes the following Wine bugs:
# | * [#42093] Add stub for rstrtmgr.RmShutdown
# |
# | Modified files:
# | * dlls/rstrtmgr/main.c, dlls/rstrtmgr/rstrtmgr.spec, include/restartmanager.h
# |
if test "$enable_rstrtmgr_RmShutdown" -eq 1; then
patch_apply rstrtmgr-RmShutdown/0001-rstrtmgr-add-RmShutdown-stub.patch
(
printf '%s\n' '+ { "Austin English", "rstrtmgr: Add RmShutdown stub.", 1 },';
) >> "$patchlist"
fi
# Patchset secur32-Zero_Buffer_Length
# |
# | This patchset fixes the following Wine bugs:
@ -8433,164 +8387,6 @@ if test "$enable_wined3d_check_format_support" -eq 1; then
) >> "$patchlist"
fi
# Patchset wined3d-CSMT_Main
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * d3d11-Deferred_Context, makedep-PARENTSPEC, ntdll-Attach_Process_DLLs, ntdll-DllOverrides_WOW64, ntdll-
# | Loader_Machine_Type, ntdll-DllRedirects, wined3d-1DTextures, wined3d-Accounting, wined3d-DXTn, wined3d-QUERY_Stubs,
# | wined3d-Revert_Pixel_Center_Offset, wined3d-Silence_FIXMEs, wined3d-CSMT_Helper
# |
# | This patchset fixes the following Wine bugs:
# | * [#11674] Support for CSMT (command stream) to increase graphic performance
# |
# | Modified files:
# | * dlls/wined3d/arb_program_shader.c, dlls/wined3d/buffer.c, dlls/wined3d/context.c, dlls/wined3d/cs.c,
# | dlls/wined3d/device.c, dlls/wined3d/drawprim.c, dlls/wined3d/glsl_shader.c, dlls/wined3d/query.c,
# | dlls/wined3d/resource.c, dlls/wined3d/sampler.c, dlls/wined3d/shader.c, dlls/wined3d/state.c, dlls/wined3d/stateblock.c,
# | dlls/wined3d/surface.c, dlls/wined3d/swapchain.c, dlls/wined3d/texture.c, dlls/wined3d/utils.c, dlls/wined3d/view.c,
# | dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h, include/wine/wined3d.h
# |
if test "$enable_wined3d_CSMT_Main" -eq 1; then
patch_apply wined3d-CSMT_Main/9999-IfDefined.patch
(
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Return location from wined3d_buffer_get_memory().\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Use unsynchronized buffer updates only if there has been at least one buffer map.\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Avoid unsynchronized buffer update when reloading whole buffer.\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Introduce wined3d_rendertarget_view_get_drawable_size() as replacement for surface_get_drawable_size().\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Move surface_get_drawable_size() to view.c file.\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Mark buffers as used in wined3d_buffer_copy().\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Use wined3d_vec4 in fixup_transformed_pos().\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Invalidate STATE_CONSTANT_BUFFER(*) device state in buffer_destroy_buffer_object() when needed.\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Fix style issues in delete_gl_buffer().\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Pass context to delete_gl_buffer().\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Invalidate device state based on buffer bind flags when buffer is deleted.\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Compute \"buffer_type_hint\" from buffer bind flags.\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Use buffer_bind() in buffer_conversion_upload().\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Fix index offset for immediate mode draws.\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Introduce buffer_conversion_upload() helper function.\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Replace wined3d_buffer_load_sysmem() calls with wined3d_buffer_load_location().\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Prefer current locations to WINED3D_LOCATION_SYSMEM in wined3d_buffer_copy().\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Introduce wined3d_buffer_get_memory().\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Implement wined3d_buffer_prepare_location() for WINED3D_LOCATION_BUFFER.\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Move buffer_get_memory() under wined3d_buffer_load_sysmem().\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Do not assume that WINED3D_LOCATION_SYSMEM is always valid for double buffered buffers.\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Introduce wined3d_buffer_load_location().\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Introduce wined3d_buffer_prepapre_location().\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Explicitly track locations for buffers.\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Clean up buffer_internal_preload().\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Let buffer_direct_upload() invalidate STATE_INDEXBUFFER if needed.\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Sanitise resource map flags in wined3d_resource_map().\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Send resource unmaps through the command stream.\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Send resource maps through the command stream.\".", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "Revert \"wined3d: Send shader constant updates through the command stream.\".", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Make surface_load_location return nothing.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Call texture_load_location instead of surface_load_location.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Share surface and volume system memory loading code.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Don'\''t call the public map function in surface_convert_format.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Don'\''t call the public map function in surface_cpu_blt.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Move the framebuffer into wined3d_state.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Preload buffers if streamsrc is not dirty.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Hackily introduce a multithreaded command stream.", 1 },';
printf '%s\n' '+ { "Henri Verbeet", "wined3d: Wait for resource updates to finish when using the multithreaded command stream.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Wait for the cs before destroying objects.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Give the cs its own state.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Send float constant updates through the command stream.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Request a glFinish before modifying resources outside the cs.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Finish the cs before changing the texture lod.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Don'\''t call glFinish after clears.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Don'\''t call glFinish after draws.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Pass the depth stencil to swapchain->present.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Keep track of the onscreen depth stencil in the command stream instead of the device.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Send base vertex index updates through the cs.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Send primitive type updates through the command stream.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Send bool constant updates through the command stream.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Send int constant updates through the command stream.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Send light updates through the command stream.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Prevent the command stream from running ahead too far.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Wait for the cs to finish before destroying the device.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Run the cs asynchronously.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Send blits through the command stream.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Hack to reject unsupported color fills.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Restore some wined3d_device_copy_sub_resource_region checks.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Don'\''t force strict draw ordering for multithreaded CS.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Send render target view clears through the command stream.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Send texture maps through the command stream.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Get rid of the end_scene flush and finish.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Replace the linked lists with a ringbuffer.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Don'\''t preload buffers on unmap.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Don'\''t call glFinish before swapping.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Add query support to the command stream.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Check our CS state to find out if a query is done.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Poll queries automatically in the CS.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Introduce a separate queue for priority commands.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Don'\''t poll queries that failed to start.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Remove restated queries from the poll list.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Put this into the query poll patch.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Don'\''t access device state in clears.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Avoid destroying views in color and depth fills.", 1 },';
printf '%s\n' '+ { "Matteo Bruni", "wined3d: Avoid calling wined3d_surface_blt() from surface_upload_from_surface().", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Send update_texture calls through the CS.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Get rid of the surface_upload_data glFinish.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Don'\''t lock the src volume in device_update_volume.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Fence update_texture calls.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Dirtify resources on unmap.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Fence render targets and depth stencils.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Fence blit operations.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Fence color_fill operations.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Make resource maps and unmaps a priority command.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Send update_sub_resource calls through the command stream.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Dirtify changed textures through the command stream.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Wrap GL BOs in a structure.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Separate resource map and draw buffers.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Implement DISCARD texture maps with PBOs.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Implement DISCARD resource maps with heap memory.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Unset some objects in state_init_default.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Use double-buffered buffers for multithreaded CS.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Don'\''t synchronize NOOVERWRITE buffer maps.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Separate buffer map write and draw read memory pointers.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Accelerate DISCARD buffer maps.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Accelerate READONLY buffer maps.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Access the buffer dirty areas through the CS.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Ignore buffer->resource.map_count in the CS.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Use glBufferSubData instead of glMapBufferRange.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Separate GL buffer discard control from ignoring MAP_DISCARD.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Create buffers before mapping them.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Remove another glFinish.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Create VBOs through the command stream.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "Swapchain waits.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Unload resources through the CS in uninit_3d.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Unload resources through the CS in device_reset.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Don'\''t glFinish after a depth buffer blit.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Use surface_blt_ugly in swapchain_gl_present.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Use an event to block the worker thread when it is idle.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Set map_heap_memory = NULL when allocating a PBO.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Wait only for the buffer to be idle.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Put GL_APPLE_flush_buffer_range syncing back in place.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Don'\''t sync on redundant discard calls.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Don'\''t discard new buffers.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Don'\''t try to sync VBOs manually on OSX with CSMT.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Only discard buffers that are in use.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Send getdc and releasedc through the command stream.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Ignore WINED3D_MAP_NO_DIRTY_UPDATE in resource_map.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Create dummy textures through the CS.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Create the initial context through the CS.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Recreate ctx and dummy textures through the CS after resets.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Call create_default_sampler from create_dummy_textures.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Delete GL contexts through the CS in reset.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Delete GL contexts through the CS in uninit_3d.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Update the swap interval through the CS in reset.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Do the sampler GL init through the CS.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Create initial DCs through the CS.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Assign a read buffer when discarding a new texture.", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "wined3d: Do not query available GPU memory on main thread when CSMT is enabled.", 1 },';
printf '%s\n' '+ { "Nils Kuhnhenn", "wined3d: Fix incorrect return value in wined3d_cs_exec_set_light.", 1 },';
printf '%s\n' '+ { "Nils Kuhnhenn", "wined3d: Fix context_acquire not being called from the command thread in wined3d_texture_add_dirty_region.", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "wined3d: Do not signal CS event when we manage to unset waiting_for_event quickly enough.", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "wined3d: Fix occlusion query tests.", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "wined3d: Enable CSMT by default, print a winediag message informing about this patchset.", 1 },';
) >> "$patchlist"
fi
# Patchset winedbg-Process_Arguments
# |
# | Modified files:

View File

@ -1,55 +0,0 @@
From 9b7eec683cfb1be664542ae30e73afa6c4b258a0 Mon Sep 17 00:00:00 2001
From: Austin English <austinenglish@gmail.com>
Date: Wed, 28 Dec 2016 02:24:40 -0600
Subject: rstrtmgr: add RmShutdown stub
---
dlls/rstrtmgr/main.c | 9 +++++++++
dlls/rstrtmgr/rstrtmgr.spec | 2 +-
include/restartmanager.h | 2 ++
3 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/dlls/rstrtmgr/main.c b/dlls/rstrtmgr/main.c
index 2d45639a1b3..5c9a8dc1c63 100644
--- a/dlls/rstrtmgr/main.c
+++ b/dlls/rstrtmgr/main.c
@@ -100,3 +100,12 @@ DWORD WINAPI RmEndSession(DWORD handle)
FIXME("%u stub!\n", handle);
return ERROR_CALL_NOT_IMPLEMENTED;
}
+
+/***********************************************************************
+ * RmShutdown (rstrtmgr.@)
+ */
+DWORD WINAPI RmShutdown(DWORD handle, ULONG flags, RM_WRITE_STATUS_CALLBACK status)
+{
+ FIXME("%u, 0x%08x, %p stub!\n", handle, flags, status);
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
diff --git a/dlls/rstrtmgr/rstrtmgr.spec b/dlls/rstrtmgr/rstrtmgr.spec
index 0e1ba799057..6c6a9c96251 100644
--- a/dlls/rstrtmgr/rstrtmgr.spec
+++ b/dlls/rstrtmgr/rstrtmgr.spec
@@ -8,5 +8,5 @@
@ stub RmRemoveFilter
@ stub RmReserveHeap
@ stdcall RmRestart(long long ptr)
-@ stub RmShutdown
+@ stdcall RmShutdown(long long ptr)
@ stdcall RmStartSession(ptr long ptr)
diff --git a/include/restartmanager.h b/include/restartmanager.h
index 27c1a92f45a..9ee066d11d3 100644
--- a/include/restartmanager.h
+++ b/include/restartmanager.h
@@ -64,6 +64,8 @@ typedef struct {
BOOL bRestartable;
} RM_PROCESS_INFO, *PRM_PROCESS_INFO;
+typedef void (CDECL *RM_WRITE_STATUS_CALLBACK)(UINT);
+
#ifdef __cplusplus
}
#endif
--
2.11.0

View File

@ -1 +0,0 @@
Fixes: [42093] Add stub for rstrtmgr.RmShutdown

View File

@ -1,4 +1,4 @@
From 5c7954d9fe6f587a143c7d528351a2b75dd8d2a2 Mon Sep 17 00:00:00 2001
From 6a1701127f6f8f1c885cb787249496179a69b06b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 23 Aug 2016 22:54:14 +0200
Subject: wined3d: Create dummy 1d textures.
@ -10,10 +10,10 @@ Subject: wined3d: Create dummy 1d textures.
3 files changed, 40 insertions(+)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 394a2dc..6b7a180 100644
index cd0057e1591..a4820d337c0 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -1527,6 +1527,7 @@ void context_bind_dummy_textures(const struct wined3d_device *device, const stru
@@ -1531,6 +1531,7 @@ void context_bind_dummy_textures(const struct wined3d_device *device, const stru
GL_EXTCALL(glActiveTexture(GL_TEXTURE0 + i));
checkGLcall("glActiveTexture");
@ -21,7 +21,7 @@ index 394a2dc..6b7a180 100644
gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_2D, device->dummy_textures.tex_2d);
if (gl_info->supported[ARB_TEXTURE_RECTANGLE])
@@ -1539,7 +1540,10 @@ void context_bind_dummy_textures(const struct wined3d_device *device, const stru
@@ -1543,7 +1544,10 @@ void context_bind_dummy_textures(const struct wined3d_device *device, const stru
gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_CUBE_MAP, device->dummy_textures.tex_cube);
if (gl_info->supported[EXT_TEXTURE_ARRAY])
@ -30,9 +30,9 @@ index 394a2dc..6b7a180 100644
gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_2D_ARRAY, device->dummy_textures.tex_2d_array);
+ }
checkGLcall("Bind dummy textures");
}
@@ -2405,6 +2409,14 @@ void context_bind_texture(struct wined3d_context *context, GLenum target, GLuint
if (gl_info->supported[ARB_TEXTURE_BUFFER_OBJECT])
gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_BUFFER, device->dummy_textures.tex_buffer);
@@ -2426,6 +2430,14 @@ void context_bind_texture(struct wined3d_context *context, GLenum target, GLuint
case GL_NONE:
/* nothing to do */
break;
@ -48,10 +48,10 @@ index 394a2dc..6b7a180 100644
gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_2D, device->dummy_textures.tex_2d);
checkGLcall("glBindTexture");
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index de6d5a4..5636300 100644
index 7898527f6c0..b5a42905d33 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -698,6 +698,17 @@ static void create_dummy_textures(struct wined3d_device *device, struct wined3d_
@@ -624,6 +624,17 @@ static void create_dummy_textures(struct wined3d_device *device, struct wined3d_
* to each texture stage when the currently set D3D texture is NULL. */
context_active_texture(context, gl_info, 0);
@ -69,7 +69,7 @@ index de6d5a4..5636300 100644
gl_info->gl_ops.gl.p_glGenTextures(1, &device->dummy_textures.tex_2d);
checkGLcall("glGenTextures");
TRACE("Dummy 2D texture given name %u.\n", device->dummy_textures.tex_2d);
@@ -756,6 +767,17 @@ static void create_dummy_textures(struct wined3d_device *device, struct wined3d_
@@ -682,6 +693,17 @@ static void create_dummy_textures(struct wined3d_device *device, struct wined3d_
if (gl_info->supported[EXT_TEXTURE_ARRAY])
{
@ -87,8 +87,8 @@ index de6d5a4..5636300 100644
gl_info->gl_ops.gl.p_glGenTextures(1, &device->dummy_textures.tex_2d_array);
checkGLcall("glGenTextures");
TRACE("Dummy 2D array texture given name %u.\n", device->dummy_textures.tex_2d_array);
@@ -777,7 +799,10 @@ static void destroy_dummy_textures(struct wined3d_device *device, struct wined3d
const struct wined3d_gl_info *gl_info = context->gl_info;
@@ -729,7 +751,10 @@ static void destroy_dummy_textures(struct wined3d_device *device, struct wined3d
gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->dummy_textures.tex_buffer);
if (gl_info->supported[EXT_TEXTURE_ARRAY])
+ {
@ -98,7 +98,7 @@ index de6d5a4..5636300 100644
if (gl_info->supported[ARB_TEXTURE_CUBE_MAP])
gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->dummy_textures.tex_cube);
@@ -789,6 +814,7 @@ static void destroy_dummy_textures(struct wined3d_device *device, struct wined3d
@@ -741,6 +766,7 @@ static void destroy_dummy_textures(struct wined3d_device *device, struct wined3d
gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->dummy_textures.tex_rect);
gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->dummy_textures.tex_2d);
@ -107,10 +107,10 @@ index de6d5a4..5636300 100644
checkGLcall("Delete dummy textures");
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 3887f91..bd5c1b6 100644
index 051836c7414..a71ea9e73ef 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2491,10 +2491,12 @@ struct wined3d_device
@@ -2582,10 +2582,12 @@ struct wined3d_device
/* Textures for when no other textures are mapped */
struct
{
@ -121,8 +121,8 @@ index 3887f91..bd5c1b6 100644
GLuint tex_cube;
+ GLuint tex_1d_array;
GLuint tex_2d_array;
GLuint tex_buffer;
} dummy_textures;
--
2.9.0
2.11.0

View File

@ -5,6 +5,7 @@ Fixes: [11674] Support for CSMT (command stream) to increase graphic performance
Apply-After: dlls/wined3d/*
Depends: wined3d-CSMT_Helper
IfDefined: STAGING_CSMT
Disabled: true
# Known issues:
# https://bugs.wine-staging.com/buglist.cgi?component=Bugs&keywords=csmt%2C%20&keywords_type=allwords&list_id=3690&query_format=advanced&resolution=---