mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Rebase against ead7e637c0d18760acd446d686ad18526e76e0f0
This commit is contained in:
parent
461bcc1e5f
commit
3e32c05e8f
@ -1,18 +1,18 @@
|
||||
From bcb51e3caed3cb8c5bc6ed90b3c53f9d9175e1e9 Mon Sep 17 00:00:00 2001
|
||||
From 4183758f3b4ae2322c807411b5f059cbea177e20 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 4 Feb 2017 16:20:37 +0100
|
||||
Subject: [PATCH] kernel32: Implement some processor group functions.
|
||||
|
||||
---
|
||||
.../api-ms-win-core-kernel32-legacy-l1-1-0.spec | 2 +-
|
||||
dlls/kernel32/cpu.c | 45 ++++++++++++++++++----
|
||||
dlls/kernel32/kernel32.spec | 4 +-
|
||||
dlls/kernel32/tests/process.c | 23 +++++++++++
|
||||
include/winnt.h | 2 +
|
||||
5 files changed, 66 insertions(+), 10 deletions(-)
|
||||
...pi-ms-win-core-kernel32-legacy-l1-1-0.spec | 2 +-
|
||||
dlls/kernel32/cpu.c | 28 ++++++++++++++-----
|
||||
dlls/kernel32/kernel32.spec | 2 +-
|
||||
dlls/kernel32/tests/process.c | 23 +++++++++++++++
|
||||
include/winnt.h | 2 ++
|
||||
5 files changed, 48 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec b/dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec
|
||||
index e653ac6..b6af37a 100644
|
||||
index e653ac6d21..b6af37ab0a 100644
|
||||
--- a/dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec
|
||||
+++ b/dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec
|
||||
@@ -21,7 +21,7 @@
|
||||
@ -25,10 +25,10 @@ index e653ac6..b6af37a 100644
|
||||
@ stdcall GetNamedPipeServerProcessId(long ptr) kernel32.GetNamedPipeServerProcessId
|
||||
@ stdcall GetShortPathNameA(str ptr long) kernel32.GetShortPathNameA
|
||||
diff --git a/dlls/kernel32/cpu.c b/dlls/kernel32/cpu.c
|
||||
index 5be6201..757853a 100644
|
||||
index 89482a65e1..ffb88e313c 100644
|
||||
--- a/dlls/kernel32/cpu.c
|
||||
+++ b/dlls/kernel32/cpu.c
|
||||
@@ -291,7 +291,9 @@ SIZE_T WINAPI GetLargePageMinimum(void)
|
||||
@@ -309,7 +309,9 @@ SIZE_T WINAPI GetLargePageMinimum(void)
|
||||
*/
|
||||
WORD WINAPI GetActiveProcessorGroupCount(void)
|
||||
{
|
||||
@ -39,20 +39,24 @@ index 5be6201..757853a 100644
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -300,14 +302,43 @@ WORD WINAPI GetActiveProcessorGroupCount(void)
|
||||
@@ -318,14 +320,26 @@ WORD WINAPI GetActiveProcessorGroupCount(void)
|
||||
*/
|
||||
DWORD WINAPI GetActiveProcessorCount(WORD group)
|
||||
{
|
||||
- SYSTEM_INFO si;
|
||||
- DWORD cpus;
|
||||
+ TRACE("(%u)\n", group);
|
||||
+
|
||||
|
||||
- GetSystemInfo( &si );
|
||||
- cpus = si.dwNumberOfProcessors;
|
||||
+ if (group && group != ALL_PROCESSOR_GROUPS)
|
||||
+ {
|
||||
+ SetLastError(ERROR_INVALID_PARAMETER);
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
|
||||
- FIXME("semi-stub, returning %u\n", cpus);
|
||||
- return cpus;
|
||||
+ return system_info.NumberOfProcessors;
|
||||
+}
|
||||
+
|
||||
@ -62,50 +66,27 @@ index 5be6201..757853a 100644
|
||||
+WORD WINAPI GetMaximumProcessorGroupCount(void)
|
||||
+{
|
||||
+ TRACE("()\n");
|
||||
|
||||
- GetSystemInfo( &si );
|
||||
- cpus = si.dwNumberOfProcessors;
|
||||
+
|
||||
+ /* systems with less than 64 logical processors only have group 0 */
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+/***********************************************************************
|
||||
+ * GetMaximumProcessorCount (KERNEL32.@)
|
||||
+ */
|
||||
+DWORD WINAPI GetMaximumProcessorCount(WORD group)
|
||||
+{
|
||||
+ TRACE("(%u)\n", group);
|
||||
+
|
||||
+ if (group && group != ALL_PROCESSOR_GROUPS)
|
||||
+ {
|
||||
+ SetLastError(ERROR_INVALID_PARAMETER);
|
||||
+ return 0;
|
||||
+ }
|
||||
|
||||
- FIXME("semi-stub, returning %u\n", cpus);
|
||||
- return cpus;
|
||||
+ /* Wine only counts active processors so far */
|
||||
+ return system_info.NumberOfProcessors;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
|
||||
index e4a9e46..eb91df2 100644
|
||||
index 5490b07d8e..899aa55d76 100644
|
||||
--- a/dlls/kernel32/kernel32.spec
|
||||
+++ b/dlls/kernel32/kernel32.spec
|
||||
@@ -716,8 +716,8 @@
|
||||
# @ stub GetLongPathNameTransactedW
|
||||
@@ -716,7 +716,7 @@
|
||||
@ stdcall GetLongPathNameW (wstr long long)
|
||||
@ stdcall GetMailslotInfo(long ptr ptr ptr ptr)
|
||||
-# @ stub GetMaximumProcessorCount
|
||||
@ stdcall GetMaximumProcessorCount(long)
|
||||
-# @ stub GetMaximumProcessorGroupCount
|
||||
+@ stdcall GetMaximumProcessorCount(long)
|
||||
+@ stdcall GetMaximumProcessorGroupCount()
|
||||
@ stdcall GetModuleFileNameA(long ptr long)
|
||||
@ stdcall GetModuleFileNameW(long ptr long)
|
||||
@ stdcall GetModuleHandleA(str)
|
||||
diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c
|
||||
index 5324894..6dd6f03 100644
|
||||
index fe68d28e91..dc26549b67 100644
|
||||
--- a/dlls/kernel32/tests/process.c
|
||||
+++ b/dlls/kernel32/tests/process.c
|
||||
@@ -91,6 +91,7 @@ static SIZE_T (WINAPI *pGetLargePageMinimum)(void);
|
||||
@ -124,7 +105,7 @@ index 5324894..6dd6f03 100644
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -3872,6 +3874,26 @@ static void test_ProcThreadAttributeList(void)
|
||||
@@ -3784,6 +3786,26 @@ static void test_ProcThreadAttributeList(void)
|
||||
pDeleteProcThreadAttributeList(&list);
|
||||
}
|
||||
|
||||
@ -151,7 +132,7 @@ index 5324894..6dd6f03 100644
|
||||
START_TEST(process)
|
||||
{
|
||||
HANDLE job;
|
||||
@@ -3946,6 +3968,7 @@ START_TEST(process)
|
||||
@@ -3868,6 +3890,7 @@ START_TEST(process)
|
||||
test_GetNumaProcessorNode();
|
||||
test_session_info();
|
||||
test_GetLogicalProcessorInformationEx();
|
||||
@ -160,10 +141,10 @@ index 5324894..6dd6f03 100644
|
||||
test_ProcThreadAttributeList();
|
||||
test_SuspendProcessState();
|
||||
diff --git a/include/winnt.h b/include/winnt.h
|
||||
index b8bab01..a54de27 100644
|
||||
index 035d5bd097..07e7c7bb60 100644
|
||||
--- a/include/winnt.h
|
||||
+++ b/include/winnt.h
|
||||
@@ -5972,6 +5972,8 @@ typedef struct _GROUP_AFFINITY
|
||||
@@ -6093,6 +6093,8 @@ typedef struct _GROUP_AFFINITY
|
||||
WORD Reserved[3];
|
||||
} GROUP_AFFINITY, *PGROUP_AFFINITY;
|
||||
|
||||
@ -173,5 +154,5 @@ index b8bab01..a54de27 100644
|
||||
{
|
||||
WORD Group;
|
||||
--
|
||||
1.9.1
|
||||
2.19.1
|
||||
|
||||
|
@ -1,145 +0,0 @@
|
||||
From fcc683802ce5c7dac4127339fb2d3a6675ee87ff Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Thu, 19 Jan 2017 11:48:24 +0800
|
||||
Subject: oleaut32: Fix calling function with instance and VARIANT return type.
|
||||
(v2)
|
||||
|
||||
---
|
||||
dlls/oleaut32/tests/typelib.c | 59 +++++++++++++++++++++++++++++++++++++++++--
|
||||
dlls/oleaut32/typelib.c | 26 ++++++++++++++++---
|
||||
2 files changed, 79 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dlls/oleaut32/tests/typelib.c b/dlls/oleaut32/tests/typelib.c
|
||||
index 6d0585a9cee..8f1b9d56fd1 100644
|
||||
--- a/dlls/oleaut32/tests/typelib.c
|
||||
+++ b/dlls/oleaut32/tests/typelib.c
|
||||
@@ -1084,11 +1084,41 @@ static HRESULT WINAPI ret_false_func(void)
|
||||
return S_FALSE;
|
||||
}
|
||||
|
||||
-static const void *vtable[] = { NULL, NULL, NULL, inst_func };
|
||||
+static const WCHAR testW[] = { 'T','e','s','t',0 };
|
||||
+
|
||||
+static void WINAPI variant_func2(VARIANT *ret, VARIANT v1, VARIANT v2)
|
||||
+{
|
||||
+ ok(V_VT(&v1) == VT_I4, "unexpected %d\n", V_VT(&v1));
|
||||
+ ok(V_I4(&v1) == 2, "unexpected %d\n", V_I4(&v1));
|
||||
+ ok(V_VT(&v2) == VT_BSTR, "unexpected %d\n", V_VT(&v2));
|
||||
+ ok(lstrcmpW(V_BSTR(&v2), testW) == 0, "unexpected %s\n", wine_dbgstr_w(V_BSTR(&v2)));
|
||||
+
|
||||
+ V_VT(ret) = VT_UI4;
|
||||
+ V_I4(ret) = 4321;
|
||||
+}
|
||||
+
|
||||
+static void WINAPI inst_func2(void *inst, VARIANT *ret, VARIANT v1, VARIANT v2)
|
||||
+{
|
||||
+ ok( (*(void ***)inst)[3] == inst_func2, "wrong ptr %p\n", inst );
|
||||
+
|
||||
+ ok(V_VT(ret) == VT_I4 || broken(V_VT(ret) == VT_VARIANT) /* win64 */, "unexpected %d\n", V_VT(ret));
|
||||
+ ok(V_I4(ret) == 1234, "unexpected %d\n", V_I4(ret));
|
||||
+
|
||||
+ ok(V_VT(&v1) == VT_I4, "unexpected %d\n", V_VT(&v1));
|
||||
+ ok(V_I4(&v1) == 2, "unexpected %d\n", V_I4(&v1));
|
||||
+ ok(V_VT(&v2) == VT_BSTR, "unexpected %d\n", V_VT(&v2));
|
||||
+ ok(lstrcmpW(V_BSTR(&v2), testW) == 0, "unexpected %s\n", wine_dbgstr_w(V_BSTR(&v2)));
|
||||
+
|
||||
+ V_VT(ret) = VT_UI4;
|
||||
+ V_I4(ret) = 4321;
|
||||
+}
|
||||
+
|
||||
+static void *vtable[] = { NULL, NULL, NULL, inst_func };
|
||||
+static void *vtable2[] = { NULL, NULL, NULL, inst_func2 };
|
||||
|
||||
static void test_DispCallFunc(void)
|
||||
{
|
||||
- const void **inst = vtable;
|
||||
+ void **inst;
|
||||
HRESULT res;
|
||||
VARIANT result, args[5];
|
||||
VARIANTARG *pargs[5];
|
||||
@@ -1098,6 +1128,30 @@ static void test_DispCallFunc(void)
|
||||
for (i = 0; i < 5; i++) pargs[i] = &args[i];
|
||||
|
||||
memset( args, 0x55, sizeof(args) );
|
||||
+
|
||||
+ types[0] = VT_VARIANT;
|
||||
+ V_VT(&args[0]) = VT_I4;
|
||||
+ V_I4(&args[0]) = 2;
|
||||
+ types[1] = VT_VARIANT;
|
||||
+ V_VT(&args[1]) = VT_BSTR;
|
||||
+ V_BSTR(&args[1]) = SysAllocString(testW);
|
||||
+ memset( &result, 0xcc, sizeof(result) );
|
||||
+ res = DispCallFunc(NULL, (ULONG_PTR)variant_func2, CC_STDCALL, VT_VARIANT, 2, types, pargs, &result);
|
||||
+ ok(res == S_OK, "DispCallFunc error %#x\n", res);
|
||||
+ ok(V_VT(&result) == VT_UI4, "wrong result type %d\n", V_VT(&result));
|
||||
+ ok(V_UI4(&result) == 4321, "wrong result %u\n", V_UI4(&result));
|
||||
+
|
||||
+ V_VT(&result) = VT_I4;
|
||||
+ V_UI4(&result) = 1234;
|
||||
+ inst = vtable2;
|
||||
+ res = DispCallFunc(&inst, 3 * sizeof(void *), CC_STDCALL, VT_VARIANT, 2, types, pargs, &result);
|
||||
+ ok(res == S_OK, "DispCallFunc error %#x\n", res);
|
||||
+ ok(V_VT(&result) == VT_UI4, "wrong result type %d\n", V_VT(&result));
|
||||
+ ok(V_UI4(&result) == 4321, "wrong result %u\n", V_UI4(&result));
|
||||
+
|
||||
+ VariantClear(&args[1]);
|
||||
+
|
||||
+ memset( args, 0x55, sizeof(args) );
|
||||
types[0] = VT_UI4;
|
||||
V_UI4(&args[0]) = 1;
|
||||
types[1] = VT_I4;
|
||||
@@ -1195,6 +1249,7 @@ static void test_DispCallFunc(void)
|
||||
types[0] = VT_I4;
|
||||
V_I4(&args[0]) = 3;
|
||||
memset( &result, 0xcc, sizeof(result) );
|
||||
+ inst = vtable;
|
||||
res = DispCallFunc( &inst, 3 * sizeof(void*), CC_STDCALL, VT_I4, 1, types, pargs, &result );
|
||||
ok( res == S_OK, "DispCallFunc failed %x\n", res );
|
||||
ok( V_VT(&result) == VT_I4, "wrong result type %d\n", V_VT(&result) );
|
||||
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
|
||||
index ef2cb04ee3c..f2fd16be718 100644
|
||||
--- a/dlls/oleaut32/typelib.c
|
||||
+++ b/dlls/oleaut32/typelib.c
|
||||
@@ -6882,8 +6882,17 @@ DispCallFunc(
|
||||
break;
|
||||
case VT_DECIMAL:
|
||||
case VT_VARIANT:
|
||||
- args[0] = (DWORD)pvargResult; /* arg 0 is a pointer to the result */
|
||||
- call_method( func, argspos, args, &stack_offset );
|
||||
+ if (pvInstance)
|
||||
+ {
|
||||
+ args[0] = (DWORD)pvInstance; /* arg 0 is a pointer to the instance */
|
||||
+ args[1] = (DWORD)pvargResult; /* arg 1 is a pointer to the result */
|
||||
+ call_method( func, argspos, args, &stack_offset );
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ args[0] = (DWORD)pvargResult; /* arg 0 is a pointer to the result */
|
||||
+ call_method( func, argspos, args, &stack_offset );
|
||||
+ }
|
||||
break;
|
||||
case VT_I8:
|
||||
case VT_UI8:
|
||||
@@ -6968,8 +6977,17 @@ DispCallFunc(
|
||||
break;
|
||||
case VT_DECIMAL:
|
||||
case VT_VARIANT:
|
||||
- args[0] = (DWORD_PTR)pvargResult; /* arg 0 is a pointer to the result */
|
||||
- call_method( func, argspos, args );
|
||||
+ if (pvInstance)
|
||||
+ {
|
||||
+ args[0] = (DWORD_PTR)pvInstance; /* arg 0 is a pointer to the instance */
|
||||
+ args[1] = (DWORD_PTR)pvargResult; /* arg 1 is a pointer to the result */
|
||||
+ call_method( func, argspos, args );
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ args[0] = (DWORD_PTR)pvargResult; /* arg 0 is a pointer to the result */
|
||||
+ call_method( func, argspos, args );
|
||||
+ }
|
||||
break;
|
||||
case VT_HRESULT:
|
||||
WARN("invalid return type %u\n", vtReturn);
|
||||
--
|
||||
2.11.0
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [40160] Fix calling function with instance and VARIANT return type in DispCallFunc
|
@ -52,7 +52,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "ebae298aa4d2711fef35d4ac60c6012438f36d61"
|
||||
echo "ead7e637c0d18760acd446d686ad18526e76e0f0"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -250,7 +250,6 @@ patch_enable_all ()
|
||||
enable_ole32_HGLOBALStream="$1"
|
||||
enable_ole32_STGPROP="$1"
|
||||
enable_oleaut32_CreateTypeLib="$1"
|
||||
enable_oleaut32_DispCallFunc="$1"
|
||||
enable_oleaut32_ITypeInfo_fnInvoke="$1"
|
||||
enable_oleaut32_Load_Save_EMF="$1"
|
||||
enable_oleaut32_OLEPictureImpl_SaveAsFile="$1"
|
||||
@ -917,9 +916,6 @@ patch_enable ()
|
||||
oleaut32-CreateTypeLib)
|
||||
enable_oleaut32_CreateTypeLib="$2"
|
||||
;;
|
||||
oleaut32-DispCallFunc)
|
||||
enable_oleaut32_DispCallFunc="$2"
|
||||
;;
|
||||
oleaut32-ITypeInfo_fnInvoke)
|
||||
enable_oleaut32_ITypeInfo_fnInvoke="$2"
|
||||
;;
|
||||
@ -2427,7 +2423,7 @@ fi
|
||||
# | Modified files:
|
||||
# | * dlls/advapi32/advapi32.spec, dlls/advapi32/registry.c, dlls/api-ms-win-core-registry-l1-1-0/api-ms-win-core-
|
||||
# | registry-l1-1-0.spec, dlls/api-ms-win-downlevel-advapi32-l1-1-0/api-ms-win-downlevel-advapi32-l1-1-0.spec,
|
||||
# | dlls/kernelbase/kernelbase.spec
|
||||
# | dlls/kernelbase/kernelbase.spec, include/winreg.h
|
||||
# |
|
||||
if test "$enable_advapi32_RegLoadAppKey" -eq 1; then
|
||||
patch_apply advapi32-RegLoadAppKey/0001-advapi32-Add-RegLoadAppKeyA-RegLoadAppKeyW-stubs.patch
|
||||
@ -5410,21 +5406,6 @@ if test "$enable_oleaut32_CreateTypeLib" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset oleaut32-DispCallFunc
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#40160] Fix calling function with instance and VARIANT return type in DispCallFunc
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/oleaut32/tests/typelib.c, dlls/oleaut32/typelib.c
|
||||
# |
|
||||
if test "$enable_oleaut32_DispCallFunc" -eq 1; then
|
||||
patch_apply oleaut32-DispCallFunc/0001-oleaut32-Fix-calling-function-with-instance-and-VARI.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Dmitry Timoshkov", "oleaut32: Fix calling function with instance and VARIANT return type.", 2 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset oleaut32-ITypeInfo_fnInvoke
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -7325,14 +7306,12 @@ fi
|
||||
# | wined3d-UAV_Counters
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/wined3d/cs.c, dlls/wined3d/device.c, dlls/wined3d/view.c, dlls/wined3d/wined3d_private.h
|
||||
# | * dlls/wined3d/cs.c, dlls/wined3d/device.c, dlls/wined3d/wined3d_private.h
|
||||
# |
|
||||
if test "$enable_wined3d_CSMT_Main" -eq 1; then
|
||||
patch_apply wined3d-CSMT_Main/0001-wined3d-Add-additional-synchronization-CS-ops.patch
|
||||
patch_apply wined3d-CSMT_Main/0042-wined3d-Reset-context-before-destruction.patch
|
||||
patch_apply wined3d-CSMT_Main/0045-wined3d-Improve-wined3d_cs_emit_update_sub_resource.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Sebastian Lackner", "wined3d: Add additional synchronization CS ops.", 1 },';
|
||||
printf '%s\n' '+ { "Sebastian Lackner", "wined3d: Reset context before destruction.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "wined3d: Improve wined3d_cs_emit_update_sub_resource.", 1 },';
|
||||
) >> "$patchlist"
|
||||
|
@ -1,18 +1,18 @@
|
||||
From 6599895d37972742aa9a5709972af934e9c0800f Mon Sep 17 00:00:00 2001
|
||||
From 11fa0f222539e2dedaed99783ad6af4577eae250 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Fri, 18 Aug 2017 12:17:52 +0800
|
||||
Subject: [PATCH] windowscodecs: Move JPEG frame image data initialization from
|
||||
Frame::CopyPixels to Decoder::Initialize. (v2)
|
||||
Subject: [PATCH 714/851] windowscodecs: Move JPEG frame image data
|
||||
initialization from Frame::CopyPixels to Decoder::Initialize. (v2)
|
||||
|
||||
This is how PNG decoder does things, and it avoids image data corruption
|
||||
in some cases (presumably when libjpeg reuses existing scanline data).
|
||||
---
|
||||
dlls/windowscodecs/converter.c | 1 +
|
||||
dlls/windowscodecs/jpegformat.c | 152 +++++++++++++++-------------------------
|
||||
dlls/windowscodecs/jpegformat.c | 152 ++++++++++++--------------------
|
||||
2 files changed, 57 insertions(+), 96 deletions(-)
|
||||
|
||||
diff --git a/dlls/windowscodecs/converter.c b/dlls/windowscodecs/converter.c
|
||||
index 42ba260..ad2b3de 100644
|
||||
index d23c26250c..39c926c5ca 100644
|
||||
--- a/dlls/windowscodecs/converter.c
|
||||
+++ b/dlls/windowscodecs/converter.c
|
||||
@@ -30,6 +30,7 @@
|
||||
@ -24,7 +24,7 @@ index 42ba260..ad2b3de 100644
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(wincodecs);
|
||||
diff --git a/dlls/windowscodecs/jpegformat.c b/dlls/windowscodecs/jpegformat.c
|
||||
index 27cd880..1feff69 100644
|
||||
index c846e6191c..3fb52661a8 100644
|
||||
--- a/dlls/windowscodecs/jpegformat.c
|
||||
+++ b/dlls/windowscodecs/jpegformat.c
|
||||
@@ -50,6 +50,7 @@
|
||||
@ -108,7 +108,7 @@ index 27cd880..1feff69 100644
|
||||
This->initialized = TRUE;
|
||||
|
||||
LeaveCriticalSection(&This->lock);
|
||||
@@ -597,104 +650,11 @@ static HRESULT WINAPI JpegDecoder_Frame_CopyPixels(IWICBitmapFrameDecode *iface,
|
||||
@@ -590,104 +643,11 @@ static HRESULT WINAPI JpegDecoder_Frame_CopyPixels(IWICBitmapFrameDecode *iface,
|
||||
const WICRect *prc, UINT cbStride, UINT cbBufferSize, BYTE *pbBuffer)
|
||||
{
|
||||
JpegDecoder *This = impl_from_IWICBitmapFrameDecode(iface);
|
||||
@ -118,7 +118,7 @@ index 27cd880..1feff69 100644
|
||||
- UINT max_row_needed;
|
||||
- jmp_buf jmpbuf;
|
||||
- WICRect rect;
|
||||
- TRACE("(%p,%p,%u,%u,%p)\n", iface, prc, cbStride, cbBufferSize, pbBuffer);
|
||||
- TRACE("(%p,%s,%u,%u,%p)\n", iface, debug_wic_rect(prc), cbStride, cbBufferSize, pbBuffer);
|
||||
-
|
||||
- if (!prc)
|
||||
- {
|
||||
@ -207,7 +207,7 @@ index 27cd880..1feff69 100644
|
||||
- }
|
||||
-
|
||||
- LeaveCriticalSection(&This->lock);
|
||||
+ TRACE("(%p,%p,%u,%u,%p)\n", iface, prc, cbStride, cbBufferSize, pbBuffer);
|
||||
+ TRACE("(%p,%s,%u,%u,%p)\n", iface, debug_wic_rect(prc), cbStride, cbBufferSize, pbBuffer);
|
||||
|
||||
- return copy_pixels(bpp, This->image_data,
|
||||
- This->cinfo.output_width, This->cinfo.output_height, stride,
|
||||
@ -217,5 +217,5 @@ index 27cd880..1feff69 100644
|
||||
}
|
||||
|
||||
--
|
||||
1.9.1
|
||||
2.19.1
|
||||
|
||||
|
@ -1,50 +0,0 @@
|
||||
From 61838c8fd1fd47dbbe71c74946b652aa441b7e91 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 19 Feb 2017 00:57:12 +0100
|
||||
Subject: [PATCH] wined3d: Add additional synchronization CS ops.
|
||||
|
||||
---
|
||||
dlls/wined3d/view.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c
|
||||
index 59a30ead..f4327373 100644
|
||||
--- a/dlls/wined3d/view.c
|
||||
+++ b/dlls/wined3d/view.c
|
||||
@@ -775,6 +775,8 @@ static void wined3d_shader_resource_view_cs_init(void *object)
|
||||
debug_d3dformat(resource->format->id), debug_d3dformat(view_format->id));
|
||||
}
|
||||
}
|
||||
+
|
||||
+ wined3d_resource_release(resource);
|
||||
}
|
||||
|
||||
static HRESULT wined3d_shader_resource_view_init(struct wined3d_shader_resource_view *view,
|
||||
@@ -791,6 +793,7 @@ static HRESULT wined3d_shader_resource_view_init(struct wined3d_shader_resource_
|
||||
|
||||
wined3d_resource_incref(view->resource = resource);
|
||||
|
||||
+ wined3d_resource_acquire(resource);
|
||||
wined3d_cs_init_object(resource->device->cs, wined3d_shader_resource_view_cs_init, view);
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -1145,6 +1148,8 @@ static void wined3d_unordered_access_view_cs_init(void *object)
|
||||
desc, texture_gl, view->format);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ wined3d_resource_release(resource);
|
||||
}
|
||||
|
||||
static HRESULT wined3d_unordered_access_view_init(struct wined3d_unordered_access_view *view,
|
||||
@@ -1161,6 +1166,7 @@ static HRESULT wined3d_unordered_access_view_init(struct wined3d_unordered_acces
|
||||
|
||||
wined3d_resource_incref(view->resource = resource);
|
||||
|
||||
+ wined3d_resource_acquire(resource);
|
||||
wined3d_cs_init_object(resource->device->cs, wined3d_unordered_access_view_cs_init, view);
|
||||
|
||||
return WINED3D_OK;
|
||||
--
|
||||
2.19.1
|
||||
|
Loading…
Reference in New Issue
Block a user