You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Compare commits
94 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
8a3554ad85 | ||
|
1fc93d6e9f | ||
|
799d451409 | ||
|
a534ddb0a0 | ||
|
3e16509e0e | ||
|
06523ed0a0 | ||
|
0e6e23e1f9 | ||
|
8790b8780f | ||
|
44f10effff | ||
|
73c8cb1002 | ||
|
356d0d750c | ||
|
9efac47eec | ||
|
2ebe0e23aa | ||
|
d4e9192632 | ||
|
d97f6a5faa | ||
|
34afd80e2e | ||
|
69765f438b | ||
|
99d312740b | ||
|
5bbe3e47a5 | ||
|
cfe44f6d5d | ||
|
88a18586d3 | ||
|
85d7293a41 | ||
|
a71e4cdf85 | ||
|
5378adafaa | ||
|
be3928a809 | ||
|
f308782dad | ||
|
e3ec587726 | ||
|
b595359adf | ||
|
ab2f8734d9 | ||
|
f7a08f5969 | ||
|
f867740029 | ||
|
667cea7592 | ||
|
dbdde3ad10 | ||
|
e2875bb754 | ||
|
180ba8c931 | ||
|
0df3e892fb | ||
|
234a9fe775 | ||
|
7f18df4633 | ||
|
8e5c8cc63b | ||
|
7c888e7fee | ||
|
0f00e37c68 | ||
|
8c06be6529 | ||
|
50d26744b0 | ||
|
046b1ab22c | ||
|
1ebf4bd23f | ||
|
b113f99f07 | ||
|
813bfa288e | ||
|
c814617e2c | ||
|
cb7a9792d7 | ||
|
96a8cc2920 | ||
|
a1a2d65488 | ||
|
7d496bf02c | ||
|
4d8896cc35 | ||
|
977e5237da | ||
|
708e63e63f | ||
|
921d247b6b | ||
|
a918fa9a1c | ||
|
592b9480ef | ||
|
552dc36846 | ||
|
deed76f394 | ||
|
20e795b107 | ||
|
ac30cf5d62 | ||
|
99759f003a | ||
|
7eb07f1d50 | ||
|
68f87944cf | ||
|
0c8991562d | ||
|
27fae2dc15 | ||
|
39f66ddd9f | ||
|
33d85bda8a | ||
|
ba9a7a6a74 | ||
|
85fbfed5eb | ||
|
20303a53ec | ||
|
30c9d5a0f8 | ||
|
425f75f839 | ||
|
d805441f46 | ||
|
2211b6664e | ||
|
a886228fbc | ||
|
e353590528 | ||
|
b582d2d018 | ||
|
00aab80494 | ||
|
86424f3ac1 | ||
|
661df7b889 | ||
|
64ea26c0cb | ||
|
9319c38de2 | ||
|
03f7334e65 | ||
|
eb40bf85d6 | ||
|
d1169e15ee | ||
|
0c295023f1 | ||
|
733a420dd7 | ||
|
545073aafa | ||
|
4e2dc89043 | ||
|
2929606a6a | ||
|
d90a798a26 | ||
|
2e42e7d996 |
13
.github/FUNDING.yml
vendored
Normal file
13
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
#github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
#patreon: # Replace with a single Patreon username
|
||||
#open_collective: # Replace with a single Open Collective username
|
||||
#ko_fi: # Replace with a single Ko-fi username
|
||||
#tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
#community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
#liberapay: # Replace with a single Liberapay username
|
||||
#issuehunt: # Replace with a single IssueHunt username
|
||||
#otechie: # Replace with a single Otechie username
|
||||
|
||||
patreon: winestaging
|
7
.github/workflows/macOS.yml
vendored
7
.github/workflows/macOS.yml
vendored
@@ -2,10 +2,7 @@ name: MacOS
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
@@ -17,11 +14,13 @@ jobs:
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
brew update
|
||||
brew install --cask xquartz
|
||||
brew install bison \
|
||||
faudio \
|
||||
gphoto2 \
|
||||
gst-plugins-base \
|
||||
jxrlib \
|
||||
little-cms2 \
|
||||
mingw-w64 \
|
||||
molten-vk \
|
||||
@@ -77,11 +76,13 @@ jobs:
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
brew update
|
||||
brew install --cask xquartz
|
||||
brew install bison \
|
||||
faudio \
|
||||
gphoto2 \
|
||||
gst-plugins-base \
|
||||
jxrlib \
|
||||
little-cms2 \
|
||||
mingw-w64 \
|
||||
molten-vk \
|
||||
|
@@ -1,15 +1,15 @@
|
||||
From 0cf6433af95363c5fbba2af482b2ba50b863dfb7 Mon Sep 17 00:00:00 2001
|
||||
From e51b05c3a9d03e4dd84a107a30841d95f8a519c3 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
|
||||
branch name and version.
|
||||
|
||||
---
|
||||
dlls/ntdll/loader.c | 15 +++++++++++++++
|
||||
1 file changed, 15 insertions(+)
|
||||
dlls/ntdll/loader.c | 16 ++++++++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index 20bc3f977d1..c2187a19397 100644
|
||||
index ee453700e51..c2d4b3c2f86 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -44,6 +44,7 @@ WINE_DECLARE_DEBUG_CHANNEL(relay);
|
||||
@@ -20,15 +20,15 @@ index 20bc3f977d1..c2187a19397 100644
|
||||
|
||||
#ifdef _WIN64
|
||||
#define DEFAULT_SECURITY_COOKIE_64 (((ULONGLONG)0x00002b99 << 32) | 0x2ddfa232)
|
||||
@@ -3456,6 +3457,7 @@ static void process_breakpoint(void)
|
||||
__ENDTRY
|
||||
@@ -3307,6 +3308,7 @@ void WINAPI LdrShutdownProcess(void)
|
||||
process_detach();
|
||||
}
|
||||
|
||||
+extern const char * CDECL wine_get_version(void);
|
||||
|
||||
/******************************************************************
|
||||
* LdrInitializeThunk (NTDLL.@)
|
||||
@@ -3465,6 +3467,9 @@ static void process_breakpoint(void)
|
||||
* RtlExitUserProcess (NTDLL.@)
|
||||
@@ -3673,6 +3675,9 @@ static void init_wow64(void)
|
||||
*/
|
||||
void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR unknown3, ULONG_PTR unknown4 )
|
||||
{
|
||||
@@ -38,9 +38,9 @@ index 20bc3f977d1..c2187a19397 100644
|
||||
static int attach_done;
|
||||
int i;
|
||||
NTSTATUS status;
|
||||
@@ -3483,6 +3488,16 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
|
||||
entry = (void **)&context->u.s.X0;
|
||||
#endif
|
||||
@@ -3753,6 +3758,17 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
|
||||
}
|
||||
else wm = get_modref( NtCurrentTeb()->Peb->ImageBaseAddress );
|
||||
|
||||
+ RtlInitUnicodeString( &staging_event_string, L"\\__wine_staging_warn_event" );
|
||||
+ InitializeObjectAttributes( &staging_event_attr, &staging_event_string, OBJ_OPENIF, NULL, NULL );
|
||||
@@ -52,9 +52,10 @@ index 20bc3f977d1..c2187a19397 100644
|
||||
+ else
|
||||
+ WARN_(winediag)("wine-staging %s is a testing version containing experimental patches.\n", wine_get_version());
|
||||
+
|
||||
if (process_detaching) NtTerminateThread( GetCurrentThread(), 0 );
|
||||
|
||||
RtlEnterCriticalSection( &loader_section );
|
||||
+
|
||||
RtlAcquirePebLock();
|
||||
InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks );
|
||||
RtlReleasePebLock();
|
||||
--
|
||||
2.28.0
|
||||
2.30.2
|
||||
|
||||
|
@@ -1,34 +0,0 @@
|
||||
From 1941137bff72a2297812bbd05fb6f6a1578426b0 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 5 Mar 2017 23:05:54 +0100
|
||||
Subject: advapi32: Use TRACE for LsaOpenPolicy/LsaClose.
|
||||
|
||||
---
|
||||
dlls/advapi32/lsa.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/advapi32/lsa.c b/dlls/advapi32/lsa.c
|
||||
index e5e3b1649c0..0f2167d19ab 100644
|
||||
--- a/dlls/advapi32/lsa.c
|
||||
+++ b/dlls/advapi32/lsa.c
|
||||
@@ -136,7 +136,7 @@ NTSTATUS WINAPI LsaAddAccountRights(
|
||||
*/
|
||||
NTSTATUS WINAPI LsaClose(IN LSA_HANDLE ObjectHandle)
|
||||
{
|
||||
- FIXME("(%p) stub\n", ObjectHandle);
|
||||
+ TRACE("(%p) semi-stub\n", ObjectHandle);
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -687,7 +687,7 @@ NTSTATUS WINAPI LsaOpenPolicy(
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN OUT PLSA_HANDLE PolicyHandle)
|
||||
{
|
||||
- FIXME("(%s,%p,0x%08x,%p) stub\n",
|
||||
+ TRACE("(%s,%p,0x%08x,%p) semi-stub\n",
|
||||
SystemName?debugstr_w(SystemName->Buffer):"(null)",
|
||||
ObjectAttributes, DesiredAccess, PolicyHandle);
|
||||
|
||||
--
|
||||
2.11.0
|
||||
|
@@ -0,0 +1,27 @@
|
||||
From ebf3df9837ac6707fe831722c7ed24ccd80f95ce Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Crider <gloriouseggroll@gmail.com>
|
||||
Date: Sat, 29 May 2021 14:39:08 -0600
|
||||
Subject: [PATCH] api-ms-win-core-psapi-l1-1-0: Add K32GetModuleBaseNameW and
|
||||
K32GetModuleInformation.
|
||||
|
||||
Needed for Mass Effect Legendary Edition.
|
||||
|
||||
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51199
|
||||
Signed-off-by: Thomas Crider <gloriouseggroll@gmail.com>
|
||||
---
|
||||
.../api-ms-win-core-psapi-l1-1-0.spec | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/dlls/api-ms-win-core-psapi-l1-1-0/api-ms-win-core-psapi-l1-1-0.spec b/dlls/api-ms-win-core-psapi-l1-1-0/api-ms-win-core-psapi-l1-1-0.spec
|
||||
index c54c1077843..321fc3fe928 100644
|
||||
--- a/dlls/api-ms-win-core-psapi-l1-1-0/api-ms-win-core-psapi-l1-1-0.spec
|
||||
+++ b/dlls/api-ms-win-core-psapi-l1-1-0/api-ms-win-core-psapi-l1-1-0.spec
|
||||
@@ -14,3 +14,5 @@
|
||||
@ stdcall K32QueryWorkingSet(long ptr long) kernel32.K32QueryWorkingSet
|
||||
@ stdcall K32QueryWorkingSetEx(long ptr long) kernel32.K32QueryWorkingSetEx
|
||||
@ stdcall QueryFullProcessImageNameW(ptr long ptr ptr) kernel32.QueryFullProcessImageNameW
|
||||
+@ stdcall K32GetModuleBaseNameW(long long ptr long) kernel32.K32GetModuleBaseNameW
|
||||
+@ stdcall K32GetModuleInformation(long long ptr long) kernel32.K32GetModuleInformation
|
||||
--
|
||||
2.30.2
|
||||
|
@@ -0,0 +1,25 @@
|
||||
From c96b3a0632721f8849fb1d8404272b5007c1d1b4 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Crider <gloriouseggroll@gmail.com>
|
||||
Date: Sat, 29 May 2021 14:39:09 -0600
|
||||
Subject: [PATCH] api-ms-win-core-psapi-ansi-l1-1-0: add K32GetModuleBaseNameA
|
||||
|
||||
Needed for Mass Effect Legendary Edition.
|
||||
|
||||
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51199
|
||||
Signed-off-by: Thomas Crider <gloriouseggroll@gmail.com>
|
||||
---
|
||||
.../api-ms-win-core-psapi-ansi-l1-1-0.spec | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/dlls/api-ms-win-core-psapi-ansi-l1-1-0/api-ms-win-core-psapi-ansi-l1-1-0.spec b/dlls/api-ms-win-core-psapi-ansi-l1-1-0/api-ms-win-core-psapi-ansi-l1-1-0.spec
|
||||
index e4f758581f6..340198c6edf 100644
|
||||
--- a/dlls/api-ms-win-core-psapi-ansi-l1-1-0/api-ms-win-core-psapi-ansi-l1-1-0.spec
|
||||
+++ b/dlls/api-ms-win-core-psapi-ansi-l1-1-0/api-ms-win-core-psapi-ansi-l1-1-0.spec
|
||||
@@ -4,3 +4,4 @@
|
||||
@ stdcall K32GetMappedFileNameA(long ptr ptr long) kernel32.K32GetMappedFileNameA
|
||||
@ stdcall K32GetProcessImageFileNameA(long ptr long) kernel32.K32GetProcessImageFileNameA
|
||||
@ stdcall QueryFullProcessImageNameA(ptr long ptr ptr) kernel32.QueryFullProcessImageNameA
|
||||
+@ stdcall K32GetModuleBaseNameA(long long ptr long) kernel32.K32GetModuleBaseNameA
|
||||
--
|
||||
2.30.2
|
||||
|
@@ -0,0 +1 @@
|
||||
Fixes: [51199] Add missing api-ms-win-core-psapi forwards
|
@@ -1,100 +0,0 @@
|
||||
From 452c42b4855e2f6338fa9b8746377ff9fe9ee706 Mon Sep 17 00:00:00 2001
|
||||
From: Qian Hong <qhong@codeweavers.com>
|
||||
Date: Wed, 23 Apr 2014 04:16:53 +0800
|
||||
Subject: [PATCH] atl: Implement AtlAxDialogBox[A,W]
|
||||
|
||||
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=32749
|
||||
---
|
||||
dlls/atl/atl_ax.c | 60 +++++++++++++++++++++++++++++++++++++++++++++----------
|
||||
1 file changed, 50 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/dlls/atl/atl_ax.c b/dlls/atl/atl_ax.c
|
||||
index 8121278..92fcb84 100644
|
||||
--- a/dlls/atl/atl_ax.c
|
||||
+++ b/dlls/atl/atl_ax.c
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "winerror.h"
|
||||
#include "winuser.h"
|
||||
#include "wine/debug.h"
|
||||
+#include "wine/heap.h"
|
||||
#include "objbase.h"
|
||||
#include "objidl.h"
|
||||
#include "ole2.h"
|
||||
@@ -1407,25 +1408,64 @@ HRESULT WINAPI AtlAxGetControl(HWND hWnd, IUnknown **pUnk)
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
- * AtlAxDialogBoxW [atl100.35]
|
||||
+ * AtlAxDialogBoxA [atl100.@]
|
||||
*
|
||||
*/
|
||||
-INT_PTR WINAPI AtlAxDialogBoxW(HINSTANCE hInstance, LPCWSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogProc,
|
||||
- LPARAM dwInitParam)
|
||||
+INT_PTR WINAPI AtlAxDialogBoxA(HINSTANCE hInst, LPCSTR name, HWND owner, DLGPROC dlgProc, LPARAM param)
|
||||
{
|
||||
- FIXME("(%p %s %p %p %lx)\n", hInstance, debugstr_w(lpTemplateName), hWndParent, lpDialogProc, dwInitParam);
|
||||
- return 0;
|
||||
+ INT_PTR res = 0;
|
||||
+ int length;
|
||||
+ WCHAR *nameW;
|
||||
+
|
||||
+ if (IS_INTRESOURCE(name))
|
||||
+ return AtlAxDialogBoxW( hInst, (LPCWSTR) name, owner, dlgProc, param );
|
||||
+
|
||||
+ length = MultiByteToWideChar( CP_ACP, 0, name, -1, NULL, 0 );
|
||||
+ nameW = heap_alloc( length * sizeof(WCHAR) );
|
||||
+ if (nameW)
|
||||
+ {
|
||||
+ MultiByteToWideChar( CP_ACP, 0, name, -1, nameW, length );
|
||||
+ res = AtlAxDialogBoxW( hInst, nameW, owner, dlgProc, param );
|
||||
+ heap_free( nameW );
|
||||
+ }
|
||||
+ return res;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
- * AtlAxDialogBoxA [atl100.36]
|
||||
+ * AtlAxDialogBoxW [atl100.@]
|
||||
*
|
||||
*/
|
||||
-INT_PTR WINAPI AtlAxDialogBoxA(HINSTANCE hInstance, LPCSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogProc,
|
||||
- LPARAM dwInitParam)
|
||||
+INT_PTR WINAPI AtlAxDialogBoxW(HINSTANCE hInst, LPCWSTR name, HWND owner, DLGPROC dlgProc, LPARAM param)
|
||||
{
|
||||
- FIXME("(%p %s %p %p %lx)\n", hInstance, debugstr_a(lpTemplateName), hWndParent, lpDialogProc, dwInitParam);
|
||||
- return 0;
|
||||
+ HRSRC hrsrc;
|
||||
+ HGLOBAL hgl;
|
||||
+ LPCDLGTEMPLATEW ptr;
|
||||
+ LPDLGTEMPLATEW newptr;
|
||||
+ INT_PTR res;
|
||||
+
|
||||
+ TRACE("(%p %s %p %p %lx)\n", hInst, debugstr_w(name), owner, dlgProc, param);
|
||||
+
|
||||
+ hrsrc = FindResourceW( hInst, name, (LPWSTR)RT_DIALOG );
|
||||
+ if ( !hrsrc )
|
||||
+ return 0;
|
||||
+ hgl = LoadResource (hInst, hrsrc);
|
||||
+ if ( !hgl )
|
||||
+ return 0;
|
||||
+ ptr = LockResource ( hgl );
|
||||
+ if (!ptr)
|
||||
+ {
|
||||
+ FreeResource( hgl );
|
||||
+ return 0;
|
||||
+ }
|
||||
+ newptr = AX_ConvertDialogTemplate( ptr );
|
||||
+ if ( newptr )
|
||||
+ {
|
||||
+ res = DialogBoxIndirectParamW( hInst, newptr, owner, dlgProc, param );
|
||||
+ heap_free( newptr );
|
||||
+ } else
|
||||
+ res = 0;
|
||||
+ FreeResource ( hrsrc );
|
||||
+ return res;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
--
|
||||
1.9.1
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: [32749] atl: Implemented AtlAxDialogBox[A,W]
|
@@ -1,4 +1,4 @@
|
||||
From 3478a4e41c07a66e7e913c54bcf5ad52e16a8fee Mon Sep 17 00:00:00 2001
|
||||
From 6d925cb20409888ada3e469a2a09b1bfc726fa79 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.
|
||||
@@ -14,7 +14,7 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
create mode 100644 dlls/bcrypt/unixlib.c
|
||||
|
||||
diff --git a/dlls/bcrypt/Makefile.in b/dlls/bcrypt/Makefile.in
|
||||
index 24803fb2d7cb..46a20d473dd7 100644
|
||||
index 24803fb2d7c..46a20d473dd 100644
|
||||
--- a/dlls/bcrypt/Makefile.in
|
||||
+++ b/dlls/bcrypt/Makefile.in
|
||||
@@ -11,6 +11,7 @@ C_SRCS = \
|
||||
@@ -27,7 +27,7 @@ index 24803fb2d7cb..46a20d473dd7 100644
|
||||
|
||||
RC_SRCS = version.rc
|
||||
diff --git a/dlls/bcrypt/bcrypt_internal.h b/dlls/bcrypt/bcrypt_internal.h
|
||||
index eb1361115093..3c7110d05f84 100644
|
||||
index eb136111509..3c7110d05f8 100644
|
||||
--- a/dlls/bcrypt/bcrypt_internal.h
|
||||
+++ b/dlls/bcrypt/bcrypt_internal.h
|
||||
@@ -218,4 +218,7 @@ struct key_funcs
|
||||
@@ -39,10 +39,10 @@ index eb1361115093..3c7110d05f84 100644
|
||||
+
|
||||
#endif /* __BCRYPT_INTERNAL_H */
|
||||
diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c
|
||||
index c065ac31fba3..9490ea8612a8 100644
|
||||
index 2f0c62bc6da..4a9dcf9de8a 100644
|
||||
--- a/dlls/bcrypt/gnutls.c
|
||||
+++ b/dlls/bcrypt/gnutls.c
|
||||
@@ -371,9 +371,12 @@ fail:
|
||||
@@ -372,9 +372,12 @@ fail:
|
||||
|
||||
static void gnutls_uninitialize(void)
|
||||
{
|
||||
@@ -58,7 +58,7 @@ index c065ac31fba3..9490ea8612a8 100644
|
||||
}
|
||||
|
||||
struct buffer
|
||||
@@ -1949,19 +1952,28 @@ static const struct key_funcs key_funcs =
|
||||
@@ -1899,19 +1902,28 @@ static const struct key_funcs key_funcs =
|
||||
key_import_rsa
|
||||
};
|
||||
|
||||
@@ -74,7 +74,7 @@ index c065ac31fba3..9490ea8612a8 100644
|
||||
+ if (!gnutls_initialize()) return NULL;
|
||||
+ return &key_funcs;
|
||||
case DLL_PROCESS_DETACH:
|
||||
gnutls_uninitialize();
|
||||
if (libgnutls_handle) gnutls_uninitialize();
|
||||
- break;
|
||||
}
|
||||
- return STATUS_SUCCESS;
|
||||
@@ -95,7 +95,7 @@ index c065ac31fba3..9490ea8612a8 100644
|
||||
+}
|
||||
+#endif
|
||||
diff --git a/dlls/bcrypt/macos.c b/dlls/bcrypt/macos.c
|
||||
index 44906519cef0..2a88aec8362c 100644
|
||||
index 44906519cef..2a88aec8362 100644
|
||||
--- a/dlls/bcrypt/macos.c
|
||||
+++ b/dlls/bcrypt/macos.c
|
||||
@@ -302,11 +302,21 @@ static const struct key_funcs key_funcs =
|
||||
@@ -126,7 +126,7 @@ index 44906519cef0..2a88aec8362c 100644
|
||||
#endif
|
||||
diff --git a/dlls/bcrypt/unixlib.c b/dlls/bcrypt/unixlib.c
|
||||
new file mode 100644
|
||||
index 000000000000..9cbb25f5740c
|
||||
index 00000000000..9cbb25f5740
|
||||
--- /dev/null
|
||||
+++ b/dlls/bcrypt/unixlib.c
|
||||
@@ -0,0 +1,211 @@
|
||||
@@ -342,5 +342,5 @@ index 000000000000..9cbb25f5740c
|
||||
+
|
||||
+#endif
|
||||
--
|
||||
2.29.2
|
||||
2.30.2
|
||||
|
||||
|
@@ -2,4 +2,3 @@ Fixes: [47699] Multiple games fail to connect to online services (missing BCrypt
|
||||
# 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).
|
||||
#Disabled: true
|
||||
|
@@ -1,54 +0,0 @@
|
||||
From 3497a2faa4ebab67b65bcf99d4ed56baa70ddf96 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 12 Jul 2014 23:58:19 +0200
|
||||
Subject: [PATCH] comctl32: Preserve custom colors between subitems. (v2)
|
||||
|
||||
---
|
||||
dlls/comctl32/listview.c | 15 +++++++++------
|
||||
1 file changed, 9 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
|
||||
index dba16d13a4c..35cab333b7b 100644
|
||||
--- a/dlls/comctl32/listview.c
|
||||
+++ b/dlls/comctl32/listview.c
|
||||
@@ -1063,7 +1063,7 @@ static void prepaint_setup (const LISTVIEW_INFO *infoPtr, HDC hdc, const NMLVCUS
|
||||
textcolor = cd->clrText;
|
||||
|
||||
/* apparently, for selected items, we have to override the returned values */
|
||||
- if (!SubItem)
|
||||
+ if (!SubItem || (infoPtr->dwLvExStyle & LVS_EX_FULLROWSELECT))
|
||||
{
|
||||
if (cd->nmcd.uItemState & CDIS_SELECTED)
|
||||
{
|
||||
@@ -4786,6 +4786,7 @@ static BOOL LISTVIEW_DrawItem(LISTVIEW_INFO *infoPtr, HDC hdc, INT nItem, ITERAT
|
||||
while (iterator_next(subitems))
|
||||
{
|
||||
DWORD subitemstage = CDRF_DODEFAULT;
|
||||
+ NMLVCUSTOMDRAW temp_nmlvcd;
|
||||
|
||||
/* We need to query for each subitem, item's data (subitem == 0) is already here at this point */
|
||||
if (subitems->nItem)
|
||||
@@ -4813,13 +4814,15 @@ static BOOL LISTVIEW_DrawItem(LISTVIEW_INFO *infoPtr, HDC hdc, INT nItem, ITERAT
|
||||
if (cdsubitemmode & CDRF_NOTIFYSUBITEMDRAW)
|
||||
subitemstage = notify_customdraw(infoPtr, CDDS_SUBITEM | CDDS_ITEMPREPAINT, &nmlvcd);
|
||||
|
||||
- if (subitems->nItem == 0 || (cdmode & CDRF_NOTIFYITEMDRAW))
|
||||
- prepaint_setup(infoPtr, hdc, &nmlvcd, FALSE);
|
||||
- else if (!(infoPtr->dwLvExStyle & LVS_EX_FULLROWSELECT))
|
||||
- prepaint_setup(infoPtr, hdc, &nmlvcd, TRUE);
|
||||
+ /*
|
||||
+ * A selection should neither affect the colors in the post paint notification nor
|
||||
+ * affect the colors of the next drawn subitem. Copy the structure to prevent this.
|
||||
+ */
|
||||
+ temp_nmlvcd = nmlvcd;
|
||||
+ prepaint_setup(infoPtr, hdc, &temp_nmlvcd, subitems->nItem);
|
||||
|
||||
if (!(subitemstage & CDRF_SKIPDEFAULT))
|
||||
- LISTVIEW_DrawItemPart(infoPtr, &lvItem, &nmlvcd, &pos);
|
||||
+ LISTVIEW_DrawItemPart(infoPtr, &lvItem, &temp_nmlvcd, &pos);
|
||||
|
||||
if (subitemstage & CDRF_NOTIFYPOSTPAINT)
|
||||
subitemstage = notify_customdraw(infoPtr, CDDS_SUBITEM | CDDS_ITEMPOSTPAINT, &nmlvcd);
|
||||
--
|
||||
2.27.0
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: [38941] Preserve custom colors between subitems for listview control
|
File diff suppressed because it is too large
Load Diff
@@ -1,174 +0,0 @@
|
||||
From 881e39d338d1b8faed36440376460d498262c532 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: [PATCH] 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 89dab8ebfdd..5ef9a48eeb7 100644
|
||||
--- a/dlls/wined3d/buffer.c
|
||||
+++ b/dlls/wined3d/buffer.c
|
||||
@@ -1121,6 +1121,24 @@ static HRESULT buffer_resource_sub_resource_map(struct wined3d_resource *resourc
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
+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 = resource->size;
|
||||
+ info->slice_pitch = resource->size;
|
||||
+ info->size = buffer->resource.size;
|
||||
+
|
||||
+ return WINED3D_OK;
|
||||
+}
|
||||
+
|
||||
static HRESULT buffer_resource_sub_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx)
|
||||
{
|
||||
struct wined3d_buffer *buffer = buffer_from_resource(resource);
|
||||
@@ -1279,6 +1297,7 @@ static const struct wined3d_resource_ops buffer_resource_ops =
|
||||
buffer_resource_preload,
|
||||
buffer_resource_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 bba940f42cb..ff31c004b06 100644
|
||||
--- a/dlls/wined3d/resource.c
|
||||
+++ b/dlls/wined3d/resource.c
|
||||
@@ -383,6 +383,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 7c9c8298519..73e79ff25b5 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
+++ b/dlls/wined3d/texture.c
|
||||
@@ -3155,6 +3155,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;
|
||||
@@ -3207,6 +3237,7 @@ static const struct wined3d_resource_ops texture_resource_ops =
|
||||
texture_resource_preload,
|
||||
texture_resource_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 e03c57055b7..f68f8199f7e 100644
|
||||
--- a/dlls/wined3d/wined3d.spec
|
||||
+++ b/dlls/wined3d/wined3d.spec
|
||||
@@ -218,6 +218,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 8f9ad1ce856..c7f75d1983c 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -3368,6 +3368,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 bafab04d3d3..ea50fb7c8d4 100644
|
||||
--- a/include/wine/wined3d.h
|
||||
+++ b/include/wine/wined3d.h
|
||||
@@ -1851,6 +1851,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;
|
||||
@@ -2663,6 +2670,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.24.0
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,81 +0,0 @@
|
||||
From fc3937794343611ef4bedefc4829ed06ceee8f64 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: [PATCH] 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 2f13e85..e54ccaf 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(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->render_target_info.render_targets, call->render_target_info.depth_stencil);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_CSSETSHADER:
|
||||
+ {
|
||||
+ ID3D11DeviceContext1_CSSetShader(iface, call->cs_info.shader, NULL, 0);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_DSSETSHADER:
|
||||
{
|
||||
ID3D11DeviceContext1_DSSetShader(iface, call->ds_info.shader, NULL, 0);
|
||||
@@ -4410,8 +4427,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,
|
||||
--
|
||||
1.9.1
|
||||
|
@@ -1,68 +0,0 @@
|
||||
From ac4e13da593e8d6fcd868e95414eb6395fb28e44 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: [PATCH] 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 e54ccaf..8fee8cd 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(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->samplers_info.num_samplers, call->samplers_info.samplers);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_CSSETCONSTANTBUFFERS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext1_CSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
+ call->constant_buffers_info.num_buffers, call->constant_buffers_info.buffers);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_DSSETCONSTANTBUFFERS:
|
||||
{
|
||||
ID3D11DeviceContext1_DSSetConstantBuffers(iface, call->constant_buffers_info.start_slot,
|
||||
@@ -4451,8 +4459,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,
|
||||
--
|
||||
1.9.1
|
||||
|
@@ -1,82 +0,0 @@
|
||||
From 300aab481c30eddac58cbf7c9a418d3c0f7bb4e8 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: [PATCH] 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 8fee8cd..b1f148a 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(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_DISPATCH:
|
||||
+ {
|
||||
+ ID3D11DeviceContext1_Dispatch(iface, call->dispatch_info.count_x,
|
||||
+ call->dispatch_info.count_y, call->dispatch_info.count_z);
|
||||
+ break;
|
||||
+ }
|
||||
case DEFERRED_CLEARSTATE:
|
||||
{
|
||||
ID3D11DeviceContext1_ClearState(iface);
|
||||
@@ -4181,8 +4198,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,
|
||||
--
|
||||
1.9.1
|
||||
|
@@ -1,98 +0,0 @@
|
||||
From 116636717ee333aff38b77530fbcb885ad46f0a1 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: [PATCH] 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 b1f148a..3c475e7 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(ID3D11DeviceContext1 *iface, struct list *comman
|
||||
call->constant_buffers_info.num_buffers, call->constant_buffers_info.buffers);
|
||||
break;
|
||||
}
|
||||
+ case DEFERRED_CSSETUNORDEREDACCESSVIEWS:
|
||||
+ {
|
||||
+ ID3D11DeviceContext1_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:
|
||||
{
|
||||
ID3D11DeviceContext1_DrawIndexed(iface, call->draw_indexed_info.count,
|
||||
@@ -4456,8 +4480,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,
|
||||
--
|
||||
1.9.1
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user