Compare commits

...

75 Commits

Author SHA1 Message Date
Sebastian Lackner
26a06cd63b Release 2.0. 2017-01-25 06:34:02 +01:00
Sebastian Lackner
9ffe3e0eb6 crypt32-SHA_OIDs: Update Fixes line. 2017-01-24 20:13:51 +01:00
Sebastian Lackner
ac69f4b5df Added patch to fix alpha blending in X11DRV_UpdateLayeredWindow. 2017-01-24 14:48:06 +01:00
Sebastian Lackner
93fc292115 Added patch to replace Peb->BeingDebugged check by CheckRemoteDebuggerPresent. 2017-01-24 13:10:56 +01:00
Sebastian Lackner
b6f7d83896 d3d11-Deferred_Context: Update patchset. 2017-01-24 11:53:57 +01:00
Sebastian Lackner
fa1d5938f2 Added patch to recognize sha256/384/512 KEY OIDs. 2017-01-24 05:04:18 +01:00
Sebastian Lackner
f93bdfd5fb Added patch to implement support for 32bppRGB, 32bppRGBA and 32bppPRGBA in format converter. 2017-01-24 04:45:15 +01:00
Sebastian Lackner
cb587975ef Added patch to implement DXGI GammaControl methods. 2017-01-24 03:52:53 +01:00
Sebastian Lackner
819d0a394b patchupdate.py: Remove support for patch categories. 2017-01-23 21:30:25 +01:00
Sebastian Lackner
bf7d655c80 Added patch for ProfileImagePath registry key with users profile directory. 2017-01-23 08:44:17 +01:00
Sebastian Lackner
428f6a06ad Added patch to implement some more wined3d blend modes. 2017-01-22 16:36:35 +01:00
Sebastian Lackner
b22ec60228 Release 2.0-rc6. 2017-01-22 04:54:28 +01:00
Sebastian Lackner
15a75851db ntdll-_aulldvrm: Add missing ntoskrnl forwards. 2017-01-22 04:20:55 +01:00
Sebastian Lackner
5cd91c5928 Added patch to implement stub for QUERY_TYPE_PIPELINE_STATISTICS. 2017-01-22 02:51:58 +01:00
Sebastian Lackner
5e623ee4d9 Added patch to implement semi-stub for d3d11 context ResolveSubresource method. 2017-01-21 23:56:59 +01:00
Sebastian Lackner
2677244e40 Added patch to fix crash when trying to rendering without render target. 2017-01-21 23:30:12 +01:00
Sebastian Lackner
65a5de8630 Added patch to implement ntdll._aulldvrm. 2017-01-21 22:56:05 +01:00
Sebastian Lackner
b2341b8d08 Added patch to fix ordinal number of winmm.PlaySoundA. 2017-01-21 21:21:20 +01:00
Sebastian Lackner
c4de5ab774 winecfg-Staging: Add ' (Staging)' suffix in about dialog. 2017-01-21 21:17:51 +01:00
Sebastian Lackner
f3854126b1 Added patch to print process arguments in winedbg backtraces. 2017-01-21 20:20:13 +01:00
Sebastian Lackner
c40429f3c9 Added patch with multiple fixes for ole32 property storage. 2017-01-21 19:24:12 +01:00
Sebastian Lackner
d1af5f06fa ddraw-FlipToGDISurface: Update patchset and missing NULL pointer check. 2017-01-20 20:49:08 +01:00
Sebastian Lackner
af5ec899c3 winex11-MWM_Decorations: Update patchset. 2017-01-20 20:34:06 +01:00
Sebastian Lackner
3c781f3862 Added patch to implement semi-stubs for D3D11 deferred context. 2017-01-20 17:22:51 +01:00
Sebastian Lackner
7257898858 Added patch to fix DrawIndexedPrimitiveUP with non-zero min_vertex_idx. 2017-01-20 07:53:43 +01:00
Sebastian Lackner
3ad216bb25 patchutils.py: Fix Python 3 compatibility. 2017-01-20 05:00:18 +01:00
Sebastian Lackner
32823d7014 Rebase against 3ba2b5898cf9c78f81afc1fd620e5046a3392be0. 2017-01-20 04:58:12 +01:00
Sebastian Lackner
efca1a6845 patchutils.py: Generate more compact autogenerated patches. 2017-01-20 02:00:52 +01:00
Sebastian Lackner
76177e1da2 Added patch to relax dwSize validation ddraw_surface*_Lock. 2017-01-19 15:46:19 +01:00
Sebastian Lackner
dbaede0fc8 dxva2-Video_Decoder: Fixes for Makefile.in. 2017-01-19 11:57:31 +01:00
Sebastian Lackner
5353b4a5a4 widl-SLTG_Typelib_Support: Fixes for Makefile.in. 2017-01-19 11:37:50 +01:00
Sebastian Lackner
910abaa327 nvcuda-CUDA_Support: Fixes for Makefile.in. 2017-01-19 11:32:46 +01:00
Sebastian Lackner
6db72e951e bcrypt-Improvements: Add missing ncrypt forwards. 2017-01-19 11:02:48 +01:00
Sebastian Lackner
b9514dd7b0 patchinstall.sh: Further replacements echo -> printf.
Also remove a broken link.
2017-01-19 10:21:47 +01:00
Sebastian Lackner
76a233502e patchupdate.py: Use printf instead of echo to workaround bash/dash incompatibilities. 2017-01-19 09:15:23 +01:00
Sebastian Lackner
c0993595fe Added patch to implement msvcrt.nan functions. 2017-01-19 07:29:21 +01:00
Sebastian Lackner
49ba202882 Added patch to fix return type of shlwapi.SHAddDataBlock.
Also fixes parsing of multiline From: headers in staging/patchutils.py.
2017-01-19 07:17:02 +01:00
Sebastian Lackner
80a4e6bdd7 Added patch to fix calling function with instance and VARIANT return type in DispCallFunc. 2017-01-19 06:09:18 +01:00
Sebastian Lackner
0c4032f598 Rebase against 274a82b33c2907a2d28a50ba6919711cfabf1b20. 2017-01-18 23:41:07 +01:00
Sebastian Lackner
96bce84236 Added patch to fix API signature of ntdll.NtAllocateUuids. 2017-01-18 23:27:48 +01:00
Sebastian Lackner
e0e48313df vulkan-Vulkan_Implementation: Do not use conversion for ignored fields. 2017-01-18 20:56:21 +01:00
Sebastian Lackner
105afd2146 iphlpapi-TCP_Table: Fix a test failure. 2017-01-18 17:45:06 +01:00
Sebastian Lackner
966293c5d3 Rebase against b510dccecbfe80c26b030b78b903b38350d41012. 2017-01-18 16:52:22 +01:00
Sebastian Lackner
b19d0ea3ca Rebase against c3e6ecde36692d03dc360200c7a7044a02c4a392. 2017-01-16 23:23:59 +01:00
Sebastian Lackner
e745798070 ntdll-Grow_Virtual_Heap: Never attempt to release or decommit memory of a subheap.
This fixes a possible memory leak.
2017-01-16 05:01:38 +01:00
Sebastian Lackner
bb54734bd3 user32-Auto_Radio_Button: Add a missing Fixes line. 2017-01-16 02:34:33 +01:00
Sebastian Lackner
12d8b79c63 Release 2.0-rc5. 2017-01-15 23:26:44 +01:00
Sebastian Lackner
986a011548 Added patch to avoid duplicate definition of REFERENCE_TIME. 2017-01-15 22:56:27 +01:00
Sebastian Lackner
2c08a980e8 Added patch to check if any 16 bit thunks have been allocated before accessing pointer. 2017-01-15 19:18:02 +01:00
Sebastian Lackner
9686fe6647 Added patch to remove memory limitation to 32GB on 64-bit by growing heap dynamically. 2017-01-15 18:56:52 +01:00
Sebastian Lackner
b013afa660 Added patch with stub for rstrtmgr.RmShutdown. 2017-01-15 16:30:20 +01:00
Sebastian Lackner
bdb212523c Added patch to implement RunlevelInformationInActivationContext in RtlQueryInformationActivationContext. 2017-01-15 16:24:24 +01:00
Sebastian Lackner
d4f26a2f95 Added patch to ignore AllowXsltScript and AllowDocumentFunction properties in msxml. 2017-01-15 15:24:35 +01:00
Sebastian Lackner
1261a0540c Added patch to avoid setting DDCAPS_ALIGNBOUNDARYSRC as cap for ddraw. 2017-01-15 02:29:50 +01:00
Sebastian Lackner
577b85bdc8 Added patch to respect return value of callback in DirectSoundEnumerateA/W. 2017-01-14 23:20:54 +01:00
Sebastian Lackner
96a6d1cecc Added patch to build independent xinput9_1_0.dll instead of using forwards. 2017-01-14 22:46:53 +01:00
Sebastian Lackner
a90497bdef Added patch to improve stubs for Validate{Vertex,Pixel}Shader. 2017-01-14 08:29:21 +01:00
Sebastian Lackner
b6c5b6240b Added patch to catch page faults in NtQueryPerformanceCounter. 2017-01-14 08:19:10 +01:00
Sebastian Lackner
9c43bb8d2c Added patch to workaround a bug present in the current versions of Flex. 2017-01-14 05:50:14 +01:00
Sebastian Lackner
f06f5c3b0c Added patch to implement support for LABEL_SECURITY_INFORMATION. 2017-01-14 05:38:36 +01:00
Sebastian Lackner
b2098faef8 Added patch to fix cost computation in MSI for large values. 2017-01-14 01:28:20 +01:00
Sebastian Lackner
4b0fe0c820 Added patch to return success for TokenSessionId in NtSetInformationToken. 2017-01-14 01:18:35 +01:00
Sebastian Lackner
604d23df7c Rebase against 3c54d4fb6926195e43a1163b0a243d2614a5951f. 2017-01-14 00:55:36 +01:00
Sebastian Lackner
e65410b901 wined3d-WINED3DFMT_R32G32_UINT: Remove patch for issue fixed in dev branch (thanks Alistair). 2017-01-13 13:14:56 +01:00
Sebastian Lackner
7b4727f89c Added patch to start debugger always on WinSta0. 2017-01-13 02:00:22 +01:00
Sebastian Lackner
5f4b99aa18 Rebase against 083b35e7c77c32f2f011a7e4188edaf605e0848c. 2017-01-13 01:08:54 +01:00
Sebastian Lackner
73c19719e0 Added patch to improve mapping of DACL to file permissions. 2017-01-13 01:03:25 +01:00
Sebastian Lackner
eaff208f0d Added patch to implement support for navigating a group of radio buttons using a keyboard. 2017-01-12 17:08:24 +01:00
Sebastian Lackner
77452f30f8 wbemdisp-Printer: Rename patchset to wbemprox-Printer. 2017-01-12 05:35:37 +01:00
Sebastian Lackner
7ad3349f66 Added patch to fix row count in fill_processor and fill_printer function. 2017-01-12 05:34:14 +01:00
Sebastian Lackner
8c909daf10 server-Stored_ACLs: Update patch and fix handling of MAXIMUM_ALLOWED. 2017-01-12 02:57:24 +01:00
Sebastian Lackner
51fd657cdb Rebase against 8df9a11adebf72f3f1046a2efad6e8c85fc44c40. 2017-01-12 00:12:21 +01:00
Sebastian Lackner
634b0e2877 Added patches with various PE loader fixes for 8k demos. 2017-01-11 23:30:14 +01:00
Sebastian Lackner
2660a14433 Added patch to avoid double captions observed under some WMs. 2017-01-11 00:05:34 +01:00
Sebastian Lackner
ad5fb8a69e Rebase against ac59a68162321610841ed072981adddb8bc78c56. 2017-01-10 06:21:01 +01:00
205 changed files with 12718 additions and 2648 deletions

View File

@@ -1 +0,0 @@
Category: stable

View File

@@ -1,4 +1,4 @@
From a41dac0b19ec2ba3807da4ac42d77717d79f1115 Mon Sep 17 00:00:00 2001
From 41ee5d7699182ea01c61223ab9d0a10473e16ac2 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 2 Oct 2014 19:44:31 +0200
Subject: kernel32: Add winediag message to show warning, that this isn't
@@ -9,7 +9,7 @@ Subject: kernel32: Add winediag message to show warning, that this isn't
1 file changed, 9 insertions(+)
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index b0c06e3..a2c1d4c 100644
index 6d0fc74cdf4..ed1d967ffdf 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -65,6 +65,7 @@
@@ -20,7 +20,7 @@ index b0c06e3..a2c1d4c 100644
#ifdef __APPLE__
extern char **__wine_get_main_environment(void);
@@ -1099,6 +1100,14 @@ static DWORD WINAPI start_process( PEB *peb )
@@ -1104,6 +1105,14 @@ static DWORD WINAPI start_process( PEB *peb )
DPRINTF( "%04x:Starting process %s (entryproc=%p)\n", GetCurrentThreadId(),
debugstr_w(peb->ProcessParameters->ImagePathName.Buffer), entry );
@@ -32,9 +32,9 @@ index b0c06e3..a2c1d4c 100644
+ else
+ WARN_(winediag)("Wine Staging %s is a testing version containing experimental patches.\n", wine_get_version());
+
SetLastError( 0 ); /* clear error code */
if (peb->BeingDebugged) DbgBreakPoint();
return call_process_entry( peb, entry );
if (!CheckRemoteDebuggerPresent( GetCurrentProcess(), &being_debugged ))
being_debugged = FALSE;
--
2.5.1
2.11.0

View File

@@ -1 +1 @@
Category: stable
Depends: kernel32-BeingDebugged

View File

@@ -1,4 +1,4 @@
From b6efa0b8bb1bba73863ca985c13d46a5eaec4198 Mon Sep 17 00:00:00 2001
From c178117abacbf8644ae05429999ff8e8f8585a7e Mon Sep 17 00:00:00 2001
From: Hans Leidekker <hans@codeweavers.com>
Date: Mon, 19 Dec 2016 19:38:52 +0100
Subject: bcrypt: Add AES provider.
@@ -7,11 +7,12 @@ Subject: bcrypt: Add AES provider.
dlls/bcrypt/bcrypt.spec | 10 +-
dlls/bcrypt/bcrypt_main.c | 347 ++++++++++++++++++++++++++++++++++++++++++++-
dlls/bcrypt/tests/bcrypt.c | 18 +--
dlls/ncrypt/ncrypt.spec | 10 +-
include/bcrypt.h | 3 +
4 files changed, 352 insertions(+), 26 deletions(-)
5 files changed, 357 insertions(+), 31 deletions(-)
diff --git a/dlls/bcrypt/bcrypt.spec b/dlls/bcrypt/bcrypt.spec
index e299fe0..962953e 100644
index e299fe0cce8..962953e509b 100644
--- a/dlls/bcrypt/bcrypt.spec
+++ b/dlls/bcrypt/bcrypt.spec
@@ -5,15 +5,15 @@
@@ -52,7 +53,7 @@ index e299fe0..962953e 100644
@ stub BCryptUnregisterConfigChangeNotify
@ stub BCryptUnregisterProvider
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
index 6023c94..937bdf7 100644
index 6023c942e49..5e066283f6e 100644
--- a/dlls/bcrypt/bcrypt_main.c
+++ b/dlls/bcrypt/bcrypt_main.c
@@ -49,6 +49,10 @@ WINE_DECLARE_DEBUG_CHANNEL(winediag);
@@ -498,7 +499,7 @@ index 6023c94..937bdf7 100644
{
switch (reason)
diff --git a/dlls/bcrypt/tests/bcrypt.c b/dlls/bcrypt/tests/bcrypt.c
index 3e41335..2668153 100644
index 422f2cfd340..d2df74ed919 100644
--- a/dlls/bcrypt/tests/bcrypt.c
+++ b/dlls/bcrypt/tests/bcrypt.c
@@ -780,7 +780,7 @@ static void test_aes(void)
@@ -510,7 +511,7 @@ index 3e41335..2668153 100644
alg = NULL;
ret = pBCryptOpenAlgorithmProvider(&alg, BCRYPT_AES_ALGORITHM, MS_PRIMITIVE_PROVIDER, 0);
ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
@@ -828,7 +828,6 @@ todo_wine {
@@ -814,7 +814,6 @@ todo_wine {
ret = pBCryptCloseAlgorithmProvider(alg, 0);
ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
}
@@ -518,7 +519,7 @@ index 3e41335..2668153 100644
static void test_BCryptGenerateSymmetricKey(void)
{
@@ -847,11 +846,6 @@ static void test_BCryptGenerateSymmetricKey(void)
@@ -833,11 +832,6 @@ static void test_BCryptGenerateSymmetricKey(void)
NTSTATUS ret;
ret = pBCryptOpenAlgorithmProvider(&aes, BCRYPT_AES_ALGORITHM, NULL, 0);
@@ -530,7 +531,7 @@ index 3e41335..2668153 100644
ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
len = size = 0xdeadbeef;
@@ -936,11 +930,6 @@ static void test_BCryptEncrypt(void)
@@ -922,11 +916,6 @@ static void test_BCryptEncrypt(void)
NTSTATUS ret;
ret = pBCryptOpenAlgorithmProvider(&aes, BCRYPT_AES_ALGORITHM, NULL, 0);
@@ -542,7 +543,7 @@ index 3e41335..2668153 100644
ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
len = 0xdeadbeef;
@@ -1027,11 +1016,6 @@ static void test_BCryptDecrypt(void)
@@ -1013,11 +1002,6 @@ static void test_BCryptDecrypt(void)
NTSTATUS ret;
ret = pBCryptOpenAlgorithmProvider(&aes, BCRYPT_AES_ALGORITHM, NULL, 0);
@@ -554,8 +555,51 @@ index 3e41335..2668153 100644
ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
len = 0xdeadbeef;
diff --git a/dlls/ncrypt/ncrypt.spec b/dlls/ncrypt/ncrypt.spec
index 04127608d68..60b7eb37075 100644
--- a/dlls/ncrypt/ncrypt.spec
+++ b/dlls/ncrypt/ncrypt.spec
@@ -5,17 +5,17 @@
@ stub BCryptConfigureContextFunction
@ stub BCryptCreateContext
@ stdcall BCryptCreateHash(ptr ptr ptr long ptr long long) bcrypt.BCryptCreateHash
-@ stub BCryptDecrypt
+@ stdcall BCryptDecrypt(ptr ptr long ptr ptr long ptr long ptr long) bcrypt.BCryptDecrypt
@ stub BCryptDeleteContext
@ stub BCryptDeriveKey
@ stub BCryptDeriveKeyCapi
@ stub BCryptDeriveKeyPBKDF2
@ stdcall BCryptDestroyHash(ptr) bcrypt.BCryptDestroyHash
-@ stub BCryptDestroyKey
+@ stdcall BCryptDestroyKey(ptr) bcrypt.BCryptDestroyKey
@ stub BCryptDestroySecret
@ stub BCryptDuplicateHash
@ stub BCryptDuplicateKey
-@ stub BCryptEncrypt
+@ stdcall BCryptEncrypt(ptr ptr long ptr ptr long ptr long ptr long) bcrypt.BCryptEncrypt
@ stdcall BCryptEnumAlgorithms(long ptr ptr long) bcrypt.BCryptEnumAlgorithms
@ stub BCryptEnumContextFunctionProviders
@ stub BCryptEnumContextFunctions
@@ -28,7 +28,7 @@
@ stub BCryptFreeBuffer
@ stdcall BCryptGenRandom(ptr ptr long long) bcrypt.BCryptGenRandom
@ stub BCryptGenerateKeyPair
-@ stub BCryptGenerateSymmetricKey
+@ stdcall BCryptGenerateSymmetricKey(ptr ptr ptr long ptr long long) bcrypt.BCryptGenerateSymmetricKey
@ stdcall BCryptGetFipsAlgorithmMode(ptr) bcrypt.BCryptGetFipsAlgorithmMode
@ stdcall BCryptGetProperty(ptr wstr ptr long ptr long) bcrypt.BCryptGetProperty
@ stdcall BCryptHash(ptr ptr long ptr long ptr long) bcrypt.BCryptHash
@@ -49,7 +49,7 @@
@ stub BCryptSecretAgreement
@ stub BCryptSetAuditingInterface
@ stub BCryptSetContextFunctionProperty
-@ stub BCryptSetProperty
+@ stdcall BCryptSetProperty(ptr wstr ptr long long) bcrypt.BCryptSetProperty
@ stub BCryptSignHash
@ stub BCryptUnregisterConfigChangeNotify
@ stub BCryptUnregisterProvider
diff --git a/include/bcrypt.h b/include/bcrypt.h
index 05d0691..6af85e3 100644
index 05d0691f9c3..6af85e36143 100644
--- a/include/bcrypt.h
+++ b/include/bcrypt.h
@@ -74,6 +74,9 @@ typedef LONG NTSTATUS;
@@ -569,5 +613,5 @@ index 05d0691..6af85e3 100644
typedef struct _BCRYPT_ALGORITHM_IDENTIFIER
{
--
2.9.0
2.11.0

View File

@@ -1,4 +1,4 @@
From ecff30df4deadc0df006a880a5528343a4ab788f Mon Sep 17 00:00:00 2001
From 3439b4e5a1fd05c4fb68491c3814de2581e8a5aa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 20 Dec 2016 02:36:57 +0100
Subject: bcrypt: Add internal fallback implementation for hash calculations.
@@ -17,7 +17,7 @@ Subject: bcrypt: Add internal fallback implementation for hash calculations.
create mode 100644 dlls/bcrypt/sha512.c
diff --git a/dlls/bcrypt/Makefile.in b/dlls/bcrypt/Makefile.in
index ef9d7ea..38753bd 100644
index ef9d7ead6bc..f54fc5cd482 100644
--- a/dlls/bcrypt/Makefile.in
+++ b/dlls/bcrypt/Makefile.in
@@ -4,6 +4,9 @@ IMPORTLIB = bcrypt
@@ -27,13 +27,13 @@ index ef9d7ea..38753bd 100644
- bcrypt_main.c
+ bcrypt_main.c \
+ sha256.c \
+ sha512.c \
+ sha384.c
+ sha384.c \
+ sha512.c
RC_SRCS = version.rc
diff --git a/dlls/bcrypt/bcrypt_internal.h b/dlls/bcrypt/bcrypt_internal.h
new file mode 100644
index 0000000..8a8f6d1
index 00000000000..8a8f6d170c4
--- /dev/null
+++ b/dlls/bcrypt/bcrypt_internal.h
@@ -0,0 +1,79 @@
@@ -117,7 +117,7 @@ index 0000000..8a8f6d1
+
+#endif /* __BCRYPT_INTERNAL_H */
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
index af2314a..9441cf0 100644
index 1f22063dbda..fbaece21f47 100644
--- a/dlls/bcrypt/bcrypt_main.c
+++ b/dlls/bcrypt/bcrypt_main.c
@@ -36,6 +36,8 @@
@@ -251,7 +251,7 @@ index af2314a..9441cf0 100644
diff --git a/dlls/bcrypt/sha256.c b/dlls/bcrypt/sha256.c
new file mode 100644
index 0000000..48c4a48
index 00000000000..48c4a48d031
--- /dev/null
+++ b/dlls/bcrypt/sha256.c
@@ -0,0 +1,169 @@
@@ -426,7 +426,7 @@ index 0000000..48c4a48
+}
diff --git a/dlls/bcrypt/sha384.c b/dlls/bcrypt/sha384.c
new file mode 100644
index 0000000..81e7e08
index 00000000000..81e7e08fd07
--- /dev/null
+++ b/dlls/bcrypt/sha384.c
@@ -0,0 +1,41 @@
@@ -473,7 +473,7 @@ index 0000000..81e7e08
+}
diff --git a/dlls/bcrypt/sha512.c b/dlls/bcrypt/sha512.c
new file mode 100644
index 0000000..fdd7867
index 00000000000..fdd7867eab7
--- /dev/null
+++ b/dlls/bcrypt/sha512.c
@@ -0,0 +1,191 @@
@@ -669,5 +669,5 @@ index 0000000..fdd7867
+ }
+}
--
2.9.0
2.11.0

View File

@@ -1,4 +1,4 @@
From 9331e2a78e8ec0ba29ed1041a9f851ffd39cc249 Mon Sep 17 00:00:00 2001
From 3dc21336baced97a110773ac9e72db210a56af82 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 20 Dec 2016 03:59:19 +0100
Subject: bcrypt: Implement BCryptDuplicateHash.
@@ -7,10 +7,11 @@ FIXME: Should we check for NULL pointers?
---
dlls/bcrypt/bcrypt.spec | 2 +-
dlls/bcrypt/bcrypt_main.c | 18 ++++++++++++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
dlls/ncrypt/ncrypt.spec | 2 +-
3 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/dlls/bcrypt/bcrypt.spec b/dlls/bcrypt/bcrypt.spec
index 962953e..9ecd21d 100644
index 962953e509b..9ecd21d767c 100644
--- a/dlls/bcrypt/bcrypt.spec
+++ b/dlls/bcrypt/bcrypt.spec
@@ -11,7 +11,7 @@
@@ -23,7 +24,7 @@ index 962953e..9ecd21d 100644
@ stdcall BCryptEncrypt(ptr ptr long ptr ptr long ptr long ptr long)
@ stdcall BCryptEnumAlgorithms(long ptr ptr long)
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
index 3e2b22d..944a9ea 100644
index 4f09948096c..3eb0135b37c 100644
--- a/dlls/bcrypt/bcrypt_main.c
+++ b/dlls/bcrypt/bcrypt_main.c
@@ -672,6 +672,24 @@ end:
@@ -51,6 +52,19 @@ index 3e2b22d..944a9ea 100644
NTSTATUS WINAPI BCryptDestroyHash( BCRYPT_HASH_HANDLE handle )
{
struct hash *hash = handle;
diff --git a/dlls/ncrypt/ncrypt.spec b/dlls/ncrypt/ncrypt.spec
index 60b7eb37075..1a78853bf49 100644
--- a/dlls/ncrypt/ncrypt.spec
+++ b/dlls/ncrypt/ncrypt.spec
@@ -13,7 +13,7 @@
@ stdcall BCryptDestroyHash(ptr) bcrypt.BCryptDestroyHash
@ stdcall BCryptDestroyKey(ptr) bcrypt.BCryptDestroyKey
@ stub BCryptDestroySecret
-@ stub BCryptDuplicateHash
+@ stdcall BCryptDuplicateHash(ptr ptr ptr long long) bcrypt.BCryptDuplicateHash
@ stub BCryptDuplicateKey
@ stdcall BCryptEncrypt(ptr ptr long ptr ptr long ptr long ptr long) bcrypt.BCryptEncrypt
@ stdcall BCryptEnumAlgorithms(long ptr ptr long) bcrypt.BCryptEnumAlgorithms
--
2.9.0
2.11.0

View File

@@ -1,4 +1,4 @@
From e930551dfa4e0bb97db71d056a4ed59f9e459e01 Mon Sep 17 00:00:00 2001
From 6d590beb24ef04948fe8e05fff3a72c1d415a7c1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Mon, 26 Dec 2016 08:28:24 +0100
Subject: bcrypt: Implement BCryptDuplicateKey.
@@ -6,10 +6,11 @@ Subject: bcrypt: Implement BCryptDuplicateKey.
---
dlls/bcrypt/bcrypt.spec | 2 +-
dlls/bcrypt/bcrypt_main.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 50 insertions(+), 1 deletion(-)
dlls/ncrypt/ncrypt.spec | 2 +-
3 files changed, 51 insertions(+), 2 deletions(-)
diff --git a/dlls/bcrypt/bcrypt.spec b/dlls/bcrypt/bcrypt.spec
index 9ecd21d..f5911d2 100644
index 9ecd21d767c..f5911d2cd40 100644
--- a/dlls/bcrypt/bcrypt.spec
+++ b/dlls/bcrypt/bcrypt.spec
@@ -12,7 +12,7 @@
@@ -22,7 +23,7 @@ index 9ecd21d..f5911d2 100644
@ stdcall BCryptEnumAlgorithms(long ptr ptr long)
@ stub BCryptEnumContextFunctionProviders
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
index 198b010..37d6909 100644
index 198b010b27e..37d69095f7a 100644
--- a/dlls/bcrypt/bcrypt_main.c
+++ b/dlls/bcrypt/bcrypt_main.c
@@ -915,6 +915,24 @@ static NTSTATUS key_init( struct key *key, struct algorithm *alg, UCHAR *secret,
@@ -95,6 +96,19 @@ index 198b010..37d6909 100644
NTSTATUS WINAPI BCryptDestroyKey( BCRYPT_KEY_HANDLE handle )
{
struct key *key = handle;
diff --git a/dlls/ncrypt/ncrypt.spec b/dlls/ncrypt/ncrypt.spec
index 1a78853bf49..b14a332e18f 100644
--- a/dlls/ncrypt/ncrypt.spec
+++ b/dlls/ncrypt/ncrypt.spec
@@ -14,7 +14,7 @@
@ stdcall BCryptDestroyKey(ptr) bcrypt.BCryptDestroyKey
@ stub BCryptDestroySecret
@ stdcall BCryptDuplicateHash(ptr ptr ptr long long) bcrypt.BCryptDuplicateHash
-@ stub BCryptDuplicateKey
+@ stdcall BCryptDuplicateKey(ptr ptr ptr long long) bcrypt.BCryptDuplicateKey
@ stdcall BCryptEncrypt(ptr ptr long ptr ptr long ptr long ptr long) bcrypt.BCryptEncrypt
@ stdcall BCryptEnumAlgorithms(long ptr ptr long) bcrypt.BCryptEnumAlgorithms
@ stub BCryptEnumContextFunctionProviders
--
2.9.0
2.11.0

View File

@@ -1,132 +0,0 @@
From 1b05fa6764dc8eb220ef9dd349801fa2e76914bd Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 17 Oct 2015 15:38:13 +0200
Subject: comctl32/tests: Add tests for PROPSHEET_InsertPage.
---
dlls/comctl32/tests/propsheet.c | 97 ++++++++++++++++++++++++++++++++++++++++-
1 file changed, 96 insertions(+), 1 deletion(-)
diff --git a/dlls/comctl32/tests/propsheet.c b/dlls/comctl32/tests/propsheet.c
index 6594298..8fdbae8 100644
--- a/dlls/comctl32/tests/propsheet.c
+++ b/dlls/comctl32/tests/propsheet.c
@@ -806,7 +806,7 @@ static void test_PSM_ADDPAGE(void)
psp.pfnDlgProc = page_dlg_proc_messages;
psp.lParam = 0;
- /* two page with the same data */
+ /* multiple pages with the same data */
hpsp[0] = CreatePropertySheetPageA(&psp);
hpsp[1] = CreatePropertySheetPageA(&psp);
hpsp[2] = CreatePropertySheetPageA(&psp);
@@ -878,6 +878,100 @@ if (0)
DestroyWindow(hdlg);
}
+static void test_PSM_INSERTPAGE(void)
+{
+ HPROPSHEETPAGE hpsp[5];
+ PROPSHEETPAGEA psp;
+ PROPSHEETHEADERA psh;
+ HWND hdlg, tab;
+ BOOL ret;
+ DWORD r;
+
+ memset(&psp, 0, sizeof(psp));
+ psp.dwSize = sizeof(psp);
+ psp.dwFlags = 0;
+ psp.hInstance = GetModuleHandleA(NULL);
+ U(psp).pszTemplate = (LPCSTR)MAKEINTRESOURCE(IDD_PROP_PAGE_MESSAGE_TEST);
+ U2(psp).pszIcon = NULL;
+ psp.pfnDlgProc = page_dlg_proc_messages;
+ psp.lParam = 0;
+
+ /* multiple pages with the same data */
+ hpsp[0] = CreatePropertySheetPageA(&psp);
+ hpsp[1] = CreatePropertySheetPageA(&psp);
+ hpsp[2] = CreatePropertySheetPageA(&psp);
+
+ U(psp).pszTemplate = (LPCSTR)MAKEINTRESOURCE(IDD_PROP_PAGE_ERROR);
+ hpsp[3] = CreatePropertySheetPageA(&psp);
+
+ psp.dwFlags = PSP_PREMATURE;
+ hpsp[4] = CreatePropertySheetPageA(&psp);
+
+ memset(&psh, 0, sizeof(psh));
+ psh.dwSize = PROPSHEETHEADERA_V1_SIZE;
+ psh.dwFlags = PSH_MODELESS;
+ psh.pszCaption = "test caption";
+ psh.nPages = 1;
+ psh.hwndParent = GetDesktopWindow();
+ U3(psh).phpage = hpsp;
+
+ hdlg = (HWND)PropertySheetA(&psh);
+ ok(hdlg != INVALID_HANDLE_VALUE, "got invalid handle %p\n", hdlg);
+
+ /* add pages one by one */
+ ret = SendMessageA(hdlg, PSM_INSERTPAGE, 5, (LPARAM)hpsp[1]);
+ todo_wine ok(ret == TRUE, "got %d\n", ret);
+
+ /* try with invalid values */
+ ret = SendMessageA(hdlg, PSM_INSERTPAGE, 0, 0);
+ ok(ret == FALSE, "got %d\n", ret);
+
+if (0)
+{
+ /* crashes on native */
+ ret = SendMessageA(hdlg, PSM_INSERTPAGE, 0, (LPARAM)INVALID_HANDLE_VALUE);
+}
+
+ ret = SendMessageA(hdlg, PSM_INSERTPAGE, (WPARAM)INVALID_HANDLE_VALUE, (LPARAM)hpsp[2]);
+ ok(ret == FALSE, "got %d\n", ret);
+
+ /* check item count */
+ tab = (HWND)SendMessageA(hdlg, PSM_GETTABCONTROL, 0, 0);
+
+ r = SendMessageA(tab, TCM_GETITEMCOUNT, 0, 0);
+ todo_wine ok(r == 2, "got %d\n", r);
+
+ ret = SendMessageA(hdlg, PSM_INSERTPAGE, (WPARAM)hpsp[1], (LPARAM)hpsp[2]);
+ todo_wine ok(ret == TRUE, "got %d\n", ret);
+
+ r = SendMessageA(tab, TCM_GETITEMCOUNT, 0, 0);
+ todo_wine ok(r == 3, "got %d\n", r);
+
+ /* add property sheet page that can't be created */
+ ret = SendMessageA(hdlg, PSM_INSERTPAGE, 1, (LPARAM)hpsp[3]);
+ todo_wine ok(ret == TRUE, "got %d\n", ret);
+
+ r = SendMessageA(tab, TCM_GETITEMCOUNT, 0, 0);
+ todo_wine ok(r == 4, "got %d\n", r);
+
+ /* select page that can't be created */
+ ret = SendMessageA(hdlg, PSM_SETCURSEL, 1, 0);
+ todo_wine ok(ret == TRUE, "got %d\n", ret);
+
+ r = SendMessageA(tab, TCM_GETITEMCOUNT, 0, 0);
+ todo_wine ok(r == 3, "got %d\n", r);
+
+ /* test PSP_PREMATURE flag with incorrect property sheet page */
+ ret = SendMessageA(hdlg, PSM_INSERTPAGE, 0, (LPARAM)hpsp[4]);
+ ok(ret == FALSE, "got %d\n", ret);
+
+ r = SendMessageA(tab, TCM_GETITEMCOUNT, 0, 0);
+ todo_wine ok(r == 3, "got %d\n", r);
+
+ DestroyPropertySheetPage(hpsp[4]);
+ DestroyWindow(hdlg);
+}
+
START_TEST(propsheet)
{
test_title();
@@ -888,4 +982,5 @@ START_TEST(propsheet)
test_custom_default_button();
test_messages();
test_PSM_ADDPAGE();
+ test_PSM_INSERTPAGE();
}
--
2.6.2

View File

@@ -1,2 +1 @@
Fixes: [26256] Support for setcap on wine-preloader
Category: stable

View File

@@ -0,0 +1,52 @@
From 80ed5b05271aed72ae87ecfc354dce8cca5efd19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 24 Jan 2017 03:47:25 +0100
Subject: crypt32: Recognize sha256/384/512 KEY OIDs.
---
dlls/crypt32/oid.c | 6 ++++++
include/wincrypt.h | 4 ++++
2 files changed, 10 insertions(+)
diff --git a/dlls/crypt32/oid.c b/dlls/crypt32/oid.c
index d5c29534c23..7c07b9fcd99 100644
--- a/dlls/crypt32/oid.c
+++ b/dlls/crypt32/oid.c
@@ -1053,6 +1053,9 @@ static const WCHAR rc2[] = { 'r','c','2',0 };
static const WCHAR rc4[] = { 'r','c','4',0 };
static const WCHAR sha[] = { 's','h','a',0 };
static const WCHAR sha1[] = { 's','h','a','1',0 };
+static const WCHAR sha256[] = { 's','h','a','2','5','6',0 };
+static const WCHAR sha384[] = { 's','h','a','3','8','4',0 };
+static const WCHAR sha512[] = { 's','h','a','5','1','2',0 };
static const WCHAR RSA[] = { 'R','S','A',0 };
static const WCHAR RSA_KEYX[] = { 'R','S','A','_','K','E','Y','X',0 };
static const WCHAR RSA_SIGN[] = { 'R','S','A','_','S','I','G','N',0 };
@@ -1157,6 +1160,9 @@ static const struct OIDInfoConstructor {
{ 1, szOID_RSA_MD5, CALG_MD5, md5, NULL },
{ 1, szOID_RSA_MD4, CALG_MD4, md4, NULL },
{ 1, szOID_RSA_MD2, CALG_MD2, md2, NULL },
+ { 1, szOID_NIST_sha256, CALG_SHA_256, sha256, NULL },
+ { 1, szOID_NIST_sha384, CALG_SHA_384, sha384, NULL },
+ { 1, szOID_NIST_sha512, CALG_SHA_512, sha512, NULL },
{ 2, szOID_OIWSEC_desCBC, CALG_DES, des, NULL },
{ 2, szOID_RSA_DES_EDE3_CBC, CALG_3DES, tripledes, NULL },
diff --git a/include/wincrypt.h b/include/wincrypt.h
index 88b4b65d4c1..14705708f2b 100644
--- a/include/wincrypt.h
+++ b/include/wincrypt.h
@@ -3149,6 +3149,10 @@ typedef struct _CTL_FIND_SUBJECT_PARA
#define szOID_NETSCAPE_DATA_TYPE "2.16.840.1.113730.2"
#define szOID_NETSCAPE_CERT_SEQUENCE "2.16.840.1.113730.2.5"
+#define szOID_NIST_sha256 "2.16.840.1.101.3.4.2.1"
+#define szOID_NIST_sha384 "2.16.840.1.101.3.4.2.2"
+#define szOID_NIST_sha512 "2.16.840.1.101.3.4.2.3"
+
/* Bits for szOID_NETSCAPE_CERT_TYPE */
#define NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE 0x80
#define NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE 0x40
--
2.11.0

View File

@@ -0,0 +1 @@
Fixes: [41356] Recognize sha256/384/512 KEY OIDs

View File

@@ -0,0 +1,174 @@
From 06cf41da9e0aeb09d3753132262d1b0e1207cd7f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 19 Jan 2017 16:54:42 +0100
Subject: wined3d: Add wined3d_resource_map_info function.
---
dlls/wined3d/buffer.c | 19 +++++++++++++++++++
dlls/wined3d/resource.c | 8 ++++++++
dlls/wined3d/texture.c | 31 +++++++++++++++++++++++++++++++
dlls/wined3d/wined3d.spec | 1 +
dlls/wined3d/wined3d_private.h | 2 ++
include/wine/wined3d.h | 9 +++++++++
6 files changed, 70 insertions(+)
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
index 6883b4010a0..1924752a421 100644
--- a/dlls/wined3d/buffer.c
+++ b/dlls/wined3d/buffer.c
@@ -1405,6 +1405,24 @@ static HRESULT buffer_resource_sub_resource_map(struct wined3d_resource *resourc
return wined3d_buffer_map(buffer, offset, size, (BYTE **)&map_desc->data, flags);
}
+static HRESULT buffer_resource_sub_resource_map_info(struct wined3d_resource *resource, unsigned int sub_resource_idx,
+ struct wined3d_map_info *info, DWORD flags)
+{
+ struct wined3d_buffer *buffer = buffer_from_resource(resource);
+
+ if (sub_resource_idx)
+ {
+ WARN("Invalid sub_resource_idx %u.\n", sub_resource_idx);
+ return E_INVALIDARG;
+ }
+
+ info->row_pitch = buffer->desc.byte_width;
+ info->slice_pitch = buffer->desc.byte_width;
+ info->size = buffer->resource.size;
+
+ return WINED3D_OK;
+}
+
static HRESULT buffer_resource_sub_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx)
{
if (sub_resource_idx)
@@ -1424,6 +1442,7 @@ static const struct wined3d_resource_ops buffer_resource_ops =
buffer_resource_preload,
buffer_unload,
buffer_resource_sub_resource_map,
+ buffer_resource_sub_resource_map_info,
buffer_resource_sub_resource_unmap,
};
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
index ab64de07f41..51da49077ed 100644
--- a/dlls/wined3d/resource.c
+++ b/dlls/wined3d/resource.c
@@ -359,6 +359,14 @@ HRESULT CDECL wined3d_resource_map(struct wined3d_resource *resource, unsigned i
return wined3d_cs_map(resource->device->cs, resource, sub_resource_idx, map_desc, box, flags);
}
+HRESULT CDECL wined3d_resource_map_info(struct wined3d_resource *resource, unsigned int sub_resource_idx,
+ struct wined3d_map_info *info, DWORD flags)
+{
+ TRACE("resource %p, sub_resource_idx %u.\n", resource, sub_resource_idx);
+
+ return resource->resource_ops->resource_map_info(resource, sub_resource_idx, info, flags);
+}
+
HRESULT CDECL wined3d_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx)
{
TRACE("resource %p, sub_resource_idx %u.\n", resource, sub_resource_idx);
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 8d5e37a4949..be301420858 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -2194,6 +2194,36 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour
return WINED3D_OK;
}
+static HRESULT texture_resource_sub_resource_map_info(struct wined3d_resource *resource, unsigned int sub_resource_idx,
+ struct wined3d_map_info *info, DWORD flags)
+{
+ const struct wined3d_format *format = resource->format;
+ struct wined3d_texture_sub_resource *sub_resource;
+ unsigned int fmt_flags = resource->format_flags;
+ struct wined3d_texture *texture;
+ unsigned int texture_level;
+
+ texture = texture_from_resource(resource);
+ if (!(sub_resource = wined3d_texture_get_sub_resource(texture, sub_resource_idx)))
+ return E_INVALIDARG;
+
+ texture_level = sub_resource_idx % texture->level_count;
+
+ if (fmt_flags & WINED3DFMT_FLAG_BROKEN_PITCH)
+ {
+ info->row_pitch = wined3d_texture_get_level_width(texture, texture_level) * format->byte_count;
+ info->slice_pitch = wined3d_texture_get_level_height(texture, texture_level) * info->row_pitch;
+ }
+ else
+ {
+ wined3d_texture_get_pitch(texture, texture_level, &info->row_pitch, &info->slice_pitch);
+ }
+
+ info->size = info->slice_pitch * wined3d_texture_get_level_depth(texture, texture_level);
+
+ return WINED3D_OK;
+}
+
static HRESULT texture_resource_sub_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx)
{
struct wined3d_texture_sub_resource *sub_resource;
@@ -2253,6 +2283,7 @@ static const struct wined3d_resource_ops texture_resource_ops =
texture_resource_preload,
wined3d_texture_unload,
texture_resource_sub_resource_map,
+ texture_resource_sub_resource_map_info,
texture_resource_sub_resource_unmap,
};
diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec
index 05df9f3db7e..e51380304b1 100644
--- a/dlls/wined3d/wined3d.spec
+++ b/dlls/wined3d/wined3d.spec
@@ -187,6 +187,7 @@
@ cdecl wined3d_resource_get_parent(ptr)
@ cdecl wined3d_resource_get_priority(ptr)
@ cdecl wined3d_resource_map(ptr long ptr ptr long)
+@ cdecl wined3d_resource_map_info(ptr long ptr long)
@ cdecl wined3d_resource_preload(ptr)
@ cdecl wined3d_resource_set_parent(ptr ptr)
@ cdecl wined3d_resource_set_priority(ptr long)
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index ff61d9d872b..65f95004b44 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2639,6 +2639,8 @@ struct wined3d_resource_ops
void (*resource_unload)(struct wined3d_resource *resource);
HRESULT (*resource_sub_resource_map)(struct wined3d_resource *resource, unsigned int sub_resource_idx,
struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags);
+ HRESULT (*resource_map_info)(struct wined3d_resource *resource, unsigned int sub_resource_idx,
+ struct wined3d_map_info *info, DWORD flags);
HRESULT (*resource_sub_resource_unmap)(struct wined3d_resource *resource, unsigned int sub_resource_idx);
};
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 8c8fbcbe7e5..fff39e2fa0f 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -1746,6 +1746,13 @@ struct wined3d_map_desc
void *data;
};
+struct wined3d_map_info
+{
+ UINT row_pitch;
+ UINT slice_pitch;
+ UINT size;
+};
+
struct wined3d_sub_resource_data
{
const void *data;
@@ -2431,6 +2438,8 @@ void * __cdecl wined3d_resource_get_parent(const struct wined3d_resource *resour
DWORD __cdecl wined3d_resource_get_priority(const struct wined3d_resource *resource);
HRESULT __cdecl wined3d_resource_map(struct wined3d_resource *resource, unsigned int sub_resource_idx,
struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags);
+HRESULT __cdecl wined3d_resource_map_info(struct wined3d_resource *resource, unsigned int sub_resource_idx,
+ struct wined3d_map_info *info, DWORD flags);
void __cdecl wined3d_resource_preload(struct wined3d_resource *resource);
void __cdecl wined3d_resource_set_parent(struct wined3d_resource *resource, void *parent);
DWORD __cdecl wined3d_resource_set_priority(struct wined3d_resource *resource, DWORD priority);
--
2.11.0

View File

@@ -0,0 +1,81 @@
From d9227039538ab84f28787ab5ca7fa74a8755740f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 24 Jan 2017 04:10:12 +0100
Subject: d3d11: Implement CSSetShader for deferred contexts.
---
dlls/d3d11/device.c | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 4ee9d500802..0bb973e3933 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -40,6 +40,7 @@ enum deferred_cmd
DEFERRED_OMSETBLENDSTATE, /* blend_state_info */
DEFERRED_OMSETRENDERTARGETS, /* render_target_info */
+ DEFERRED_CSSETSHADER, /* cs_info */
DEFERRED_DSSETSHADER, /* ds_info */
DEFERRED_HSSETSHADER, /* hs_info */
DEFERRED_PSSETSHADER, /* ps_info */
@@ -120,6 +121,11 @@ struct deferred_call
} render_target_info;
struct
{
+ ID3D11ComputeShader *shader;
+ /* FIXME: add class instances */
+ } cs_info;
+ struct
+ {
ID3D11DomainShader *shader;
/* FIXME: add class instances */
} ds_info;
@@ -349,6 +355,12 @@ static void free_deferred_calls(struct list *commands)
ID3D11DepthStencilView_Release(call->render_target_info.depth_stencil);
break;
}
+ case DEFERRED_CSSETSHADER:
+ {
+ if (call->cs_info.shader)
+ ID3D11ComputeShader_Release(call->cs_info.shader);
+ break;
+ }
case DEFERRED_DSSETSHADER:
{
if (call->ds_info.shader)
@@ -491,6 +503,11 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
call->render_target_info.render_targets, call->render_target_info.depth_stencil);
break;
}
+ case DEFERRED_CSSETSHADER:
+ {
+ ID3D11DeviceContext_CSSetShader(iface, call->cs_info.shader, NULL, 0);
+ break;
+ }
case DEFERRED_DSSETSHADER:
{
ID3D11DeviceContext_DSSetShader(iface, call->ds_info.shader, NULL, 0);
@@ -3636,8 +3653,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetUnorderedAccessViews(I
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetShader(ID3D11DeviceContext *iface,
ID3D11ComputeShader *shader, ID3D11ClassInstance *const *class_instances, UINT class_instance_count)
{
- FIXME("iface %p, shader %p, class_instances %p, class_instance_count %u stub!\n",
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
+ struct deferred_call *call;
+
+ TRACE("iface %p, shader %p, class_instances %p, class_instance_count %u.\n",
iface, shader, class_instances, class_instance_count);
+
+ if (!(call = add_deferred_call(context, 0)))
+ return;
+
+ call->cmd = DEFERRED_CSSETSHADER;
+ if (shader) ID3D11ComputeShader_AddRef(shader);
+ call->cs_info.shader = shader;
}
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetSamplers(ID3D11DeviceContext *iface,
--
2.11.0

View File

@@ -0,0 +1,68 @@
From 56e9fa8ef7ccfd0d98e29bfac9ee44c08bb8e891 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 24 Jan 2017 04:21:47 +0100
Subject: d3d11: Implement CSSetConstantBuffers for deferred contexts.
---
dlls/d3d11/device.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 0bb973e3933..38b407b22ee 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -52,6 +52,7 @@ enum deferred_cmd
DEFERRED_DSSETSAMPLERS, /* samplers_info */
DEFERRED_PSSETSAMPLERS, /* samplers_info */
+ DEFERRED_CSSETCONSTANTBUFFERS, /* constant_buffers_info */
DEFERRED_DSSETCONSTANTBUFFERS, /* constant_buffers_info */
DEFERRED_HSSETCONSTANTBUFFERS, /* constant_buffers_info */
DEFERRED_PSSETCONSTANTBUFFERS, /* constant_buffers_info */
@@ -266,7 +267,7 @@ static void add_deferred_set_samplers(struct d3d11_deferred_context *context, en
}
}
-/* for DEFERRED_DSSETCONSTANTBUFFERS, DEFERRED_HSSETCONSTANTBUFFERS,
+/* for DEFERRED_CSSETCONSTANTBUFFERS. DEFERRED_DSSETCONSTANTBUFFERS, DEFERRED_HSSETCONSTANTBUFFERS,
* DEFERRED_PSSETCONSTANTBUFFERS and DEFERRED_VSSETCONSTANTBUFFERS */
static void add_deferred_set_constant_buffers(struct d3d11_deferred_context *context, enum deferred_cmd cmd,
UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
@@ -405,6 +406,7 @@ static void free_deferred_calls(struct list *commands)
}
break;
}
+ case DEFERRED_CSSETCONSTANTBUFFERS:
case DEFERRED_DSSETCONSTANTBUFFERS:
case DEFERRED_HSSETCONSTANTBUFFERS:
case DEFERRED_PSSETCONSTANTBUFFERS:
@@ -552,6 +554,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
call->samplers_info.num_samplers, call->samplers_info.samplers);
break;
}
+ case DEFERRED_CSSETCONSTANTBUFFERS:
+ {
+ ID3D11DeviceContext_CSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
+ call->constant_buffers_info.num_buffers, call->constant_buffers_info.buffers);
+ break;
+ }
case DEFERRED_DSSETCONSTANTBUFFERS:
{
ID3D11DeviceContext_DSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
@@ -3677,8 +3685,12 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetSamplers(ID3D11DeviceC
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetConstantBuffers(ID3D11DeviceContext *iface,
UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
{
- FIXME("iface %p, start_slot %u, buffer_count %u, buffers %p stub!\n",
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
+
+ TRACE("iface %p, start_slot %u, buffer_count %u, buffers %p.\n",
iface, start_slot, buffer_count, buffers);
+
+ add_deferred_set_constant_buffers(context, DEFERRED_CSSETCONSTANTBUFFERS, start_slot, buffer_count, buffers);
}
static void STDMETHODCALLTYPE d3d11_deferred_context_VSGetConstantBuffers(ID3D11DeviceContext *iface,
--
2.11.0

View File

@@ -0,0 +1,82 @@
From aab89808ea9387070c3ac1a1be56ac498538c80e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 24 Jan 2017 04:29:10 +0100
Subject: d3d11: Implement Dispatch for deferred contexts.
---
dlls/d3d11/device.c | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 38b407b22ee..644728f178a 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -62,6 +62,7 @@ enum deferred_cmd
DEFERRED_DRAWINDEXEDINSTANCED, /* draw_indexed_inst_info */
DEFERRED_MAP, /* map_info */
+ DEFERRED_DISPATCH, /* dispatch_info */
DEFERRED_CLEARSTATE,
};
@@ -186,6 +187,12 @@ struct deferred_call
void *buffer;
UINT size;
} map_info;
+ struct
+ {
+ UINT count_x;
+ UINT count_y;
+ UINT count_z;
+ } dispatch_info;
};
};
@@ -429,6 +436,10 @@ static void free_deferred_calls(struct list *commands)
ID3D11Resource_Release(call->map_info.resource);
break;
}
+ case DEFERRED_DISPATCH:
+ {
+ break; /* nothing to do */
+ }
case DEFERRED_CLEARSTATE:
{
break; /* nothing to do */
@@ -614,6 +625,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
break;
}
+ case DEFERRED_DISPATCH:
+ {
+ ID3D11DeviceContext_Dispatch(iface, call->dispatch_info.count_x,
+ call->dispatch_info.count_y, call->dispatch_info.count_z);
+ break;
+ }
case DEFERRED_CLEARSTATE:
{
ID3D11DeviceContext_ClearState(iface);
@@ -3407,8 +3424,19 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DrawInstancedIndirect(ID3D1
static void STDMETHODCALLTYPE d3d11_deferred_context_Dispatch(ID3D11DeviceContext *iface,
UINT thread_group_count_x, UINT thread_group_count_y, UINT thread_group_count_z)
{
- FIXME("iface %p, thread_group_count_x %u, thread_group_count_y %u, thread_group_count_z %u stub!\n",
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
+ struct deferred_call *call;
+
+ TRACE("iface %p, thread_group_count_x %u, thread_group_count_y %u, thread_group_count_z %u.\n",
iface, thread_group_count_x, thread_group_count_y, thread_group_count_z);
+
+ if (!(call = add_deferred_call(context, 0)))
+ return;
+
+ call->cmd = DEFERRED_DISPATCH;
+ call->dispatch_info.count_x = thread_group_count_x;
+ call->dispatch_info.count_y = thread_group_count_y;
+ call->dispatch_info.count_z = thread_group_count_z;
}
static void STDMETHODCALLTYPE d3d11_deferred_context_DispatchIndirect(ID3D11DeviceContext *iface,
--
2.11.0

View File

@@ -0,0 +1,97 @@
From a36710e9b8b7c3bef157b29baac3911c633f8e38 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 24 Jan 2017 04:48:56 +0100
Subject: d3d11: Implement CSSetUnorderedAccessViews for deferred contexts.
---
dlls/d3d11/device.c | 45 ++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 44 insertions(+), 1 deletion(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 644728f178a..8dd19910b7c 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -58,6 +58,8 @@ enum deferred_cmd
DEFERRED_PSSETCONSTANTBUFFERS, /* constant_buffers_info */
DEFERRED_VSSETCONSTANTBUFFERS, /* constant_buffers_info */
+ DEFERRED_CSSETUNORDEREDACCESSVIEWS, /* unordered_view */
+
DEFERRED_DRAWINDEXED, /* draw_indexed_info */
DEFERRED_DRAWINDEXEDINSTANCED, /* draw_indexed_inst_info */
@@ -166,6 +168,13 @@ struct deferred_call
} constant_buffers_info;
struct
{
+ UINT start_slot;
+ UINT num_views;
+ ID3D11UnorderedAccessView **views;
+ UINT *initial_counts;
+ } unordered_view;
+ struct
+ {
UINT count;
UINT start_index;
INT base_vertex;
@@ -426,6 +435,15 @@ static void free_deferred_calls(struct list *commands)
}
break;
}
+ case DEFERRED_CSSETUNORDEREDACCESSVIEWS:
+ {
+ for (i = 0; i < call->unordered_view.num_views; i++)
+ {
+ if (call->unordered_view.views[i])
+ ID3D11UnorderedAccessView_Release(call->unordered_view.views[i]);
+ }
+ break;
+ }
case DEFERRED_DRAWINDEXED:
case DEFERRED_DRAWINDEXEDINSTANCED:
{
@@ -595,6 +613,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
call->constant_buffers_info.num_buffers, call->constant_buffers_info.buffers);
break;
}
+ case DEFERRED_CSSETUNORDEREDACCESSVIEWS:
+ {
+ ID3D11DeviceContext_CSSetUnorderedAccessViews(iface, call->unordered_view.start_slot,
+ call->unordered_view.num_views, call->unordered_view.views, call->unordered_view.initial_counts);
+ break;
+ }
case DEFERRED_DRAWINDEXED:
{
ID3D11DeviceContext_DrawIndexed(iface, call->draw_indexed_info.count,
@@ -3682,8 +3706,27 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetShaderResources(ID3D11
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetUnorderedAccessViews(ID3D11DeviceContext *iface,
UINT start_slot, UINT view_count, ID3D11UnorderedAccessView *const *views, const UINT *initial_counts)
{
- FIXME("iface %p, start_slot %u, view_count %u, views %p, initial_counts %p stub!\n",
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
+ struct deferred_call *call;
+ int i;
+
+ TRACE("iface %p, start_slot %u, view_count %u, views %p, initial_counts %p.\n",
iface, start_slot, view_count, views, initial_counts);
+
+ if (!(call = add_deferred_call(context, view_count * (sizeof(*views) + sizeof(UINT)))))
+ return;
+
+ call->cmd = DEFERRED_CSSETUNORDEREDACCESSVIEWS;
+ call->unordered_view.start_slot = start_slot;
+ call->unordered_view.num_views = view_count;
+ call->unordered_view.views = (void *)(call + 1);
+ call->unordered_view.initial_counts = (void *)&call->unordered_view.views[view_count];
+ for (i = 0; i < view_count; i++)
+ {
+ if (views[i]) ID3D11UnorderedAccessView_AddRef(views[i]);
+ call->unordered_view.views[i] = views[i];
+ call->unordered_view.initial_counts[i] = initial_counts[i];
+ }
}
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetShader(ID3D11DeviceContext *iface,
--
2.11.0

View File

@@ -0,0 +1,85 @@
From 8adc88c6d9ab48d4014486775fcff6d869ae44ed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 24 Jan 2017 05:06:12 +0100
Subject: d3d11: Implement ClearRenderTargetView for deferred contexts.
---
dlls/d3d11/device.c | 33 ++++++++++++++++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 8dd19910b7c..46dddbd4d6c 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -67,6 +67,7 @@ enum deferred_cmd
DEFERRED_DISPATCH, /* dispatch_info */
DEFERRED_CLEARSTATE,
+ DEFERRED_CLEARRENDERTARGETVIEW, /* clear_rtv_info */
};
struct deferred_call
@@ -202,6 +203,11 @@ struct deferred_call
UINT count_y;
UINT count_z;
} dispatch_info;
+ struct
+ {
+ ID3D11RenderTargetView *rtv;
+ float color[4];
+ } clear_rtv_info;
};
};
@@ -462,6 +468,12 @@ static void free_deferred_calls(struct list *commands)
{
break; /* nothing to do */
}
+ case DEFERRED_CLEARRENDERTARGETVIEW:
+ {
+ if (call->clear_rtv_info.rtv)
+ ID3D11RenderTargetView_Release(call->clear_rtv_info.rtv);
+ break;
+ }
default:
{
FIXME("Unimplemented command type %u\n", call->cmd);
@@ -660,6 +672,12 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
ID3D11DeviceContext_ClearState(iface);
break;
}
+ case DEFERRED_CLEARRENDERTARGETVIEW:
+ {
+ ID3D11DeviceContext_ClearRenderTargetView(iface, call->clear_rtv_info.rtv,
+ call->clear_rtv_info.color);
+ break;
+ }
default:
{
FIXME("Unimplemented command type %u\n", call->cmd);
@@ -3542,8 +3560,21 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CopyStructureCount(ID3D11De
static void STDMETHODCALLTYPE d3d11_deferred_context_ClearRenderTargetView(ID3D11DeviceContext *iface,
ID3D11RenderTargetView *render_target_view, const float color_rgba[4])
{
- FIXME("iface %p, render_target_view %p, color_rgba %s stub!\n",
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
+ struct deferred_call *call;
+ int i;
+
+ TRACE("iface %p, render_target_view %p, color_rgba %s.\n",
iface, render_target_view, debug_float4(color_rgba));
+
+ if (!(call = add_deferred_call(context, 0)))
+ return;
+
+ call->cmd = DEFERRED_CLEARRENDERTARGETVIEW;
+ if (render_target_view) ID3D11RenderTargetView_AddRef(render_target_view);
+ call->clear_rtv_info.rtv = render_target_view;
+ for (i = 0; i < 4; i++)
+ call->clear_rtv_info.color[i] = color_rgba[i];
}
static void STDMETHODCALLTYPE d3d11_deferred_context_ClearUnorderedAccessViewUint(ID3D11DeviceContext *iface,
--
2.11.0

View File

@@ -0,0 +1,76 @@
From de1e3912b0b481e70ab6a4f739e8b2441f741be7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 24 Jan 2017 05:13:46 +0100
Subject: d3d11: Implement Draw for deferred contexts.
---
dlls/d3d11/device.c | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 46dddbd4d6c..1dfd6de7bde 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -60,6 +60,7 @@ enum deferred_cmd
DEFERRED_CSSETUNORDEREDACCESSVIEWS, /* unordered_view */
+ DEFERRED_DRAW, /* draw_info */
DEFERRED_DRAWINDEXED, /* draw_indexed_info */
DEFERRED_DRAWINDEXEDINSTANCED, /* draw_indexed_inst_info */
@@ -177,6 +178,11 @@ struct deferred_call
struct
{
UINT count;
+ UINT start;
+ } draw_info;
+ struct
+ {
+ UINT count;
UINT start_index;
INT base_vertex;
} draw_indexed_info;
@@ -450,6 +456,7 @@ static void free_deferred_calls(struct list *commands)
}
break;
}
+ case DEFERRED_DRAW:
case DEFERRED_DRAWINDEXED:
case DEFERRED_DRAWINDEXEDINSTANCED:
{
@@ -631,6 +638,11 @@ static void exec_deferred_calls(ID3D11DeviceContext *iface, struct list *command
call->unordered_view.num_views, call->unordered_view.views, call->unordered_view.initial_counts);
break;
}
+ case DEFERRED_DRAW:
+ {
+ ID3D11DeviceContext_Draw(iface, call->draw_info.count, call->draw_info.start);
+ break;
+ }
case DEFERRED_DRAWINDEXED:
{
ID3D11DeviceContext_DrawIndexed(iface, call->draw_indexed_info.count,
@@ -3090,8 +3102,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DrawIndexed(ID3D11DeviceCon
static void STDMETHODCALLTYPE d3d11_deferred_context_Draw(ID3D11DeviceContext *iface,
UINT vertex_count, UINT start_vertex_location)
{
- FIXME("iface %p, vertex_count %u, start_vertex_location %u stub!\n",
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
+ struct deferred_call *call;
+
+ TRACE("iface %p, vertex_count %u, start_vertex_location %u.\n",
iface, vertex_count, start_vertex_location);
+
+ if (!(call = add_deferred_call(context, 0)))
+ return;
+
+ call->cmd = DEFERRED_DRAW;
+ call->draw_info.count = vertex_count;
+ call->draw_info.start = start_vertex_location;
}
static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_Map(ID3D11DeviceContext *iface, ID3D11Resource *resource,
--
2.11.0

Some files were not shown because too many files have changed in this diff Show More