Compare commits

..

71 Commits
v8.20 ... v9.1

Author SHA1 Message Date
Alistair Leslie-Hughes
53c687fd47 Release v9.1 2024-01-27 17:30:38 +11:00
Alistair Leslie-Hughes
9c85f8e97a Updated vkd3d-latest patchset 2024-01-27 12:58:57 +11:00
Alistair Leslie-Hughes
a15917a85e Updated windows.networking.connectivity-new-dll patchset
Ran make_makefiles to update configure.ac
2024-01-27 12:32:15 +11:00
Alistair Leslie-Hughes
06139e25fa Updated fonts-Missing_Fonts patchset
run make_makefiles to fixup Makefile.in
2024-01-27 12:32:15 +11:00
Alistair Leslie-Hughes
e175b3e173 Updated vcomp_for_dynamic_init_i8 patchset
run make_specfiles to ensure all files are correct.
2024-01-27 12:32:15 +11:00
Zebediah Figura
1c14122a2d ddraw-version-check: Rebase and reënable.
Thanks to Aida JonikienÄ— for doing this rebase.
2024-01-26 18:27:53 -06:00
Zebediah Figura
92aa3c6389 wined3d-bindless-texture: Rebase and reënable.
Thanks to Aida JonikienÄ— for doing this rebase.
2024-01-26 17:58:34 -06:00
Zebediah Figura
72730e4340 user32-Mouse_Message_Hwnd: Rebase (mostly) and reënable.
The tests are left alone since they aren't particularly important and will need to be rewritten anyway.
They should probably be somewhere other than input.c, since they don't actually relate to input.
2024-01-26 17:41:53 -06:00
Zebediah Figura
065d60e3d7 Rebase against c963c4141a0d4f6601c37f11d79de186be0da6a9. 2024-01-26 17:31:02 -06:00
Zebediah Figura
fbae1b5a2c Rebase against eb5993a7c6fbc1cd9deac0dceabc8f1c76e14ba8. 2024-01-25 17:55:36 -06:00
Alistair Leslie-Hughes
4be0e7f2c6 Rebase against ab28825aceec92775fd570fc3a42c154366eceea. 2024-01-25 16:25:39 +11:00
Alistair Leslie-Hughes
e04949b586 Added scrrun_move_folder patchset 2024-01-24 13:42:41 +11:00
Alistair Leslie-Hughes
a878cd75dd Added msxml3-write_out_doc patchset 2024-01-24 13:13:27 +11:00
Alistair Leslie-Hughes
78b6fcffa8 Added msi-cabinet patchset 2024-01-24 13:12:34 +11:00
Alistair Leslie-Hughes
0419fcc658 Updated vkd3d-latest patchset 2024-01-24 12:28:57 +11:00
Alistair Leslie-Hughes
8928bbdbff Rebase against d81c4ce1ba700cca040afcf89c75c683b23e531d. 2024-01-24 10:55:59 +11:00
Zebediah Figura
034a07418d Rebase against 35ac0e7ac0511ef766f3f35220869565ce07906e. 2024-01-22 16:26:14 -06:00
Alistair Leslie-Hughes
e045af48e8 Updated vkd3d-latest patchset
Squashed afer release + rebased to latest (Added patch 0003).
2024-01-18 12:10:18 +11:00
Alistair Leslie-Hughes
19c6bb12cc Rebase against 1932c3a2516b181291ce430505dcfa8a82eb70bd. 2024-01-18 11:49:45 +11:00
Alistair Leslie-Hughes
cab93f47b8 Release v9.0 2024-01-17 08:47:35 +11:00
Alistair Leslie-Hughes
871a9455bb Updated vkd3d-latest patchset 2024-01-16 11:01:10 +11:00
Alistair Leslie-Hughes
15b6373d23 Fix warnings in various patchsets
Correct the warning thats issued when GetLastError wsa used for %u, changed to use the standard %lx format.
2024-01-14 09:17:25 +11:00
Zebediah Figura
f445af0deb xactengine-initial: Use SOURCES. 2024-01-13 13:33:54 -06:00
Zebediah Figura
3ee2f0e80c winedevice-Default_Drivers: Use SOURCES. 2024-01-13 13:33:45 -06:00
Zebediah Figura
b471290a81 odbc-remove-unixodbc: Use SOURCES. 2024-01-13 13:33:21 -06:00
Zebediah Figura
2e49ce0e85 cryptext-CryptExtOpenCER: Use SOURCES. 2024-01-13 13:33:10 -06:00
Alistair Leslie-Hughes
c26e42e521 Release v9.0-rc5 2024-01-13 14:00:42 +11:00
Alistair Leslie-Hughes
4f14df2caa Updated vkd3d-latest patchset 2024-01-13 12:21:42 +11:00
Alistair Leslie-Hughes
8a76fd6c73 Updated vkd3d-latest patchset 2024-01-10 07:41:15 +11:00
Alistair Leslie-Hughes
2f3062bc92 Release v9.0-rc4 2024-01-06 17:02:21 +11:00
Alistair Leslie-Hughes
ddfaf18da9 Rebase against d56fc6d318d96bb80495f015e271d485ac41b9d7. 2024-01-06 10:00:35 +11:00
Alistair Leslie-Hughes
40c8ba4a5b Updated vkd3d-latest patchset 2024-01-05 11:03:51 +11:00
Alistair Leslie-Hughes
836fa152e2 Updated vkd3d-latest patchset 2024-01-04 12:27:58 +11:00
Alistair Leslie-Hughes
92b36477fa Updated vkd3d-latest patchset 2024-01-03 19:11:38 +11:00
Alistair Leslie-Hughes
75f626ecc8 Release v9.0-rc3 2023-12-23 15:16:12 +11:00
Alistair Leslie-Hughes
2600edffb6 Release v9.0-rc2 2023-12-16 18:59:51 +11:00
Alistair Leslie-Hughes
a0ba29447f Updated vkd3d-latest patchset 2023-12-16 18:59:12 +11:00
Alistair Leslie-Hughes
5c20f9daef Rebase against 7a8c039a5c34fe0c625b3684b4c7026a21dd290e. 2023-12-16 09:53:42 +11:00
Alistair Leslie-Hughes
e7da8d2e49 Updated vkd3d-latest patchset 2023-12-14 10:29:38 +11:00
Alistair Leslie-Hughes
6a68d558cd Rebase against 19ad5bd598d603617341cbb2beec90bd69fa6349. 2023-12-14 10:05:14 +11:00
Alistair Leslie-Hughes
06d1eb5825 Updated vkd3d-latest patchset 2023-12-13 18:30:39 +11:00
Alistair Leslie-Hughes
8984896a4d Added programs-where patchset 2023-12-13 18:29:14 +11:00
Alistair Leslie-Hughes
713c9cba97 Added setupapi-DriverStoreFindDriverPackageW patchset 2023-12-13 18:28:24 +11:00
Alistair Leslie-Hughes
2c4143bc13 Release v9.0-rc1 2023-12-09 13:54:24 +11:00
Alistair Leslie-Hughes
74a39ff539 Updated vkd3d-latest patchset
Fixed header path for list/rbtree/.h
2023-12-08 14:19:28 +11:00
Alistair Leslie-Hughes
0d3b1342bb Updated vkd3d-latest patchset 2023-12-08 13:32:00 +11:00
Alistair Leslie-Hughes
10db6d3f1f Rebase against f0c08bd01e6d3b01bfc28961bb5922b94ecbb7bc. 2023-12-07 14:54:04 +11:00
Alistair Leslie-Hughes
a59492214b Rebase against 30c074963acd05a3a31676085653460eea86bc78. 2023-12-06 10:12:36 +11:00
Paul Gofman
c55ec69939 ntdll-ForceBottomUpAlloc: fix a crash in debug.c:init_options().
After upstream commit 62a979347a4dc1bd68f79b86397de85c016ec588
any TRACE() present on the way of virtual_init() will cause
a crash with WINEDEBUG present regardless of actual debug channels.
Avoid TRACE in virtual_init().
2023-12-03 15:53:53 -06:00
Paul Gofman
33d3ba124f ntdll-Syscall_Emulation: Fix compilation. 2023-12-03 13:42:02 -06:00
Paul Gofman
3f29e4a76e ntdll-ForceBottomUpAlloc: Rebase and reenable. 2023-12-03 13:30:37 -06:00
Zebediah Figura
63aff53684 Rebase against 369b540abf32869df8e9b28e283d795ae92b6a05. 2023-12-01 17:23:49 -06:00
Zebediah Figura
e9a9a6e87f mfplat-streaming-support: Remove patch 0043.
This has no real effect. It was probably written because it looks more correct, but it never actually matters: we only get a short read at EOF, and in that case we will break out at the next iteration anyway.
2023-12-01 17:14:16 -06:00
Zebediah Figura
66c86503bd Rebase against 1e4db62e0ba0b8595748c94b032dfb0064207de1. 2023-11-30 17:52:18 -06:00
Zebediah Figura
6702ce8bcc ntdll-DOS_Attributes: Remove patch 0008.
This was done by 824547805559ee4993b8113436161638f3cd7990.
2023-11-29 23:42:01 -06:00
Zebediah Figura
ebab7bc29e ntdll-DOS_Attributes: Remove patch 0007.
This is refactoring, and as it happens was effectively done by a8b6966a91453f5c6147dc2c74a337d016bbd53a.
2023-11-29 23:39:23 -06:00
Zebediah Figura
ecb88d82a3 d3d12core-D3D12GetInterface: Remove patch set.
No real application has yet been found that requires this.
2023-11-29 23:32:43 -06:00
Zebediah Figura
a0ada8ef9f Fix rebase. 2023-11-29 20:00:02 -06:00
Zebediah Figura
614cfc4589 Rebase against fcddf19498fca9b51baea705f5748b998f4560b9. 2023-11-29 18:35:48 -06:00
Alistair Leslie-Hughes
97a1486fb9 Rebase against bc13bda5ee4edaafa7ba9472d41acbad50c42112. 2023-11-29 14:48:04 +11:00
Alistair Leslie-Hughes
301f1b35fc Updated vkd3d-latest patchset 2023-11-28 12:32:57 +11:00
Alistair Leslie-Hughes
0054ae2116 Rebase against 6343dc6c9571fce20cd00102c5b0bd5c96861cfd. 2023-11-28 11:46:56 +11:00
Alistair Leslie-Hughes
e546e2f1e3 Release v8.21 2023-11-25 15:29:41 +11:00
Alistair Leslie-Hughes
234289ffd8 Rebase against 13c43cf3d06178dc39d98981f55d27e3cbd79ad0. 2023-11-25 13:08:00 +11:00
Alistair Leslie-Hughes
52219e1eef Rebase against e04c976fa95776300ee5b485a6b65c0071d3bb84.
Sync to latest code - macos issue
2023-11-24 20:06:01 +11:00
Alistair Leslie-Hughes
d5bf5c5e7d Updatred vkd3d-latest patchset
Fix for macos build.  Squished update into one.
2023-11-24 19:40:14 +11:00
Alistair Leslie-Hughes
d1eba8eddd Updated vkd3d-latest patchset 2023-11-24 19:14:11 +11:00
Alistair Leslie-Hughes
8717caf994 Rebase against 9b9f7a007786b32a4c80f69ceb6753acdc8c2091. 2023-11-23 09:53:41 +11:00
Alistair Leslie-Hughes
6278681370 Rebase against c64aa0006e4a33d755a57a693cd81dc1ed95fa9d. 2023-11-17 11:20:22 +11:00
Alistair Leslie-Hughes
a101f89071 Rebase against b0ad8b8cfb6e664cc6cfdd87ddb28af077149417. 2023-11-16 11:07:12 +11:00
Alistair Leslie-Hughes
e278be7a45 Rebase against 137638e185e9302602bcd9cc796d7bcfa03caee5. 2023-11-15 15:40:46 +11:00
128 changed files with 20286 additions and 24948 deletions

View File

@@ -1,4 +1,4 @@
From 3dd0480317fe0ed3951daf1cf5757204d11a1ae5 Mon Sep 17 00:00:00 2001
From bd5dfbb4768404c53ad623a2c0b3c3b9d635b562 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Tue, 22 Mar 2016 21:55:12 +0100
Subject: [PATCH] d3d9: Avoid implicit cast of interface pointer.
@@ -8,10 +8,10 @@ Subject: [PATCH] d3d9: Avoid implicit cast of interface pointer.
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/d3d9/texture.c b/dlls/d3d9/texture.c
index d3662f8..ebc3413 100644
index 4de7d2eb99e..9a4ab3601e3 100644
--- a/dlls/d3d9/texture.c
+++ b/dlls/d3d9/texture.c
@@ -25,17 +25,17 @@ WINE_DEFAULT_DEBUG_CHANNEL(d3d9);
@@ -77,17 +77,17 @@ static void d3d9_texture_preload(struct d3d9_texture *texture)
static inline struct d3d9_texture *impl_from_IDirect3DTexture9(IDirect3DTexture9 *iface)
{
@@ -31,7 +31,7 @@ index d3662f8..ebc3413 100644
+ return CONTAINING_RECORD((IDirect3DBaseTexture9 *)iface, struct d3d9_texture, IDirect3DBaseTexture9_iface);
}
static void STDMETHODCALLTYPE srv_wined3d_object_destroyed(void *parent)
/* wined3d critical section must be taken by the caller. */
--
1.9.1
2.42.0

View File

@@ -1,4 +1,4 @@
From e6354103c243e13c177f6a534a9e786cfdcf7c92 Mon Sep 17 00:00:00 2001
From f48fa2ff628c3262245593301a141dee31118fd4 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 2 Oct 2014 19:44:31 +0200
Subject: [PATCH] ntdll: Print a warning message specifying the wine-staging
@@ -9,7 +9,7 @@ Subject: [PATCH] ntdll: Print a warning message specifying the wine-staging
1 file changed, 15 insertions(+)
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 1a87f4d1f5e..31c0a3bae94 100644
index 021f7941969..68cb4b25d85 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -42,6 +42,7 @@ WINE_DECLARE_DEBUG_CHANNEL(relay);
@@ -20,7 +20,7 @@ index 1a87f4d1f5e..31c0a3bae94 100644
#ifdef _WIN64
#define DEFAULT_SECURITY_COOKIE_64 (((ULONGLONG)0x00002b99 << 32) | 0x2ddfa232)
@@ -3749,6 +3750,7 @@ void WINAPI LdrShutdownProcess(void)
@@ -3822,6 +3823,7 @@ void WINAPI LdrShutdownProcess(void)
process_detach();
}
@@ -28,7 +28,7 @@ index 1a87f4d1f5e..31c0a3bae94 100644
/******************************************************************
* RtlExitUserProcess (NTDLL.@)
@@ -4195,6 +4197,9 @@ static void release_address_space(void)
@@ -4244,6 +4246,9 @@ static void release_address_space(void)
*/
void loader_init( CONTEXT *context, void **entry )
{
@@ -37,8 +37,8 @@ index 1a87f4d1f5e..31c0a3bae94 100644
+ HANDLE staging_event;
static int attach_done;
NTSTATUS status;
ULONG_PTR cookie;
@@ -4274,6 +4279,16 @@ void loader_init( CONTEXT *context, void **entry )
ULONG_PTR cookie, port = 0;
@@ -4317,6 +4322,16 @@ void loader_init( CONTEXT *context, void **entry )
if (NtCurrentTeb()->WowTebOffset) init_wow64( context );
#endif
@@ -56,5 +56,5 @@ index 1a87f4d1f5e..31c0a3bae94 100644
InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks );
RtlReleasePebLock();
--
2.42.0
2.43.0

View File

@@ -45,7 +45,7 @@ index 5c00298d41e..d04f5645345 100644
+
+ status = LsaOpenPolicy( &machine, &object_attributes, POLICY_LOOKUP_NAMES, &handle);
+ ok(status == RPC_NT_SERVER_UNAVAILABLE,
+ "LsaOpenPolicy(POLICY_LOOKUP_NAMES) for invalid machine returned 0x%08x\n", status);
+ "LsaOpenPolicy(POLICY_LOOKUP_NAMES) for invalid machine returned 0x%08lx\n", status);
+
status = LsaOpenPolicy( NULL, &object_attributes, POLICY_ALL_ACCESS, &handle);
ok(status == STATUS_SUCCESS || status == STATUS_ACCESS_DENIED,

View File

@@ -1,312 +0,0 @@
From 1768ecfc4a7181600df254069f02655fe4e5fa0b Mon Sep 17 00:00:00 2001
From: Derek Lesho <dlesho@codeweavers.com>
Date: Fri, 2 Oct 2020 11:29:24 -0500
Subject: [PATCH] bcrypt: Allow multiple backends to coexist.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
---
dlls/bcrypt/Makefile.in | 3 +-
dlls/bcrypt/bcrypt_internal.h | 3 +
dlls/bcrypt/gnutls.c | 32 ++++--
dlls/bcrypt/unixlib.c | 208 ++++++++++++++++++++++++++++++++++
4 files changed, 235 insertions(+), 11 deletions(-)
create mode 100644 dlls/bcrypt/unixlib.c
diff --git a/dlls/bcrypt/Makefile.in b/dlls/bcrypt/Makefile.in
index 63a731fa9d9..6dd3066d4a5 100644
--- a/dlls/bcrypt/Makefile.in
+++ b/dlls/bcrypt/Makefile.in
@@ -8,6 +8,7 @@ C_SRCS = \
gnutls.c \
md2.c \
sha256.c \
- sha512.c
+ sha512.c \
+ unixlib.c
RC_SRCS = version.rc
diff --git a/dlls/bcrypt/bcrypt_internal.h b/dlls/bcrypt/bcrypt_internal.h
index 61c367cae9d..d0697ed807e 100644
--- a/dlls/bcrypt/bcrypt_internal.h
+++ b/dlls/bcrypt/bcrypt_internal.h
@@ -219,4 +219,7 @@ struct key_funcs
NTSTATUS (CDECL *key_import_rsa)( struct key *, UCHAR *, ULONG );
};
+struct key_funcs *gnutls_lib_init(DWORD reason);
+struct key_funcs *macos_lib_init(DWORD reason);
+
#endif /* __BCRYPT_INTERNAL_H */
diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c
index 7b1bceda889..66845ffc8cf 100644
--- a/dlls/bcrypt/gnutls.c
+++ b/dlls/bcrypt/gnutls.c
@@ -373,9 +373,12 @@ fail:
static void gnutls_uninitialize(void)
{
- pgnutls_global_deinit();
- dlclose( libgnutls_handle );
- libgnutls_handle = NULL;
+ if (libgnutls_handle)
+ {
+ pgnutls_global_deinit();
+ dlclose( libgnutls_handle );
+ libgnutls_handle = NULL;
+ }
}
struct buffer
@@ -1894,19 +1897,28 @@ static const struct key_funcs key_funcs =
key_import_rsa
};
-NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *ptr_in, void *ptr_out )
+struct key_funcs * gnutls_lib_init( DWORD reason )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
- if (!gnutls_initialize()) return STATUS_DLL_NOT_FOUND;
- *(const struct key_funcs **)ptr_out = &key_funcs;
- break;
+ if (!gnutls_initialize()) return NULL;
+ return &key_funcs;
case DLL_PROCESS_DETACH:
if (libgnutls_handle) gnutls_uninitialize();
- break;
}
- return STATUS_SUCCESS;
+ return NULL;
}
-#endif /* HAVE_GNUTLS_CIPHER_INIT */
+#else /* HAVE_GNUTLS_CIPHER_INIT */
+#include "ntstatus.h"
+#define WIN32_NO_STATUS
+#include "windef.h"
+#include "winbase.h"
+#include "winternl.h"
+
+struct key_funcs * gnutls_lib_init( DWORD reason )
+{
+ return NULL;
+}
+#endif
diff --git a/dlls/bcrypt/unixlib.c b/dlls/bcrypt/unixlib.c
new file mode 100644
index 00000000000..1937a8172a4
--- /dev/null
+++ b/dlls/bcrypt/unixlib.c
@@ -0,0 +1,208 @@
+#if 0
+#pragma makedep unix
+#endif
+
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+
+#include "ntstatus.h"
+#define WIN32_NO_STATUS
+#include "windef.h"
+#include "winbase.h"
+#include "ntsecapi.h"
+#include "bcrypt.h"
+
+#include "bcrypt_internal.h"
+
+#include "wine/debug.h"
+#include "wine/unicode.h"
+
+#if defined(HAVE_COMMONCRYPTO_COMMONCRYPTOR_H) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 || defined(HAVE_GNUTLS_CIPHER_INIT)
+WINE_DEFAULT_DEBUG_CHANNEL(bcrypt);
+
+static NTSTATUS CDECL key_set_property( struct key *key, const WCHAR *prop, UCHAR *value, ULONG size, ULONG flags )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_symmetric_init( struct key *key )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static void CDECL key_symmetric_vector_reset( struct key *key )
+{
+ FIXME( "not implemented\n" );
+}
+
+static NTSTATUS CDECL key_symmetric_set_auth_data( struct key *key, UCHAR *auth_data, ULONG len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_symmetric_encrypt( struct key *key, const UCHAR *input, ULONG input_len, UCHAR *output, ULONG output_len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_symmetric_decrypt( struct key *key, const UCHAR *input, ULONG input_len, UCHAR *output, ULONG output_len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_symmetric_get_tag( struct key *key, UCHAR *tag, ULONG len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static void CDECL key_symmetric_destroy( struct key *key )
+{
+ FIXME( "not implemented\n" );
+}
+
+static NTSTATUS CDECL key_asymmetric_init( struct key *key )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_asymmetric_sign( struct key *key, void *padding, UCHAR *input, ULONG input_len, UCHAR *output,
+ ULONG output_len, ULONG *ret_len, ULONG flags )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_asymmetric_verify( struct key *key, void *padding, UCHAR *hash, ULONG hash_len,
+ UCHAR *signature, ULONG signature_len, DWORD flags )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_export_dsa_capi( struct key *key, UCHAR *buf, ULONG len, ULONG *ret_len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_export_ecc( struct key *key, UCHAR *output, ULONG len, ULONG *ret_len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_import_dsa_capi( struct key *key, UCHAR *buf, ULONG len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_import_ecc( struct key *key, UCHAR *input, ULONG len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_asymmetric_generate( struct key *key )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_asymmetric_duplicate( struct key *key_orig, struct key *key_copy )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static void CDECL key_asymmetric_destroy( struct key *key )
+{
+ FIXME( "not implemented\n" );
+}
+
+static NTSTATUS CDECL key_asymmetric_decrypt( struct key *key, UCHAR *input, ULONG input_len,
+ UCHAR *output, ULONG output_len, ULONG *ret)
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_import_rsa( struct key *key, UCHAR *input, ULONG input_len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static struct key_funcs key_funcs =
+{
+ key_set_property,
+ key_symmetric_init,
+ key_symmetric_vector_reset,
+ key_symmetric_set_auth_data,
+ key_symmetric_encrypt,
+ key_symmetric_decrypt,
+ key_symmetric_get_tag,
+ key_symmetric_destroy,
+ key_asymmetric_init,
+ key_asymmetric_generate,
+ key_asymmetric_decrypt,
+ key_asymmetric_duplicate,
+ key_asymmetric_sign,
+ key_asymmetric_verify,
+ key_asymmetric_destroy,
+ key_export_dsa_capi,
+ key_export_ecc,
+ key_import_dsa_capi,
+ key_import_ecc,
+ key_import_rsa,
+};
+
+NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *ptr_in, void *ptr_out )
+{
+ struct key_funcs *gnutls_funcs = gnutls_lib_init(reason);
+
+ if (reason == DLL_PROCESS_ATTACH)
+ {
+#define RESOLVE_FUNC(name) \
+ if (gnutls_funcs && gnutls_funcs->key_##name) \
+ key_funcs.key_##name = gnutls_funcs->key_##name;
+
+ RESOLVE_FUNC(set_property)
+ RESOLVE_FUNC(symmetric_init)
+ RESOLVE_FUNC(symmetric_vector_reset)
+ RESOLVE_FUNC(symmetric_set_auth_data)
+ RESOLVE_FUNC(symmetric_encrypt)
+ RESOLVE_FUNC(symmetric_decrypt)
+ RESOLVE_FUNC(symmetric_get_tag)
+ RESOLVE_FUNC(symmetric_destroy)
+ RESOLVE_FUNC(asymmetric_init)
+ RESOLVE_FUNC(asymmetric_generate)
+ RESOLVE_FUNC(asymmetric_decrypt)
+ RESOLVE_FUNC(asymmetric_duplicate)
+ RESOLVE_FUNC(asymmetric_sign)
+ RESOLVE_FUNC(asymmetric_verify)
+ RESOLVE_FUNC(asymmetric_destroy)
+ RESOLVE_FUNC(export_dsa_capi)
+ RESOLVE_FUNC(export_ecc)
+ RESOLVE_FUNC(import_dsa_capi)
+ RESOLVE_FUNC(import_ecc)
+ RESOLVE_FUNC(import_rsa)
+
+#undef RESOLVE_FUNC
+
+ *(struct key_funcs **)ptr_out = &key_funcs;
+ }
+
+ return STATUS_SUCCESS;
+}
+
+#endif
--
2.33.0

View File

@@ -1,155 +0,0 @@
From 305131e59c071ca84e4447ab053b04bf4023fee8 Mon Sep 17 00:00:00 2001
From: Derek Lesho <dlesho@codeweavers.com>
Date: Tue, 7 Jan 2020 14:22:49 -0600
Subject: [PATCH] bcrypt: Implement BCRYPT_KDF_HASH.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47699
Signed-off-by: Derek Lesho <dlesho at codeweavers.com>
---
dlls/bcrypt/bcrypt_main.c | 108 ++++++++++++++++++++++++++++++++++++-
dlls/bcrypt/tests/bcrypt.c | 3 +-
2 files changed, 108 insertions(+), 3 deletions(-)
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
index 0655c5dcfe81..70e914bd41f1 100644
--- a/dlls/bcrypt/bcrypt_main.c
+++ b/dlls/bcrypt/bcrypt_main.c
@@ -1993,7 +1993,113 @@ NTSTATUS WINAPI BCryptDeriveKey(BCRYPT_SECRET_HANDLE handle, LPCWSTR kdf, BCrypt
if (!secret || secret->hdr.magic != MAGIC_SECRET) return STATUS_INVALID_HANDLE;
if (!kdf) return STATUS_INVALID_PARAMETER;
- if (!(lstrcmpW( kdf, BCRYPT_KDF_RAW_SECRET )))
+ if (flags) FIXME("flags ignored: %08x\n", flags);
+
+ if (!(lstrcmpW( kdf, BCRYPT_KDF_HASH )))
+ {
+ unsigned int i;
+ BCryptBuffer *hash_algorithm = NULL;
+ BCryptBuffer *secret_prepend = NULL;
+ BCryptBuffer *secret_append = NULL;
+ enum alg_id hash_alg_id;
+ ULONG hash_length;
+ struct hash_impl hash;
+ NTSTATUS status;
+
+ if (parameter)
+ {
+ for (i = 0; i < parameter->cBuffers; i++)
+ {
+ BCryptBuffer *cur_buffer = &parameter->pBuffers[i];
+ switch(cur_buffer->BufferType)
+ {
+ case KDF_HASH_ALGORITHM:
+ if (hash_algorithm)
+ FIXME("Duplicate KDF_HASH_ALGORITHM, untested\n");
+ hash_algorithm = cur_buffer;
+ break;
+ case KDF_SECRET_PREPEND:
+ if (secret_prepend)
+ FIXME("Multiple prefixes unsupported\n");
+ secret_prepend = cur_buffer;
+ break;
+ case KDF_SECRET_APPEND:
+ if (secret_append)
+ FIXME("Multiple suffixes unsupported\n");
+ secret_append = cur_buffer;
+ break;
+ default:
+ FIXME("Unsupported BCRYPT_KDF_HASH parameter type %x\n", cur_buffer->BufferType);
+ break;
+ }
+ }
+ }
+
+ if (!(hash_algorithm))
+ hash_alg_id = ALG_ID_SHA1;
+ else
+ {
+ for (i = 0; i < ARRAY_SIZE( builtin_algorithms ); i++)
+ {
+ if (!lstrcmpW( hash_algorithm->pvBuffer, builtin_algorithms[i].name))
+ {
+ hash_alg_id = i;
+ break;
+ }
+ }
+ if (i == ARRAY_SIZE(builtin_algorithms))
+ {
+ WARN("Algorithm %s not found\n", debugstr_w(hash_algorithm->pvBuffer));
+ return STATUS_NOT_SUPPORTED;
+ }
+ if (builtin_algorithms[hash_alg_id].class != BCRYPT_HASH_INTERFACE)
+ {
+ return STATUS_NOT_SUPPORTED;
+ }
+ }
+
+ hash_length = builtin_algorithms[hash_alg_id].hash_length;
+
+ if (!derived)
+ {
+ *result = hash_length;
+ return STATUS_SUCCESS;
+ }
+
+ if ((status = hash_init(&hash, hash_alg_id)))
+ {
+ return status;
+ }
+
+ if (secret_prepend)
+ {
+ hash_update(&hash, hash_alg_id, secret_prepend->pvBuffer, secret_prepend->cbBuffer);
+ }
+
+ hash_update(&hash, hash_alg_id, secret->data, secret->len);
+
+ if (secret_append)
+ {
+ hash_update(&hash, hash_alg_id, secret_append->pvBuffer, secret_append->cbBuffer);
+ }
+
+ if (derived_size >= hash_length)
+ {
+ hash_finish(&hash, hash_alg_id, derived, derived_size);
+ *result = hash_length;
+ }
+ else
+ {
+ UCHAR *output = heap_alloc(hash_length);
+ hash_finish(&hash, hash_alg_id, output, hash_length);
+ memcpy(derived, output, derived_size);
+ heap_free(output);
+ *result = derived_size;
+ }
+
+ return STATUS_SUCCESS;
+ }
+ else if (!(lstrcmpW( kdf, BCRYPT_KDF_RAW_SECRET )))
{
ULONG n;
ULONG secret_length = secret->len;
diff --git a/dlls/bcrypt/tests/bcrypt.c b/dlls/bcrypt/tests/bcrypt.c
index 6be406dee21f..b13432523d15 100644
--- a/dlls/bcrypt/tests/bcrypt.c
+++ b/dlls/bcrypt/tests/bcrypt.c
@@ -2180,7 +2180,7 @@ static void test_ECDH(void)
raw_secret_end:
status = pBCryptDeriveKey(secret, BCRYPT_KDF_HASH, &hash_params, NULL, 0, &size, 0);
- todo_wine ok (status == STATUS_SUCCESS, "got %08x\n", status);
+ ok (status == STATUS_SUCCESS, "got %08x\n", status);
if (status != STATUS_SUCCESS)
{
@@ -2716,7 +2716,6 @@ static void test_SecretAgreement(void)
ok(status == STATUS_INVALID_PARAMETER, "got %08x\n", status);
status = pBCryptDeriveKey(secret, L"HASH", NULL, NULL, 0, &size, 0);
- todo_wine
ok(status == STATUS_SUCCESS, "got %08x\n", status);
status = pBCryptDestroyHash(secret);
--
2.29.2

View File

@@ -1,6 +0,0 @@
Fixes: [47699] Multiple games fail to connect to online services (missing BCryptSecretAgreement / BCryptDeriveKey implementation)
# Needs to be moved to the unix lib, but that's a nontrivial amount of work, and
# using gcrypt is the wrong way forward (we should expose the missing APIs from
# gnutls instead).
# Temporarily disabled pending a rebase from author.
Disabled: true

View File

@@ -1,4 +1,4 @@
From eddc40dbf4048ceea1fda7f842adad340865723b Mon Sep 17 00:00:00 2001
From e6c1c1fe3fe2f4fe7d3e421b94d925c40063af22 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Fri, 5 Jul 2019 13:20:23 +0800
Subject: [PATCH] cryptext: Implement CryptExtOpenCER.
@@ -17,10 +17,10 @@ Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
create mode 100644 dlls/cryptext/tests/cryptext.c
diff --git a/configure b/configure
index 6425e4da5f8..c97671cdfc6 100755
index ca6e87d4740..7033499399f 100755
--- a/configure
+++ b/configure
@@ -21346,6 +21346,7 @@ wine_fn_config_makefile dlls/crypt32/tests enable_tests
@@ -21660,6 +21660,7 @@ wine_fn_config_makefile dlls/crypt32/tests enable_tests
wine_fn_config_makefile dlls/cryptdlg enable_cryptdlg
wine_fn_config_makefile dlls/cryptdll enable_cryptdll
wine_fn_config_makefile dlls/cryptext enable_cryptext
@@ -29,10 +29,10 @@ index 6425e4da5f8..c97671cdfc6 100755
wine_fn_config_makefile dlls/cryptnet/tests enable_tests
wine_fn_config_makefile dlls/cryptowinrt enable_cryptowinrt
diff --git a/configure.ac b/configure.ac
index b5a3b0069fb..73b1b1c8c2b 100644
index cba55126869..57064a05fe5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2450,6 +2450,7 @@ WINE_CONFIG_MAKEFILE(dlls/crypt32/tests)
@@ -2477,6 +2477,7 @@ WINE_CONFIG_MAKEFILE(dlls/crypt32/tests)
WINE_CONFIG_MAKEFILE(dlls/cryptdlg)
WINE_CONFIG_MAKEFILE(dlls/cryptdll)
WINE_CONFIG_MAKEFILE(dlls/cryptext)
@@ -41,7 +41,7 @@ index b5a3b0069fb..73b1b1c8c2b 100644
WINE_CONFIG_MAKEFILE(dlls/cryptnet/tests)
WINE_CONFIG_MAKEFILE(dlls/cryptowinrt)
diff --git a/dlls/cryptext/Makefile.in b/dlls/cryptext/Makefile.in
index 0ec2b8a2045..76accca43eb 100644
index 5598bfb78e0..acda4e4ac6d 100644
--- a/dlls/cryptext/Makefile.in
+++ b/dlls/cryptext/Makefile.in
@@ -1,4 +1,5 @@
@@ -151,13 +151,13 @@ index 537ba66cd3b..a4314518eac 100644
+}
diff --git a/dlls/cryptext/tests/Makefile.in b/dlls/cryptext/tests/Makefile.in
new file mode 100644
index 00000000000..522fc60a4af
index 00000000000..c3f4551fc00
--- /dev/null
+++ b/dlls/cryptext/tests/Makefile.in
@@ -0,0 +1,4 @@
+TESTDLL = cryptext.dll
+
+C_SRCS = \
+SOURCES = \
+ cryptext.c
diff --git a/dlls/cryptext/tests/cryptext.c b/dlls/cryptext/tests/cryptext.c
new file mode 100644
@@ -227,5 +227,5 @@ index 00000000000..ab1007dbd82
+ test_CryptExtOpenCER();
+}
--
2.35.1
2.43.0

View File

@@ -1,69 +0,0 @@
From b30d3de1043cef20b57984035968fc78d5fcd2bb Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 22 Jul 2023 10:22:03 +1000
Subject: [PATCH] d3d12core: Add D3D12GetInterface stub
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55135
---
dlls/d3d12core/Makefile.in | 3 +++
dlls/d3d12core/d3d12core.spec | 2 +-
dlls/d3d12core/d3d12core_main.c | 30 ++++++++++++++++++++++++++++++
3 files changed, 34 insertions(+), 1 deletion(-)
create mode 100644 dlls/d3d12core/d3d12core_main.c
diff --git a/dlls/d3d12core/Makefile.in b/dlls/d3d12core/Makefile.in
index 8778b66138b..94d8fd4da00 100644
--- a/dlls/d3d12core/Makefile.in
+++ b/dlls/d3d12core/Makefile.in
@@ -1 +1,4 @@
MODULE = d3d12core.dll
+
+C_SRCS = \
+ d3d12core_main.c
diff --git a/dlls/d3d12core/d3d12core.spec b/dlls/d3d12core/d3d12core.spec
index c9c73bd4ee4..3f3e0a0f2e1 100644
--- a/dlls/d3d12core/d3d12core.spec
+++ b/dlls/d3d12core/d3d12core.spec
@@ -1,2 +1,2 @@
-@ stub D3D12GetInterface
+@ stdcall D3D12GetInterface(ptr ptr ptr)
@ stub D3D12SDKVersion
diff --git a/dlls/d3d12core/d3d12core_main.c b/dlls/d3d12core/d3d12core_main.c
new file mode 100644
index 00000000000..75a083ad276
--- /dev/null
+++ b/dlls/d3d12core/d3d12core_main.c
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2023 Alistair Leslie-Hughes
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <stdarg.h>
+
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d12core);
+
+HRESULT WINAPI D3D12GetInterface(REFCLSID rclsid, REFIID riid, void **out)
+{
+ FIXME("%s, %s, %p\n", debugstr_guid(rclsid), debugstr_guid(riid), out);
+
+ return E_NOINTERFACE;
+}
--
2.40.1

View File

@@ -1 +0,0 @@
Fixes: [55135] d3d12core: Add D3D12GetInterface stub

View File

@@ -39,7 +39,7 @@ index b81fb6863d3..75ee6d44a95 100644
+ FIXME("Skinning vertices with two position elements not supported\n");
+
+ if ((skin->fvf & D3DFVF_POSITION_MASK) != D3DFVF_XYZ) {
+ FIXME("Vertex type %#x not supported\n", skin->fvf & D3DFVF_POSITION_MASK);
+ FIXME("Vertex type %#lx not supported\n", skin->fvf & D3DFVF_POSITION_MASK);
+ return E_FAIL;
+ }
+

View File

@@ -1,4 +1,4 @@
From f1dba65707a5a8ef5ec2d9c8213134b01cd735e2 Mon Sep 17 00:00:00 2001
From 0a5214d0fe032778fa3ca4ee60c3d2ba64f8f4c0 Mon Sep 17 00:00:00 2001
From: Matthew Wong <itsmattkc@gmail.com>
Date: Fri, 18 Sep 2020 00:47:13 +0000
Subject: [PATCH] ddraw: Implement Pick() and GetPickRecords().
@@ -33,14 +33,14 @@ Signed-off-by: Myah Caron <qsniyg@protonmail.com>
dlls/ddraw/ddraw_private.h | 7 +-
dlls/ddraw/device.c | 67 ++++++++++++--
dlls/ddraw/executebuffer.c | 176 ++++++++++++++++++++++++++++++++++++-
dlls/ddraw/tests/ddraw1.c | 131 +++++++++++++++++++++++++++
4 files changed, 371 insertions(+), 10 deletions(-)
dlls/ddraw/tests/ddraw1.c | 133 ++++++++++++++++++++++++++++
4 files changed, 373 insertions(+), 10 deletions(-)
diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h
index 01a9579651c..889a64219e5 100644
index 6fc93b91860..c90b894ea61 100644
--- a/dlls/ddraw/ddraw_private.h
+++ b/dlls/ddraw/ddraw_private.h
@@ -336,6 +336,11 @@ struct d3d_device
@@ -338,6 +338,11 @@ struct d3d_device
struct d3d_viewport *current_viewport;
D3DVIEWPORT7 active_viewport;
@@ -52,7 +52,7 @@ index 01a9579651c..889a64219e5 100644
/* Required to keep track which of two available texture blending modes in d3ddevice3 is used */
BOOL legacyTextureBlending;
D3DTEXTUREBLEND texture_map_blend;
@@ -569,7 +574,7 @@ struct d3d_execute_buffer *unsafe_impl_from_IDirect3DExecuteBuffer(IDirect3DExec
@@ -571,7 +576,7 @@ struct d3d_execute_buffer *unsafe_impl_from_IDirect3DExecuteBuffer(IDirect3DExec
/* The execute function */
HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *execute_buffer,
@@ -62,7 +62,7 @@ index 01a9579651c..889a64219e5 100644
/*****************************************************************************
* IDirect3DVertexBuffer
diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
index 80556e96787..b3b63d7b361 100644
index bc1d91ee00b..82a813f9064 100644
--- a/dlls/ddraw/device.c
+++ b/dlls/ddraw/device.c
@@ -349,6 +349,9 @@ static ULONG WINAPI d3d_device_inner_Release(IUnknown *iface)
@@ -172,7 +172,7 @@ index 80556e96787..b3b63d7b361 100644
return D3D_OK;
}
diff --git a/dlls/ddraw/executebuffer.c b/dlls/ddraw/executebuffer.c
index 13e639eda3f..bb050fe16b8 100644
index 320ce6649d4..84366dafd7d 100644
--- a/dlls/ddraw/executebuffer.c
+++ b/dlls/ddraw/executebuffer.c
@@ -45,15 +45,106 @@ static void _dump_D3DEXECUTEBUFFERDESC(const D3DEXECUTEBUFFERDESC *lpDesc) {
@@ -387,10 +387,10 @@ index 13e639eda3f..bb050fe16b8 100644
static inline struct d3d_execute_buffer *impl_from_IDirect3DExecuteBuffer(IDirect3DExecuteBuffer *iface)
{
diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index f5fc7b04053..b6374e75632 100644
index d8fcb188c40..bacd9049d6e 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -15429,6 +15429,136 @@ static void test_enum_devices(void)
@@ -15467,6 +15467,137 @@ static void test_enum_devices(void)
ok(!refcount, "Device has %lu references left.\n", refcount);
}
@@ -521,13 +521,22 @@ index f5fc7b04053..b6374e75632 100644
+ IDirect3DExecuteBuffer_Release(execute_buffer);
+ IDirect3DDevice_Release(device);
+ IDirectDraw_Release(ddraw);
+
+ DestroyWindow(window);
+}
+
START_TEST(ddraw1)
{
DDDEVICEIDENTIFIER identifier;
@@ -15545,6 +15675,7 @@ START_TEST(ddraw1)
/* Emperor: Rise of the Middle Kingdom locks a sysmem surface and then accesses
* the pointer after unlocking it. This test roughly replicates the calls that
* it makes. */
@@ -15527,6 +15658,7 @@ static void test_pinned_sysmem(void)
IDirectDrawSurface_Release(surface);
refcount = IDirectDraw_Release(ddraw);
ok(!refcount, "Device has %lu references left.\n", refcount);
+
DestroyWindow(window);
}
@@ -15646,6 +15778,7 @@ START_TEST(ddraw1)
test_vtbl_protection();
test_window_position();
test_get_display_mode();
@@ -536,5 +545,5 @@ index f5fc7b04053..b6374e75632 100644
test_filling_convention();
test_enum_devices();
--
2.40.1
2.43.0

View File

@@ -1,18 +1,18 @@
From 16d001f5562c37ac293fa547feef19887e635363 Mon Sep 17 00:00:00 2001
From e4688a88901a1c13b2df67a0444c34e3ee02bbab Mon Sep 17 00:00:00 2001
From: Andrew D'Addesio <andrew@fatbag.net>
Date: Fri, 8 Feb 2019 18:48:33 -1000
Subject: [PATCH] ddraw: Return correct devices based off requested DirectX
version.
---
dlls/ddraw/ddraw.c | 231 +++++++++++++++++++++++++--------------------
1 file changed, 130 insertions(+), 101 deletions(-)
dlls/ddraw/ddraw.c | 232 +++++++++++++++++++++++++--------------------
1 file changed, 129 insertions(+), 103 deletions(-)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index 83eeb33589e..324a149a425 100644
index 5887854556b..5ac95dc3043 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -47,37 +47,80 @@ static const DDDEVICEIDENTIFIER2 deviceidentifier =
@@ -44,37 +44,80 @@ static const DDDEVICEIDENTIFIER2 deviceidentifier =
0
};
@@ -28,7 +28,7 @@ index 83eeb33589e..324a149a425 100644
+ char device_desc[100];
char device_name[100];
const GUID *device_guid;
DWORD remove_caps;
DWORD unsupported_caps;
-} device_list7[] =
+} device_list[] =
{
@@ -38,7 +38,7 @@ index 83eeb33589e..324a149a425 100644
- "WINE Direct3D7 Hardware Transform and Lighting acceleration using WineD3D",
- "Wine D3D7 T&L HAL",
- &IID_IDirect3DTnLHalDevice,
+ D3D_VERSION(1)|D3D_VERSION(2),
+ D3D_VERSION(1) | D3D_VERSION(2),
+ "WineD3D Ramp Software Emulation",
+ "Ramp Emulation",
+ &IID_IDirect3DRampDevice,
@@ -49,20 +49,20 @@ index 83eeb33589e..324a149a425 100644
+ /* RGB Emulation (D3D 1-7) */
{
- "WINE Direct3D7 Hardware acceleration using WineD3D",
+ D3D_VERSION(1)|D3D_VERSION(2)|D3D_VERSION(3)|D3D_VERSION(7),
+ D3D_VERSION(1) | D3D_VERSION(2) | D3D_VERSION(3) | D3D_VERSION(7),
+ "WineD3D RGB Software Emulation",
+ "RGB Emulation",
+ &IID_IDirect3DRGBDevice,
+ D3DDEVCAPS_HWTRANSFORMANDLIGHT,
+ D3DDEVCAPS_HWTRANSFORMANDLIGHT | D3DDEVCAPS_DRAWPRIMITIVES2EX | D3DDEVCAPS_HWRASTERIZATION,
+ },
+
+ /* Direct3D HAL (D3D 1-7) */
+ {
+ D3D_VERSION(1)|D3D_VERSION(2)|D3D_VERSION(3)|D3D_VERSION(7),
+ D3D_VERSION(1) | D3D_VERSION(2) | D3D_VERSION(3) | D3D_VERSION(7),
+ "WineD3D Hardware Acceleration",
"Direct3D HAL",
&IID_IDirect3DHALDevice,
0,
D3DDEVCAPS_HWTRANSFORMANDLIGHT,
},
- /* RGB device */
@@ -71,13 +71,13 @@ index 83eeb33589e..324a149a425 100644
- "WINE Direct3D7 RGB Software Emulation using WineD3D",
- "Wine D3D7 RGB",
- &IID_IDirect3DRGBDevice,
- D3DDEVCAPS_HWTRANSFORMANDLIGHT,
- D3DDEVCAPS_HWTRANSFORMANDLIGHT | D3DDEVCAPS_DRAWPRIMITIVES2EX | D3DDEVCAPS_HWRASTERIZATION,
+ D3D_VERSION(2),
+ "WineD3D MMX Software Emulation",
+ "MMX Emulation",
+ &IID_IDirect3DMMXDevice,
+ 0,
+ },
},
+
+ /* Direct3D T&L HAL (D3D7 only) */
+ {
@@ -86,7 +86,7 @@ index 83eeb33589e..324a149a425 100644
+ "Direct3D T&L HAL",
+ &IID_IDirect3DTnLHalDevice,
+ 0,
},
+ },
+
+ /* In the future, we may wish to add the "Reference Rasterizer" and
+ * "Null device", which are only available in DX6-8 and must be explicitly
@@ -106,7 +106,7 @@ index 83eeb33589e..324a149a425 100644
};
static void STDMETHODCALLTYPE ddraw_null_wined3d_object_destroyed(void *parent) {}
@@ -1389,15 +1432,6 @@ HRESULT ddraw_get_d3dcaps(const struct ddraw *ddraw, D3DDEVICEDESC7 *caps)
@@ -1415,15 +1458,6 @@ HRESULT ddraw_get_d3dcaps(const struct ddraw *ddraw, D3DDEVICEDESC7 *caps)
D3DPTADDRESSCAPS_WRAP | D3DPTADDRESSCAPS_MIRROR | D3DPTADDRESSCAPS_CLAMP |
D3DPTADDRESSCAPS_BORDER | D3DPTADDRESSCAPS_INDEPENDENTUV);
@@ -122,7 +122,7 @@ index 83eeb33589e..324a149a425 100644
/* Fill the missing members, and do some fixup */
caps->dpcLineCaps.dwSize = sizeof(caps->dpcLineCaps);
caps->dpcLineCaps.dwTextureBlendCaps = D3DPTBLENDCAPS_ADD
@@ -3713,8 +3747,7 @@ static HRESULT WINAPI ddraw1_DuplicateSurface(IDirectDraw *iface, IDirectDrawSur
@@ -3746,8 +3780,7 @@ static HRESULT WINAPI ddraw1_DuplicateSurface(IDirectDraw *iface, IDirectDrawSur
/*****************************************************************************
* IDirect3D7::EnumDevices
*
@@ -132,8 +132,8 @@ index 83eeb33589e..324a149a425 100644
*
* Params:
* callback: Function to call for each enumerated device
@@ -3747,14 +3780,17 @@ static HRESULT WINAPI d3d7_EnumDevices(IDirect3D7 *iface, LPD3DENUMDEVICESCALLBA
@@ -3779,13 +3812,16 @@ static HRESULT WINAPI d3d7_EnumDevices(IDirect3D7 *iface, LPD3DENUMDEVICESCALLBA
}
dev_caps = device_desc7.dwDevCaps;
- for (i = 0; i < ARRAY_SIZE(device_list7); i++)
@@ -142,19 +142,18 @@ index 83eeb33589e..324a149a425 100644
HRESULT ret;
- device_desc7.deviceGUID = *device_list7[i].device_guid;
- device_desc7.dwDevCaps = dev_caps & ~device_list7[i].remove_caps;
- device_desc7.dwDevCaps = dev_caps & ~device_list7[i].unsupported_caps;
- ret = callback(device_list7[i].interface_name, device_list7[i].device_name, &device_desc7, context);
+ if (!(device_list[i].version_mask & D3D_VERSION(ddraw->d3dversion)))
+ continue;
+
+ device_desc7.deviceGUID = *device_list[i].device_guid;
+ device_desc7.dwDevCaps = dev_caps & ~device_list[i].remove_caps;
- ret = callback(device_list7[i].interface_name, device_list7[i].device_name, &device_desc7, context);
+ device_desc7.dwDevCaps = dev_caps & ~device_list[i].unsupported_caps;
+ ret = callback(device_list[i].device_name, device_list[i].device_name, &device_desc7, context);
if (ret != DDENUMRET_OK)
{
TRACE("Application cancelled the enumeration.\n");
@@ -3770,11 +3806,21 @@ static HRESULT WINAPI d3d7_EnumDevices(IDirect3D7 *iface, LPD3DENUMDEVICESCALLBA
@@ -3801,11 +3837,21 @@ static HRESULT WINAPI d3d7_EnumDevices(IDirect3D7 *iface, LPD3DENUMDEVICESCALLBA
return D3D_OK;
}
@@ -178,7 +177,7 @@ index 83eeb33589e..324a149a425 100644
*
* Versions 1, 2 and 3
*
@@ -3789,18 +3835,18 @@ static HRESULT WINAPI d3d7_EnumDevices(IDirect3D7 *iface, LPD3DENUMDEVICESCALLBA
@@ -3820,18 +3866,18 @@ static HRESULT WINAPI d3d7_EnumDevices(IDirect3D7 *iface, LPD3DENUMDEVICESCALLBA
*****************************************************************************/
static HRESULT WINAPI d3d3_EnumDevices(IDirect3D3 *iface, LPD3DENUMDEVICESCALLBACK callback, void *context)
{
@@ -206,7 +205,7 @@ index 83eeb33589e..324a149a425 100644
TRACE("iface %p, callback %p, context %p.\n", iface, callback, context);
@@ -3809,52 +3855,58 @@ static HRESULT WINAPI d3d3_EnumDevices(IDirect3D3 *iface, LPD3DENUMDEVICESCALLBA
@@ -3840,55 +3886,60 @@ static HRESULT WINAPI d3d3_EnumDevices(IDirect3D3 *iface, LPD3DENUMDEVICESCALLBA
wined3d_mutex_lock();
@@ -246,9 +245,15 @@ index 83eeb33589e..324a149a425 100644
- * flag set. This way it refuses the emulation device, and HAL devices
- * never have POW2 unset in d3d7 on windows. */
- if (ddraw->d3dversion != 1)
- {
+ clear_device_desc(&empty_desc1);
+ empty_desc1.dwSize = desc_size;
+
+ for (i = 0; i < ARRAY_SIZE(device_list); i++)
{
- static CHAR reference_description[] = "RGB Direct3D emulation";
-
+ if (!(device_list[i].version_mask & D3D_VERSION(ddraw->d3dversion)))
+ continue;
- TRACE("Enumerating WineD3D D3DDevice interface.\n");
- hal_desc = device_desc1;
- hel_desc = device_desc1;
@@ -261,22 +266,16 @@ index 83eeb33589e..324a149a425 100644
- hal_desc.dcmColorModel = 0;
- /* RGB, RAMP and MMX devices cannot report HAL hardware flags */
- hal_desc.dwFlags = 0;
-
- hr = callback((GUID *)&IID_IDirect3DRGBDevice, reference_description,
- device_name, &hal_desc, &hel_desc, context);
- if (hr != D3DENUMRET_OK)
+ clear_device_desc(&empty_desc1);
+ empty_desc1.dwSize = desc_size;
+
+ for (i = 0; i < ARRAY_SIZE(device_list); i++)
+ {
+ if (!(device_list[i].version_mask & D3D_VERSION(ddraw->d3dversion)))
+ continue;
+
- /* RGB, REF, RAMP and MMX devices don't report hardware transform and lighting capability */
- hal_desc.dwDevCaps &= ~(D3DDEVCAPS_HWTRANSFORMANDLIGHT | D3DDEVCAPS_DRAWPRIMITIVES2EX | D3DDEVCAPS_HWRASTERIZATION);
- hel_desc.dwDevCaps &= ~(D3DDEVCAPS_HWTRANSFORMANDLIGHT | D3DDEVCAPS_DRAWPRIMITIVES2EX | D3DDEVCAPS_HWRASTERIZATION);
+ if (IsEqualGUID(&IID_IDirect3DHALDevice, device_list[i].device_guid))
+ {
+ hal_desc = device_desc1;
+
- hr = callback((GUID *)&IID_IDirect3DRGBDevice, reference_description,
- device_name, &hal_desc, &hel_desc, context);
- if (hr != D3DENUMRET_OK)
+ /* The HAL device's hel_desc is almost empty -- but not completely */
+ hel_desc = empty_desc1;
+ hel_desc.dwFlags = D3DDD_COLORMODEL | D3DDD_DEVCAPS | D3DDD_TRANSFORMCAPS
@@ -296,6 +295,8 @@ index 83eeb33589e..324a149a425 100644
+ /* Ramp device supports grayscale only */
+ if (IsEqualGUID(&IID_IDirect3DRampDevice, device_list[i].device_guid))
+ hel_desc.dcmColorModel = D3DCOLOR_MONO;
+ /* RGB, REF, RAMP and MMX devices don't report hardware transform and lighting capability */
+ hel_desc.dwDevCaps &= ~(D3DDEVCAPS_HWTRANSFORMANDLIGHT | D3DDEVCAPS_DRAWPRIMITIVES2EX | D3DDEVCAPS_HWRASTERIZATION);
+ }
+
+ hr = callback((GUID *)device_list[i].device_guid, device_list[i].device_desc,
@@ -304,7 +305,7 @@ index 83eeb33589e..324a149a425 100644
{
TRACE("Application cancelled the enumeration.\n");
wined3d_mutex_unlock();
@@ -3862,29 +3914,6 @@ static HRESULT WINAPI d3d3_EnumDevices(IDirect3D3 *iface, LPD3DENUMDEVICESCALLBA
@@ -3896,31 +3947,6 @@ static HRESULT WINAPI d3d3_EnumDevices(IDirect3D3 *iface, LPD3DENUMDEVICESCALLBA
}
}
@@ -321,6 +322,8 @@ index 83eeb33589e..324a149a425 100644
- | D3DPTEXTURECAPS_NONPOW2CONDITIONAL | D3DPTEXTURECAPS_PERSPECTIVE);
- /* HAL devices have a HEL dcmColorModel of 0 */
- hel_desc.dcmColorModel = 0;
- /* HAL devices report hardware transform and lighting capability, but not in hel */
- hel_desc.dwDevCaps &= ~(D3DDEVCAPS_HWTRANSFORMANDLIGHT | D3DDEVCAPS_DRAWPRIMITIVES2EX);
-
- hr = callback((GUID *)&IID_IDirect3DHALDevice, wined3d_description,
- device_name, &hal_desc, &hel_desc, context);
@@ -335,5 +338,5 @@ index 83eeb33589e..324a149a425 100644
wined3d_mutex_unlock();
--
2.20.1
2.43.0

View File

@@ -8,4 +8,3 @@
# The Sims Online
Fixes: [19153] Resident Evil 1 fails to start (needs IDirect3D3::EnumDevices() to return a device named "RGB Emulation")
Depends: ddraw-Device_Caps
Disabled: True

View File

@@ -1,4 +1,4 @@
From c3f44de2b3a1dbcc91b1ed1a864e6995ce1eb87b Mon Sep 17 00:00:00 2001
From d7a094dd68e005ed2271d9874ba3ee03c7dc12b2 Mon Sep 17 00:00:00 2001
From: Mark Harmstone <mark@harmstone.com>
Date: Sun, 22 Mar 2015 13:58:53 +0000
Subject: [PATCH] dsound: Add EAX propset stubs.
@@ -12,10 +12,10 @@ Subject: [PATCH] dsound: Add EAX propset stubs.
create mode 100644 dlls/dsound/eax.c
diff --git a/dlls/dsound/Makefile.in b/dlls/dsound/Makefile.in
index 6cb653fdfa0..1c04bf34162 100644
index 13cb6e8b615..ee097767ecd 100644
--- a/dlls/dsound/Makefile.in
+++ b/dlls/dsound/Makefile.in
@@ -9,6 +9,7 @@ C_SRCS = \
@@ -10,6 +10,7 @@ SOURCES = \
dsound_convert.c \
dsound_main.c \
duplex.c \
@@ -48,7 +48,7 @@ index 447b41bffbb..5c8c495bfe4 100644
}
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index b5546c7d9db..185b8efd014 100644
index 1113d07fa21..911d60dec61 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -230,6 +230,14 @@ LONG capped_refcount_dec(LONG *ref);
@@ -58,10 +58,10 @@ index b5546c7d9db..185b8efd014 100644
+/* eax.c */
+HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
+ ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
+ ULONG cbPropData, ULONG *pcbReturned) DECLSPEC_HIDDEN;
+ ULONG cbPropData, ULONG *pcbReturned);
+HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
+ ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
+ ULONG cbPropData) DECLSPEC_HIDDEN;
+ ULONG cbPropData);
+
/* mixer.c */
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len);
@@ -127,5 +127,5 @@ index 00000000000..c1264f977b6
+ return E_PROP_ID_UNSUPPORTED;
+}
--
2.40.1
2.42.0

View File

@@ -1,4 +1,4 @@
From 3a08f97fcd9ffd224c917cc52298702b6feaea9e Mon Sep 17 00:00:00 2001
From 5401bf0e1d666f14efae1a81383502d3c6231e57 Mon Sep 17 00:00:00 2001
From: Mark Harmstone <mark@harmstone.com>
Date: Fri, 27 Mar 2015 20:58:37 +0000
Subject: [PATCH] dsound: Add EAX init and free stubs.
@@ -32,15 +32,15 @@ index ede6d9f1ba1..309d632397a 100644
free(This);
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index c2dcda9da67..12203876623 100644
index a89f635739c..e58a45cfb7d 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -241,6 +241,8 @@ HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
ULONG cbPropData) DECLSPEC_HIDDEN;
+void free_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
+void init_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
ULONG cbPropData);
+void free_eax_buffer(IDirectSoundBufferImpl *dsb);
+void init_eax_buffer(IDirectSoundBufferImpl *dsb);
/* mixer.c */
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len);
@@ -97,5 +97,5 @@ index 03b6e0a9813..91438efc335 100644
HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
--
2.40.1
2.42.0

View File

@@ -1,4 +1,4 @@
From a0ff76bc868a22624a06989f675c5d574125aa5c Mon Sep 17 00:00:00 2001
From 035915e64ffbd674e38bb46c4ac10834bfc25961 Mon Sep 17 00:00:00 2001
From: Mark Harmstone <mark@harmstone.com>
Date: Fri, 27 Mar 2015 20:59:57 +0000
Subject: [PATCH] dsound: Feed data through EAX function.
@@ -10,14 +10,14 @@ Subject: [PATCH] dsound: Feed data through EAX function.
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index 12203876623..11cfa641d77 100644
index e58a45cfb7d..b9b608be7c0 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -243,6 +243,7 @@ HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
ULONG cbPropData) DECLSPEC_HIDDEN;
void free_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
void init_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
+void process_eax_buffer(IDirectSoundBufferImpl *dsb, float *buf, DWORD count) DECLSPEC_HIDDEN;
ULONG cbPropData);
void free_eax_buffer(IDirectSoundBufferImpl *dsb);
void init_eax_buffer(IDirectSoundBufferImpl *dsb);
+void process_eax_buffer(IDirectSoundBufferImpl *dsb, float *buf, DWORD count);
/* mixer.c */
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len);
@@ -61,5 +61,5 @@ index f261588454a..33dcd8a953c 100644
ostride = dsb->device->pwfx->nChannels * sizeof(float);
for (i = 0; i < frames; i++) {
--
2.40.1
2.42.0

View File

@@ -1,4 +1,4 @@
From 673e9f32e39fce78a02f6519a435051ffec3664d Mon Sep 17 00:00:00 2001
From b6f55f023339b8a254680e833c9ed6e03ad2a106 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 4 Apr 2015 21:09:18 +0200
Subject: [PATCH] dsound: Various improvements to EAX support.
@@ -24,10 +24,10 @@ the buffers).
5 files changed, 37 insertions(+), 39 deletions(-)
diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c
index 72e96765883..bdb93657017 100644
index 309d632397a..aa7bbe13cc5 100644
--- a/dlls/dsound/buffer.c
+++ b/dlls/dsound/buffer.c
@@ -1223,7 +1223,7 @@ HRESULT IDirectSoundBufferImpl_Duplicate(
@@ -1216,7 +1216,7 @@ HRESULT IDirectSoundBufferImpl_Duplicate(
VOID *committedbuff;
TRACE("(%p,%p,%p)\n", device, ppdsb, pdsb);
@@ -36,7 +36,7 @@ index 72e96765883..bdb93657017 100644
if (dsb == NULL) {
WARN("out of memory\n");
*ppdsb = NULL;
@@ -1271,6 +1271,8 @@ HRESULT IDirectSoundBufferImpl_Duplicate(
@@ -1264,6 +1264,8 @@ HRESULT IDirectSoundBufferImpl_Duplicate(
InitializeSRWLock(&dsb->lock);
@@ -46,7 +46,7 @@ index 72e96765883..bdb93657017 100644
hres = DirectSoundDevice_AddBuffer(device, dsb);
if (hres != DS_OK) {
diff --git a/dlls/dsound/dsound.c b/dlls/dsound/dsound.c
index bdf3a824511..4df26e93c6e 100644
index 482dc5c109d..b382b51000e 100644
--- a/dlls/dsound/dsound.c
+++ b/dlls/dsound/dsound.c
@@ -182,6 +182,8 @@ static HRESULT DirectSoundDevice_Create(DirectSoundDevice ** ppDevice)
@@ -71,17 +71,17 @@ index a650108f570..a555a75e458 100644
float *SampleBuffer;
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index 9131fa8792e..f2b2c353643 100644
index b9b608be7c0..4afddbff72f 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -240,6 +240,7 @@ HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
@@ -241,6 +241,7 @@ HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
ULONG cbPropData) DECLSPEC_HIDDEN;
+void init_eax_device(DirectSoundDevice *dev) DECLSPEC_HIDDEN;
void free_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
void init_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
void process_eax_buffer(IDirectSoundBufferImpl *dsb, float *buf, DWORD count) DECLSPEC_HIDDEN;
ULONG cbPropData);
+void init_eax_device(DirectSoundDevice *dev);
void free_eax_buffer(IDirectSoundBufferImpl *dsb);
void init_eax_buffer(IDirectSoundBufferImpl *dsb);
void process_eax_buffer(IDirectSoundBufferImpl *dsb, float *buf, DWORD count);
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
index 5f2b8ef07e2..2244565897b 100644
--- a/dlls/dsound/eax.c
@@ -244,5 +244,5 @@ index 5f2b8ef07e2..2244565897b 100644
switch (dwPropID) {
case DSPROPERTY_EAXBUFFER_ALL:
--
2.39.2
2.42.0

View File

@@ -1,4 +1,4 @@
From 375f83afce055fc37c5d453b0f922c604d9ad6f8 Mon Sep 17 00:00:00 2001
From 4e1d6e94b034635b603beb7d13eab6eaab7cb3c5 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 5 Apr 2015 19:13:18 +0200
Subject: [PATCH] dsound: Allow disabling of EAX support in the registry.
@@ -7,9 +7,9 @@ Based on a patch by Mark Harmstone.
---
dlls/dsound/buffer.c | 16 ++++++----------
dlls/dsound/dsound_main.c | 8 ++++++++
dlls/dsound/dsound_private.h | 15 ++++++++-------
dlls/dsound/dsound_private.h | 3 ++-
dlls/dsound/eax.c | 28 ++++++++++++++++++++++++++++
4 files changed, 50 insertions(+), 17 deletions(-)
4 files changed, 44 insertions(+), 11 deletions(-)
diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c
index aa7bbe13cc5..18a16535978 100644
@@ -46,10 +46,10 @@ index aa7bbe13cc5..18a16535978 100644
return E_PROP_ID_UNSUPPORTED;
diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c
index 11983a4cb47..2c09f9c5b42 100644
index 96e5fe2487e..d785e905527 100644
--- a/dlls/dsound/dsound_main.c
+++ b/dlls/dsound/dsound_main.c
@@ -94,6 +94,10 @@ const WCHAR wine_vxd_drv[] = L"winemm.vxd";
@@ -84,6 +84,10 @@ const WCHAR wine_vxd_drv[] = L"winemm.vxd";
/* All default settings, you most likely don't want to touch these, see wiki on UsefulRegistryKeys */
int ds_hel_buflen = 32768 * 2;
int ds_hq_buffers_max = 4;
@@ -60,7 +60,7 @@ index 11983a4cb47..2c09f9c5b42 100644
/*
* Get a config key from either the app-specific or the default config
@@ -148,11 +152,15 @@ void setup_dsound_options(void)
@@ -138,11 +142,15 @@ void setup_dsound_options(void)
if (!get_config_key( hkey, appkey, "HQBuffersMax", buffer, MAX_PATH ))
ds_hq_buffers_max = atoi(buffer);
@@ -77,7 +77,7 @@ index 11983a4cb47..2c09f9c5b42 100644
static const char * get_device_id(LPCGUID pGuid)
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index 1c544ad2e96..43f9df866a3 100644
index 4afddbff72f..10c6617c38b 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -35,9 +35,9 @@
@@ -91,30 +91,14 @@ index 1c544ad2e96..43f9df866a3 100644
/*****************************************************************************
* Predeclare the interface implementation structures
@@ -235,16 +235,17 @@ LONG capped_refcount_dec(LONG *ref);
@@ -235,6 +235,7 @@ LONG capped_refcount_dec(LONG *ref);
HRESULT DSOUND_FullDuplexCreate(REFIID riid, void **ppv);
/* eax.c */
+BOOL WINAPI EAX_QuerySupport(REFGUID guidPropSet, ULONG dwPropID, ULONG *pTypeSupport);
HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
- ULONG cbPropData, ULONG *pcbReturned) DECLSPEC_HIDDEN;
+ ULONG cbPropData, ULONG *pcbReturned);
HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
- ULONG cbPropData) DECLSPEC_HIDDEN;
-void init_eax_device(DirectSoundDevice *dev) DECLSPEC_HIDDEN;
-void free_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
-void init_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
-void process_eax_buffer(IDirectSoundBufferImpl *dsb, float *buf, DWORD count) DECLSPEC_HIDDEN;
+ ULONG cbPropData);
+void init_eax_device(DirectSoundDevice *dev);
+void free_eax_buffer(IDirectSoundBufferImpl *dsb);
+void init_eax_buffer(IDirectSoundBufferImpl *dsb);
+void process_eax_buffer(IDirectSoundBufferImpl *dsb, float *buf, DWORD count);
/* mixer.c */
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len);
ULONG cbPropData, ULONG *pcbReturned);
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
index 2244565897b..3e15ac59480 100644
--- a/dlls/dsound/eax.c
@@ -169,5 +153,5 @@ index 2244565897b..3e15ac59480 100644
buf->device->eax.using_eax = TRUE;
--
2.40.1
2.42.0

View File

@@ -1,4 +1,4 @@
From d4094baaba721220b0a81170d1f9e6c276dae4ae Mon Sep 17 00:00:00 2001
From 955a93ac10d1328e293fbf033e28107f98c43c7f Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 12:09:22 -0500
Subject: [PATCH] ntdll: Create eventfd-based objects for semaphores.
@@ -16,10 +16,10 @@ Subject: [PATCH] ntdll: Create eventfd-based objects for semaphores.
create mode 100644 dlls/ntdll/unix/esync.h
diff --git a/dlls/ntdll/Makefile.in b/dlls/ntdll/Makefile.in
index f8ca3e689ec..82af2152595 100644
index 74e6da5bb56..a2b498759a9 100644
--- a/dlls/ntdll/Makefile.in
+++ b/dlls/ntdll/Makefile.in
@@ -47,6 +47,7 @@ C_SRCS = \
@@ -48,6 +48,7 @@ SOURCES = \
unix/cdrom.c \
unix/debug.c \
unix/env.c \
@@ -305,7 +305,7 @@ index 00000000000..7be4e03fa34
+}
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
new file mode 100644
index 00000000000..a50a755149a
index 00000000000..5fec18860f8
--- /dev/null
+++ b/dlls/ntdll/unix/esync.h
@@ -0,0 +1,35 @@
@@ -329,11 +329,11 @@ index 00000000000..a50a755149a
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+extern int do_esync(void) DECLSPEC_HIDDEN;
+extern void esync_init(void) DECLSPEC_HIDDEN;
+extern int do_esync(void);
+extern void esync_init(void);
+
+extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
+ const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max) DECLSPEC_HIDDEN;
+ const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max);
+
+
+/* We have to synchronize on the fd cache mutex so that our calls to receive_fd
@@ -343,9 +343,9 @@ index 00000000000..a50a755149a
+ * "server_fd_mutex" or something similar. */
+extern pthread_mutex_t fd_cache_mutex;
+
+extern int receive_fd( obj_handle_t *handle ) DECLSPEC_HIDDEN;
+extern int receive_fd( obj_handle_t *handle );
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index 5b8b6962b4a..92855f7cccc 100644
index aa120ae38ec..fdda50575d1 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -87,6 +87,7 @@
@@ -354,9 +354,9 @@ index 5b8b6962b4a..92855f7cccc 100644
#include "unix_private.h"
+#include "esync.h"
#include "wine/list.h"
#include "ntsyscalls.h"
#include "wine/debug.h"
@@ -2055,6 +2056,7 @@ static void start_main_thread(void)
@@ -1790,6 +1791,7 @@ static void start_main_thread(void)
signal_alloc_thread( teb );
dbg_init();
startup_info_size = server_init_process();
@@ -365,7 +365,7 @@ index 5b8b6962b4a..92855f7cccc 100644
init_cpu_info();
init_files();
diff --git a/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c
index 227784448d3..99563e43cc3 100644
index 7211457387c..cd8dbbdcc10 100644
--- a/dlls/ntdll/unix/server.c
+++ b/dlls/ntdll/unix/server.c
@@ -103,7 +103,7 @@ sigset_t server_block_set; /* signals to block during server calls */
@@ -377,7 +377,7 @@ index 227784448d3..99563e43cc3 100644
/* atomically exchange a 64-bit value */
static inline LONG64 interlocked_xchg64( LONG64 *dest, LONG64 val )
@@ -907,7 +907,7 @@ void wine_server_send_fd( int fd )
@@ -918,7 +918,7 @@ void wine_server_send_fd( int fd )
*
* Receive a file descriptor passed from the server.
*/
@@ -387,7 +387,7 @@ index 227784448d3..99563e43cc3 100644
struct iovec vec;
struct msghdr msghdr;
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index d1e4e5ee111..b5299c323e3 100644
index bfbcaf4a851..f21ceb80298 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -63,6 +63,7 @@
@@ -421,5 +421,5 @@ index 35b4833fd4c..75ef586df30 100644
int do_esync(void)
{
--
2.40.1
2.42.0

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