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
183 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
a43d3ddd1c | ||
|
78d28293de | ||
|
440e5eee17 | ||
|
93e94fcbc0 | ||
|
fa5989b7aa | ||
|
8f579c4eed | ||
|
278310cf80 | ||
|
544f90dacc | ||
|
9937bf0463 | ||
|
155e98e765 | ||
|
2653c32b45 | ||
|
a2fcffc18e | ||
|
82e4617d86 | ||
|
24753f8756 | ||
|
0ed3e9c774 | ||
|
61c3c024a2 | ||
|
7f17af3a42 | ||
|
4c51f4f5f6 | ||
|
3b7c98ebf1 | ||
|
2056903cdf | ||
|
65ca056d29 | ||
|
edb3417124 | ||
|
7655d14b6a | ||
|
61120ad0dd | ||
|
915b0a246f | ||
|
68918863dc | ||
|
a703038b94 | ||
|
643f96ec62 | ||
|
d3d93cfa0d | ||
|
7e42d0ac1a | ||
|
0ee2ac8499 | ||
|
a9aa06c58e | ||
|
97b65c93c2 | ||
|
310f4c498b | ||
|
ad41ee0c01 | ||
|
45230b51db | ||
|
b090c12d6d | ||
|
55c5bac511 | ||
|
c165d96d23 | ||
|
63c3baa9e5 | ||
|
980a476c49 | ||
|
120e2d362f | ||
|
df26057ddf | ||
|
fa3a80f5af | ||
|
00ab8180c0 | ||
|
fe634350d2 | ||
|
b10ac7d8ac | ||
|
56fd61a713 | ||
|
c9c7130f3c | ||
|
5f113860f5 | ||
|
9a5667dba1 | ||
|
1295604add | ||
|
3fb6eb99a7 | ||
|
2677a11f41 | ||
|
6fd31b354c | ||
|
4eaa5b69b8 | ||
|
feb91195ff | ||
|
164b361be6 | ||
|
6bc16f96f7 | ||
|
688eeca0be | ||
|
1af920f698 | ||
|
f3fd4a3903 | ||
|
56a387bf1d | ||
|
c7f16e15e7 | ||
|
5e9626af6c | ||
|
d1ea5ced2b | ||
|
8174243203 | ||
|
9e1a4bdb73 | ||
|
dbf2d00a9b | ||
|
c61d12592b | ||
|
7750a01cea | ||
|
e41287e81a | ||
|
4d66e1bf6b | ||
|
c4535e89f7 | ||
|
7f9b324dea | ||
|
d8c1599a49 | ||
|
47a1fa55d6 | ||
|
0ff86943ed | ||
|
f8851f16b0 | ||
|
7ed2565d7e | ||
|
013f32ceeb | ||
|
5f6802dae2 | ||
|
8a2658a2ce | ||
|
aae6c7b961 | ||
|
100f108822 | ||
|
640f5f7d0a | ||
|
a1db1dfc16 | ||
|
2771ab8cee | ||
|
fc40539f6d | ||
|
fdcc8bec48 | ||
|
3a06c15dd2 | ||
|
e7c298c616 | ||
|
7b01b9eb20 | ||
|
afb9dcf2a5 | ||
|
d918a0ca3f | ||
|
ad56d6b3d3 | ||
|
5f19a81589 | ||
|
1033d3990b | ||
|
a896148be0 | ||
|
ef11bb63ce | ||
|
f3b03ce5a1 | ||
|
4b48df5032 | ||
|
24319dc308 | ||
|
931daeffec | ||
|
d923cf9418 | ||
|
66c0fdc159 | ||
|
6f3825b11f | ||
|
8d34769ef1 | ||
|
5a5c5a5743 | ||
|
5c01355ada | ||
|
270f893aea | ||
|
dc0aa10ad7 | ||
|
d7b8304e38 | ||
|
b09fe464be | ||
|
4b6879f30f | ||
|
94337e021c | ||
|
05c42b1df2 | ||
|
1bc4da9d59 | ||
|
16476ce303 | ||
|
bdb9f49c3e | ||
|
82118b0d67 | ||
|
00985bf311 | ||
|
3c8c7910e7 | ||
|
069adfd1b0 | ||
|
c91c63a5da | ||
|
f7c80250ec | ||
|
b059114710 | ||
|
f27610e7e7 | ||
|
9da0fe04d3 | ||
|
dc38777093 | ||
|
b57bf86ec0 | ||
|
4e99d1b2a8 | ||
|
8ad669e434 | ||
|
52dd338148 | ||
|
f841424edd | ||
|
5e8fbbf200 | ||
|
183fd3e089 | ||
|
092f3b1ed1 | ||
|
e59eb7639a | ||
|
a0716c9cfe | ||
|
fcf7b80107 | ||
|
163f74fe61 | ||
|
ce643e9d2a | ||
|
f18cff9e7a | ||
|
f5fe9c0c89 | ||
|
c6e832ee03 | ||
|
a7ae280480 | ||
|
8988a92bee | ||
|
260734214e | ||
|
1a3b158f0b | ||
|
1af6d6980c | ||
|
1c9c21dc1c | ||
|
0dd44a250f | ||
|
9bf50b7e1f | ||
|
9c8608eea6 | ||
|
fd5866f6f1 | ||
|
432c0b5a83 | ||
|
5d26dfaa93 | ||
|
876024f44f | ||
|
c933b26cb6 | ||
|
eeec769eeb | ||
|
e3cca687be | ||
|
08912e4896 | ||
|
daec2e3662 | ||
|
8a3554ad85 | ||
|
1fc93d6e9f | ||
|
799d451409 | ||
|
a534ddb0a0 | ||
|
3e16509e0e | ||
|
06523ed0a0 | ||
|
0e6e23e1f9 | ||
|
8790b8780f | ||
|
44f10effff | ||
|
73c8cb1002 | ||
|
356d0d750c | ||
|
9efac47eec | ||
|
2ebe0e23aa | ||
|
d4e9192632 | ||
|
d97f6a5faa | ||
|
34afd80e2e | ||
|
69765f438b | ||
|
99d312740b | ||
|
5bbe3e47a5 |
@@ -0,0 +1,34 @@
|
||||
From 5be4173b6c3e89b1d9267679cd392a7343088a52 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 8 Jun 2021 09:10:37 +1000
|
||||
Subject: [PATCH] ntdll: Avoid implicit cast of interface pointer.
|
||||
|
||||
---
|
||||
dlls/ntdll/unix/virtual.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
|
||||
index 34b332a613c..111c851b43b 100644
|
||||
--- a/dlls/ntdll/unix/virtual.c
|
||||
+++ b/dlls/ntdll/unix/virtual.c
|
||||
@@ -3016,7 +3016,7 @@ NTSTATUS virtual_clear_tls_index( ULONG index )
|
||||
server_enter_uninterrupted_section( &virtual_mutex, &sigset );
|
||||
LIST_FOR_EACH_ENTRY( thread_data, &teb_list, struct ntdll_thread_data, entry )
|
||||
{
|
||||
- TEB *teb = CONTAINING_RECORD( thread_data, TEB, GdiTebBatch );
|
||||
+ TEB *teb = CONTAINING_RECORD( (GDI_TEB_BATCH *)thread_data, TEB, GdiTebBatch );
|
||||
#ifdef _WIN64
|
||||
WOW_TEB *wow_teb = get_wow_teb( teb );
|
||||
if (wow_teb) wow_teb->TlsSlots[index] = 0;
|
||||
@@ -3034,7 +3034,7 @@ NTSTATUS virtual_clear_tls_index( ULONG index )
|
||||
server_enter_uninterrupted_section( &virtual_mutex, &sigset );
|
||||
LIST_FOR_EACH_ENTRY( thread_data, &teb_list, struct ntdll_thread_data, entry )
|
||||
{
|
||||
- TEB *teb = CONTAINING_RECORD( thread_data, TEB, GdiTebBatch );
|
||||
+ TEB *teb = CONTAINING_RECORD( (GDI_TEB_BATCH *)thread_data, TEB, GdiTebBatch );
|
||||
#ifdef _WIN64
|
||||
WOW_TEB *wow_teb = get_wow_teb( teb );
|
||||
if (wow_teb)
|
||||
--
|
||||
2.30.2
|
||||
|
@@ -0,0 +1,40 @@
|
||||
From eb21fcc668da85977bc86b6105f3830cb26c93e6 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 8 Jun 2021 08:56:40 +1000
|
||||
Subject: [PATCH] bcrypt: Stop compile error when HAVE_GNUTLS_CIPHER_INIT not
|
||||
defined
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
In file included from dlls/bcrypt/gnutls.c:1916:
|
||||
include/windef.h:112:24: error: unknown type name ‘va_list’
|
||||
112 | # define __ms_va_list va_list
|
||||
| ^~~~~~~
|
||||
include/winbase.h:2076:84: note: in expansion of macro ‘__ms_va_list’
|
||||
2076 | WINBASEAPI DWORD WINAPI FormatMessageA(DWORD,LPCVOID,DWORD,DWORD,LPSTR,DWORD,__ms_va_list*);
|
||||
|
||||
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
---
|
||||
dlls/bcrypt/gnutls.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c
|
||||
index d7b4499c692..11596d5f7ac 100644
|
||||
--- a/dlls/bcrypt/gnutls.c
|
||||
+++ b/dlls/bcrypt/gnutls.c
|
||||
@@ -24,9 +24,10 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
+#include <stdarg.h>
|
||||
+
|
||||
#ifdef HAVE_GNUTLS_CIPHER_INIT
|
||||
|
||||
-#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include <sys/types.h>
|
||||
--
|
||||
2.33.0
|
||||
|
@@ -0,0 +1,61 @@
|
||||
From 34109c1adac6293a87db004d60d342faeb33fcfe Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 8 Jun 2021 09:34:28 +1000
|
||||
Subject: [PATCH] d3d10: Avoid implicit cast of interface pointer.
|
||||
|
||||
---
|
||||
dlls/d3d10/effect.c | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c
|
||||
index 3b4050460a0..b03ed2d6c89 100644
|
||||
--- a/dlls/d3d10/effect.c
|
||||
+++ b/dlls/d3d10/effect.c
|
||||
@@ -147,7 +147,7 @@ static inline struct d3d10_effect_variable *impl_from_ID3D10EffectVariable(ID3D1
|
||||
|
||||
static inline struct d3d10_effect_variable *impl_from_ID3D10EffectShaderVariable(ID3D10EffectShaderVariable *iface)
|
||||
{
|
||||
- return CONTAINING_RECORD(iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
|
||||
+ return CONTAINING_RECORD((ID3D10EffectVariable*)iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
|
||||
}
|
||||
|
||||
static struct d3d10_effect_variable * d3d10_array_get_element(struct d3d10_effect_variable *v,
|
||||
@@ -4876,7 +4876,7 @@ static void read_variable_array_from_buffer(struct d3d10_effect_variable *variab
|
||||
|
||||
static inline struct d3d10_effect_variable *impl_from_ID3D10EffectScalarVariable(ID3D10EffectScalarVariable *iface)
|
||||
{
|
||||
- return CONTAINING_RECORD(iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
|
||||
+ return CONTAINING_RECORD((ID3D10EffectVariable*)iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
|
||||
}
|
||||
|
||||
static BOOL STDMETHODCALLTYPE d3d10_effect_scalar_variable_IsValid(ID3D10EffectScalarVariable *iface)
|
||||
@@ -5212,7 +5212,7 @@ static const struct ID3D10EffectScalarVariableVtbl d3d10_effect_scalar_variable_
|
||||
|
||||
static inline struct d3d10_effect_variable *impl_from_ID3D10EffectVectorVariable(ID3D10EffectVectorVariable *iface)
|
||||
{
|
||||
- return CONTAINING_RECORD(iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
|
||||
+ return CONTAINING_RECORD((ID3D10EffectVariable*)iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
|
||||
}
|
||||
|
||||
static BOOL STDMETHODCALLTYPE d3d10_effect_vector_variable_IsValid(ID3D10EffectVectorVariable *iface)
|
||||
@@ -5699,7 +5699,7 @@ static void read_matrix_variable_array_from_buffer(struct d3d10_effect_variable
|
||||
|
||||
static inline struct d3d10_effect_variable *impl_from_ID3D10EffectMatrixVariable(ID3D10EffectMatrixVariable *iface)
|
||||
{
|
||||
- return CONTAINING_RECORD(iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
|
||||
+ return CONTAINING_RECORD((ID3D10EffectVariable*)iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
|
||||
}
|
||||
|
||||
static BOOL STDMETHODCALLTYPE d3d10_effect_matrix_variable_IsValid(ID3D10EffectMatrixVariable *iface)
|
||||
@@ -6222,7 +6222,7 @@ static void set_shader_resource_variable(ID3D10ShaderResourceView **src, ID3D10S
|
||||
static inline struct d3d10_effect_variable *impl_from_ID3D10EffectShaderResourceVariable(
|
||||
ID3D10EffectShaderResourceVariable *iface)
|
||||
{
|
||||
- return CONTAINING_RECORD(iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
|
||||
+ return CONTAINING_RECORD((ID3D10EffectVariable*)iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
|
||||
}
|
||||
|
||||
static BOOL STDMETHODCALLTYPE d3d10_effect_shader_resource_variable_IsValid(ID3D10EffectShaderResourceVariable *iface)
|
||||
--
|
||||
2.33.0
|
||||
|
@@ -0,0 +1,34 @@
|
||||
From dd8e8e98edf2f16a4fd4109cd283cf7949a3cb9b Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 8 Jun 2021 09:39:56 +1000
|
||||
Subject: [PATCH] d2d1: Avoid implicit cast of interface pointer.
|
||||
|
||||
---
|
||||
dlls/d2d1/geometry.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/d2d1/geometry.c b/dlls/d2d1/geometry.c
|
||||
index eb353669030..3e00edfd1b3 100644
|
||||
--- a/dlls/d2d1/geometry.c
|
||||
+++ b/dlls/d2d1/geometry.c
|
||||
@@ -3615,7 +3615,7 @@ void d2d_path_geometry_init(struct d2d_geometry *geometry, ID2D1Factory *factory
|
||||
|
||||
static inline struct d2d_geometry *impl_from_ID2D1EllipseGeometry(ID2D1EllipseGeometry *iface)
|
||||
{
|
||||
- return CONTAINING_RECORD(iface, struct d2d_geometry, ID2D1Geometry_iface);
|
||||
+ return CONTAINING_RECORD((ID2D1Geometry*)iface, struct d2d_geometry, ID2D1Geometry_iface);
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE d2d_ellipse_geometry_QueryInterface(ID2D1EllipseGeometry *iface,
|
||||
@@ -4237,7 +4237,7 @@ fail:
|
||||
|
||||
static inline struct d2d_geometry *impl_from_ID2D1RoundedRectangleGeometry(ID2D1RoundedRectangleGeometry *iface)
|
||||
{
|
||||
- return CONTAINING_RECORD(iface, struct d2d_geometry, ID2D1Geometry_iface);
|
||||
+ return CONTAINING_RECORD((ID2D1Geometry*)iface, struct d2d_geometry, ID2D1Geometry_iface);
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE d2d_rounded_rectangle_geometry_QueryInterface(ID2D1RoundedRectangleGeometry *iface,
|
||||
--
|
||||
2.30.2
|
||||
|
@@ -0,0 +1,25 @@
|
||||
From f8ce184f72c416a1ce249afe313b698013e961b3 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 8 Jun 2021 09:46:25 +1000
|
||||
Subject: [PATCH] dxgi: Avoid implicit cast of interface pointer.
|
||||
|
||||
---
|
||||
dlls/dxgi/output.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/dxgi/output.c b/dlls/dxgi/output.c
|
||||
index f341388766c..64f87202741 100644
|
||||
--- a/dlls/dxgi/output.c
|
||||
+++ b/dlls/dxgi/output.c
|
||||
@@ -711,7 +711,7 @@ struct dxgi_output *unsafe_impl_from_IDXGIOutput(IDXGIOutput *iface)
|
||||
if (!iface)
|
||||
return NULL;
|
||||
assert(iface->lpVtbl == (IDXGIOutputVtbl *)&dxgi_output_vtbl);
|
||||
- return CONTAINING_RECORD(iface, struct dxgi_output, IDXGIOutput6_iface);
|
||||
+ return CONTAINING_RECORD((IDXGIOutput6*)iface, struct dxgi_output, IDXGIOutput6_iface);
|
||||
}
|
||||
|
||||
static void dxgi_output_init(struct dxgi_output *output, unsigned int output_idx,
|
||||
--
|
||||
2.30.2
|
||||
|
@@ -0,0 +1,25 @@
|
||||
From 272753daf4f20b7fe3c646eae4fd78f1b254c9a6 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 8 Jun 2021 09:57:01 +1000
|
||||
Subject: [PATCH] msctf: Avoid implicit cast of interface pointer.
|
||||
|
||||
---
|
||||
dlls/msctf/range.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/msctf/range.c b/dlls/msctf/range.c
|
||||
index 9690a0a15c4..e15123eeb89 100644
|
||||
--- a/dlls/msctf/range.c
|
||||
+++ b/dlls/msctf/range.c
|
||||
@@ -54,7 +54,7 @@ static inline Range *impl_from_ITfRangeACP(ITfRangeACP *iface)
|
||||
|
||||
static Range *unsafe_impl_from_ITfRange(ITfRange *iface)
|
||||
{
|
||||
- return CONTAINING_RECORD(iface, Range, ITfRangeACP_iface);
|
||||
+ return CONTAINING_RECORD((ITfRangeACP*)iface, Range, ITfRangeACP_iface);
|
||||
}
|
||||
|
||||
static void Range_Destructor(Range *This)
|
||||
--
|
||||
2.30.2
|
||||
|
@@ -0,0 +1,39 @@
|
||||
From f34ee38467781b2f7bae7e7f8a04a4210bf7d046 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 8 Jun 2021 11:22:48 +1000
|
||||
Subject: [PATCH] rpcrt4: Avoid implicit cast of interface pointer.
|
||||
|
||||
---
|
||||
dlls/rpcrt4/ndr_marshall.c | 2 +-
|
||||
dlls/rpcrt4/ndr_typelib.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/rpcrt4/ndr_marshall.c b/dlls/rpcrt4/ndr_marshall.c
|
||||
index 764b304a047..58ea128e8a4 100644
|
||||
--- a/dlls/rpcrt4/ndr_marshall.c
|
||||
+++ b/dlls/rpcrt4/ndr_marshall.c
|
||||
@@ -6999,7 +6999,7 @@ static unsigned char *WINAPI NdrContextHandleMarshall(
|
||||
}
|
||||
else
|
||||
{
|
||||
- NDR_SCONTEXT ctxt = CONTAINING_RECORD(pMemory, struct _NDR_SCONTEXT, userContext);
|
||||
+ NDR_SCONTEXT ctxt = CONTAINING_RECORD((void * const*)pMemory, struct _NDR_SCONTEXT, userContext);
|
||||
NDR_RUNDOWN rundown = pStubMsg->StubDesc->apfnNdrRundownRoutines[pFormat[2]];
|
||||
NdrServerContextNewMarshall(pStubMsg, ctxt, rundown, pFormat);
|
||||
}
|
||||
diff --git a/dlls/rpcrt4/ndr_typelib.c b/dlls/rpcrt4/ndr_typelib.c
|
||||
index f1f25885b75..126e8ec8766 100644
|
||||
--- a/dlls/rpcrt4/ndr_typelib.c
|
||||
+++ b/dlls/rpcrt4/ndr_typelib.c
|
||||
@@ -1452,7 +1452,7 @@ struct typelib_stub
|
||||
|
||||
static ULONG WINAPI typelib_stub_Release(IRpcStubBuffer *iface)
|
||||
{
|
||||
- struct typelib_stub *stub = CONTAINING_RECORD(iface, struct typelib_stub, stub.stub_buffer);
|
||||
+ struct typelib_stub *stub = CONTAINING_RECORD((CStdStubBuffer *)iface, struct typelib_stub, stub.stub_buffer);
|
||||
ULONG refcount = InterlockedDecrement(&stub->stub.stub_buffer.RefCount);
|
||||
|
||||
TRACE("(%p) decreasing refs to %d\n", stub, refcount);
|
||||
--
|
||||
2.30.2
|
||||
|
@@ -0,0 +1,34 @@
|
||||
From 4801b547b70654507cb8a25dcfd1efc862dcf467 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 8 Jun 2021 11:38:46 +1000
|
||||
Subject: [PATCH] wbemdisp: Avoid implicit cast of interface pointer.
|
||||
|
||||
---
|
||||
dlls/wbemdisp/locator.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/wbemdisp/locator.c b/dlls/wbemdisp/locator.c
|
||||
index e0a1872d38f..5bb2a187f2c 100644
|
||||
--- a/dlls/wbemdisp/locator.c
|
||||
+++ b/dlls/wbemdisp/locator.c
|
||||
@@ -1751,7 +1751,7 @@ static struct object *unsafe_object_impl_from_IDispatch(IDispatch *iface)
|
||||
FIXME( "External implementations are not supported.\n" );
|
||||
return NULL;
|
||||
}
|
||||
- return CONTAINING_RECORD(iface, struct object, ISWbemObject_iface);
|
||||
+ return CONTAINING_RECORD((ISWbemObject *)iface, struct object, ISWbemObject_iface);
|
||||
}
|
||||
|
||||
static HRESULT SWbemObject_create( struct services *services, IWbemClassObject *wbem_object,
|
||||
@@ -3587,7 +3587,7 @@ static struct namedvalueset *unsafe_valueset_impl_from_IDispatch(IDispatch *ifac
|
||||
FIXME( "External implementations are not supported.\n" );
|
||||
return NULL;
|
||||
}
|
||||
- return CONTAINING_RECORD(iface, struct namedvalueset, ISWbemNamedValueSet_iface);
|
||||
+ return CONTAINING_RECORD((ISWbemNamedValueSet*)iface, struct namedvalueset, ISWbemNamedValueSet_iface);
|
||||
}
|
||||
|
||||
HRESULT SWbemNamedValueSet_create( void **obj )
|
||||
--
|
||||
2.30.2
|
||||
|
@@ -1,15 +1,15 @@
|
||||
From e51b05c3a9d03e4dd84a107a30841d95f8a519c3 Mon Sep 17 00:00:00 2001
|
||||
From 36b4dbb687232d783cc3203da1dee4a797606ba7 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 | 16 ++++++++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
dlls/ntdll/loader.c | 15 +++++++++++++++
|
||||
1 file changed, 15 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index ee453700e51..c2d4b3c2f86 100644
|
||||
index 255d5afef79..00add6728cc 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -44,6 +44,7 @@ WINE_DECLARE_DEBUG_CHANNEL(relay);
|
||||
@@ -20,7 +20,7 @@ index ee453700e51..c2d4b3c2f86 100644
|
||||
|
||||
#ifdef _WIN64
|
||||
#define DEFAULT_SECURITY_COOKIE_64 (((ULONGLONG)0x00002b99 << 32) | 0x2ddfa232)
|
||||
@@ -3307,6 +3308,7 @@ void WINAPI LdrShutdownProcess(void)
|
||||
@@ -3536,6 +3537,7 @@ void WINAPI LdrShutdownProcess(void)
|
||||
process_detach();
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ index ee453700e51..c2d4b3c2f86 100644
|
||||
|
||||
/******************************************************************
|
||||
* RtlExitUserProcess (NTDLL.@)
|
||||
@@ -3673,6 +3675,9 @@ static void init_wow64(void)
|
||||
@@ -3955,6 +3957,9 @@ static void release_address_space(void)
|
||||
*/
|
||||
void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR unknown3, ULONG_PTR unknown4 )
|
||||
{
|
||||
@@ -36,11 +36,11 @@ index ee453700e51..c2d4b3c2f86 100644
|
||||
+ UNICODE_STRING staging_event_string;
|
||||
+ HANDLE staging_event;
|
||||
static int attach_done;
|
||||
int i;
|
||||
NTSTATUS status;
|
||||
@@ -3753,6 +3758,17 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
|
||||
}
|
||||
else wm = get_modref( NtCurrentTeb()->Peb->ImageBaseAddress );
|
||||
ULONG_PTR cookie;
|
||||
@@ -4041,6 +4046,16 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
|
||||
if (NtCurrentTeb()->WowTebOffset) init_wow64( context );
|
||||
#endif
|
||||
|
||||
+ RtlInitUnicodeString( &staging_event_string, L"\\__wine_staging_warn_event" );
|
||||
+ InitializeObjectAttributes( &staging_event_attr, &staging_event_string, OBJ_OPENIF, NULL, NULL );
|
||||
@@ -51,11 +51,10 @@ index ee453700e51..c2d4b3c2f86 100644
|
||||
+ }
|
||||
+ else
|
||||
+ WARN_(winediag)("wine-staging %s is a testing version containing experimental patches.\n", wine_get_version());
|
||||
+
|
||||
+
|
||||
RtlAcquirePebLock();
|
||||
InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks );
|
||||
RtlReleasePebLock();
|
||||
--
|
||||
2.30.2
|
||||
2.33.0
|
||||
|
||||
|
@@ -1,25 +1,25 @@
|
||||
From cfcc687562d4fa68b507cbf2c29722ef523d26aa Mon Sep 17 00:00:00 2001
|
||||
From 8aa6fb73e3142d86ba354c204313b8a74a5fa43d Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 2 Oct 2014 19:53:46 +0200
|
||||
Subject: [PATCH] winelib: Append '(Staging)' at the end of the version string.
|
||||
|
||||
---
|
||||
Makefile.in | 2 +-
|
||||
configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index b52495f741f..d5a8cad20da 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -116,7 +116,7 @@ install-manpages:: manpages
|
||||
# Rules for generated source files
|
||||
|
||||
dlls/ntdll/unix/version.c: dummy
|
||||
- @version=`(GIT_DIR=$(srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-$(PACKAGE_VERSION)") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || ($(RM) $@ && exit 1)
|
||||
+ @version=`(GIT_DIR=$(srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-$(PACKAGE_VERSION)") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1 (Staging)";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || (rm -f $@ && exit 1)
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index f86a5decb07..3d7f9cc96e6 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3910,7 +3910,7 @@ dnl Rules for generated source files
|
||||
|
||||
WINE_APPEND_RULE(
|
||||
[dlls/ntdll/unix/version.c: dummy
|
||||
- @version=\`(GIT_DIR=${wine_srcdir}.git git describe HEAD 2>/dev/null || echo \"wine-\$(PACKAGE_VERSION)\") | sed -n -e '\$\$s/\(.*\)/const char wine_build[[]] = \"\\1\";/p'\` && (echo \$\$version | cmp -s - \$[@]) || echo \$\$version >\$[@] || (rm -f \$[@] && exit 1)
|
||||
+ @version=\`(GIT_DIR=${wine_srcdir}.git git describe HEAD 2>/dev/null || echo \"wine-\$(PACKAGE_VERSION)\") | sed -n -e '\$\$s/\(.*\)/const char wine_build[[]] = \"\\1 (Staging)\";/p'\` && (echo \$\$version | cmp -s - \$[@]) || echo \$\$version >\$[@] || (rm -f \$[@] && exit 1)
|
||||
programs/winetest/build.rc: dummy
|
||||
@build="STRINGTABLE { 1 \"`GIT_DIR=$(srcdir)/.git git rev-parse HEAD 2>/dev/null`\" }" && (echo $$build | cmp -s - $@) || echo $$build >$@ || (rm -f $@ && exit 1)
|
||||
@build=\"STRINGTABLE { 1 \\\"\`GIT_DIR=${wine_srcdir}.git git rev-parse HEAD 2>/dev/null\`\\\" }\" && (echo \$\$build | cmp -s - \$[@]) || echo \$\$build >\$[@] || (rm -f \$[@] && exit 1)
|
||||
programs/winetest/build.nfo:
|
||||
--
|
||||
2.20.1
|
||||
2.33.0
|
||||
|
||||
|
@@ -1,125 +0,0 @@
|
||||
From 0e65ed108eb8bab24668f9a58c5757a3ad36104f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 12 Apr 2016 01:02:34 +0200
|
||||
Subject: [PATCH] uiautomationcore: Add dll and stub some functions.
|
||||
|
||||
---
|
||||
dlls/uiautomationcore/Makefile.in | 1 +
|
||||
dlls/uiautomationcore/uia_main.c | 53 +++++++++++++++++++++++++++----
|
||||
2 files changed, 48 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dlls/uiautomationcore/Makefile.in b/dlls/uiautomationcore/Makefile.in
|
||||
index 5c4acb232a4..412f1dbbe19 100644
|
||||
--- a/dlls/uiautomationcore/Makefile.in
|
||||
+++ b/dlls/uiautomationcore/Makefile.in
|
||||
@@ -1,5 +1,6 @@
|
||||
MODULE = uiautomationcore.dll
|
||||
IMPORTLIB = uiautomationcore
|
||||
+IMPORTS = uuid
|
||||
|
||||
EXTRADLLFLAGS = -mno-cygwin -Wb,--prefer-native
|
||||
|
||||
diff --git a/dlls/uiautomationcore/uia_main.c b/dlls/uiautomationcore/uia_main.c
|
||||
index 42014af6035..61e165d83c0 100644
|
||||
--- a/dlls/uiautomationcore/uia_main.c
|
||||
+++ b/dlls/uiautomationcore/uia_main.c
|
||||
@@ -1,4 +1,5 @@
|
||||
/*
|
||||
+ * Copyright 2016 Michael Müller
|
||||
* Copyright 2017 Jacek Caban for CodeWeavers
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
@@ -16,18 +17,58 @@
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
+#define COBJMACROS
|
||||
#include "uiautomation.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(uiautomation);
|
||||
|
||||
+static HRESULT WINAPI dummy_QueryInterface(IUnknown *iface, REFIID iid, void **ppv)
|
||||
+{
|
||||
+ TRACE("(%p, %s, %p)\n", iface, debugstr_guid(iid), ppv);
|
||||
+
|
||||
+ if (!ppv) return E_INVALIDARG;
|
||||
+
|
||||
+ if (!IsEqualIID(&IID_IUnknown, iid))
|
||||
+ {
|
||||
+ FIXME("Unknown interface: %s\n", debugstr_guid(iid));
|
||||
+ *ppv = NULL;
|
||||
+ return E_NOINTERFACE;
|
||||
+ }
|
||||
+
|
||||
+ *ppv = iface;
|
||||
+ IUnknown_AddRef((IUnknown *)*ppv);
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static ULONG WINAPI dummy_AddRef(IUnknown *iface)
|
||||
+{
|
||||
+ FIXME("(%p): stub\n", iface);
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+static ULONG WINAPI dummy_Release(IUnknown *iface)
|
||||
+{
|
||||
+ FIXME("(%p): stub\n", iface);
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+static const IUnknownVtbl dummy_Vtbl =
|
||||
+{
|
||||
+ dummy_QueryInterface,
|
||||
+ dummy_AddRef,
|
||||
+ dummy_Release,
|
||||
+};
|
||||
+
|
||||
+static IUnknown dummy = { &dummy_Vtbl };
|
||||
+
|
||||
/***********************************************************************
|
||||
* UiaClientsAreListening (uiautomationcore.@)
|
||||
*/
|
||||
BOOL WINAPI UiaClientsAreListening(void)
|
||||
{
|
||||
- FIXME("()\n");
|
||||
+ FIXME("(): stub\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -36,8 +77,8 @@ BOOL WINAPI UiaClientsAreListening(void)
|
||||
*/
|
||||
HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value)
|
||||
{
|
||||
- FIXME("(%p) stub!\n", value);
|
||||
- *value = NULL;
|
||||
+ FIXME("(%p): stub!\n", value);
|
||||
+ *value = &dummy;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@@ -46,8 +87,8 @@ HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value)
|
||||
*/
|
||||
HRESULT WINAPI UiaGetReservedNotSupportedValue(IUnknown **value)
|
||||
{
|
||||
- FIXME("(%p) stub!\n", value);
|
||||
- *value = NULL;
|
||||
+ FIXME("(%p): stub!\n", value);
|
||||
+ *value = &dummy;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@@ -66,7 +107,7 @@ int WINAPI UiaLookupId(enum AutomationIdentifierType type, const GUID *guid)
|
||||
LRESULT WINAPI UiaReturnRawElementProvider(HWND hwnd, WPARAM wParam,
|
||||
LPARAM lParam, IRawElementProviderSimple *elprov)
|
||||
{
|
||||
- FIXME("(%p, %lx, %lx, %p) stub!\n", hwnd, wParam, lParam, elprov);
|
||||
+ FIXME("(%p, %lx, %lx, %p): stub!\n", hwnd, wParam, lParam, elprov);
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
2.20.1
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 6d925cb20409888ada3e469a2a09b1bfc726fa79 Mon Sep 17 00:00:00 2001
|
||||
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.
|
||||
@@ -8,17 +8,16 @@ 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/macos.c | 18 ++-
|
||||
dlls/bcrypt/unixlib.c | 211 ++++++++++++++++++++++++++++++++++
|
||||
5 files changed, 252 insertions(+), 15 deletions(-)
|
||||
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 24803fb2d7c..46a20d473dd 100644
|
||||
index 63a731fa9d9..6dd3066d4a5 100644
|
||||
--- a/dlls/bcrypt/Makefile.in
|
||||
+++ b/dlls/bcrypt/Makefile.in
|
||||
@@ -11,6 +11,7 @@ C_SRCS = \
|
||||
macos.c \
|
||||
@@ -8,6 +8,7 @@ C_SRCS = \
|
||||
gnutls.c \
|
||||
md2.c \
|
||||
sha256.c \
|
||||
- sha512.c
|
||||
@@ -27,10 +26,10 @@ index 24803fb2d7c..46a20d473dd 100644
|
||||
|
||||
RC_SRCS = version.rc
|
||||
diff --git a/dlls/bcrypt/bcrypt_internal.h b/dlls/bcrypt/bcrypt_internal.h
|
||||
index eb136111509..3c7110d05f8 100644
|
||||
index 61c367cae9d..d0697ed807e 100644
|
||||
--- a/dlls/bcrypt/bcrypt_internal.h
|
||||
+++ b/dlls/bcrypt/bcrypt_internal.h
|
||||
@@ -218,4 +218,7 @@ struct key_funcs
|
||||
@@ -219,4 +219,7 @@ struct key_funcs
|
||||
NTSTATUS (CDECL *key_import_rsa)( struct key *, UCHAR *, ULONG );
|
||||
};
|
||||
|
||||
@@ -39,10 +38,10 @@ index eb136111509..3c7110d05f8 100644
|
||||
+
|
||||
#endif /* __BCRYPT_INTERNAL_H */
|
||||
diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c
|
||||
index 2f0c62bc6da..4a9dcf9de8a 100644
|
||||
index 7b1bceda889..66845ffc8cf 100644
|
||||
--- a/dlls/bcrypt/gnutls.c
|
||||
+++ b/dlls/bcrypt/gnutls.c
|
||||
@@ -372,9 +372,12 @@ fail:
|
||||
@@ -373,9 +373,12 @@ fail:
|
||||
|
||||
static void gnutls_uninitialize(void)
|
||||
{
|
||||
@@ -58,7 +57,7 @@ index 2f0c62bc6da..4a9dcf9de8a 100644
|
||||
}
|
||||
|
||||
struct buffer
|
||||
@@ -1899,19 +1902,28 @@ static const struct key_funcs key_funcs =
|
||||
@@ -1894,19 +1897,28 @@ static const struct key_funcs key_funcs =
|
||||
key_import_rsa
|
||||
};
|
||||
|
||||
@@ -94,42 +93,12 @@ index 2f0c62bc6da..4a9dcf9de8a 100644
|
||||
+ return NULL;
|
||||
+}
|
||||
+#endif
|
||||
diff --git a/dlls/bcrypt/macos.c b/dlls/bcrypt/macos.c
|
||||
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 =
|
||||
key_import_rsa
|
||||
};
|
||||
|
||||
-NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *ptr_in, void *ptr_out )
|
||||
+struct key_funcs * macos_lib_init( DWORD reason )
|
||||
{
|
||||
- if (reason != DLL_PROCESS_ATTACH) return STATUS_SUCCESS;
|
||||
- *(const struct key_funcs **)ptr_out = &key_funcs;
|
||||
- return STATUS_SUCCESS;
|
||||
+ if (reason != DLL_PROCESS_ATTACH) return NULL;
|
||||
+ return &key_funcs;
|
||||
}
|
||||
|
||||
+#else
|
||||
+#include "ntstatus.h"
|
||||
+#define WIN32_NO_STATUS
|
||||
+#include "windef.h"
|
||||
+#include "winbase.h"
|
||||
+#include "winternl.h"
|
||||
+
|
||||
+struct key_funcs * macos_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..9cbb25f5740
|
||||
index 00000000000..1937a8172a4
|
||||
--- /dev/null
|
||||
+++ b/dlls/bcrypt/unixlib.c
|
||||
@@ -0,0 +1,211 @@
|
||||
@@ -0,0 +1,208 @@
|
||||
+#if 0
|
||||
+#pragma makedep unix
|
||||
+#endif
|
||||
@@ -262,7 +231,7 @@ index 00000000000..9cbb25f5740
|
||||
+}
|
||||
+
|
||||
+static NTSTATUS CDECL key_asymmetric_decrypt( struct key *key, UCHAR *input, ULONG input_len,
|
||||
+ UCHAR *output, ULONG *output_len )
|
||||
+ UCHAR *output, ULONG output_len, ULONG *ret)
|
||||
+{
|
||||
+ FIXME( "not implemented\n" );
|
||||
+ return STATUS_NOT_IMPLEMENTED;
|
||||
@@ -301,13 +270,10 @@ index 00000000000..9cbb25f5740
|
||||
+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);
|
||||
+ struct key_funcs *macos_funcs = macos_lib_init(reason);
|
||||
+
|
||||
+ if (reason == DLL_PROCESS_ATTACH)
|
||||
+ {
|
||||
+#define RESOLVE_FUNC(name) \
|
||||
+ if (macos_funcs && macos_funcs->key_##name) \
|
||||
+ key_funcs.key_##name = macos_funcs->key_##name; \
|
||||
+ if (gnutls_funcs && gnutls_funcs->key_##name) \
|
||||
+ key_funcs.key_##name = gnutls_funcs->key_##name;
|
||||
+
|
||||
@@ -342,5 +308,5 @@ index 00000000000..9cbb25f5740
|
||||
+
|
||||
+#endif
|
||||
--
|
||||
2.30.2
|
||||
2.33.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From e2442f39015a5982bfd15479ee06d7163d36771d Mon Sep 17 00:00:00 2001
|
||||
From 528d7188ba7d6e68622d1b4f95608e68f26e1852 Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Fri, 2 Oct 2020 12:11:49 -0500
|
||||
Subject: [PATCH] bcrypt: Implement BCryptSecretAgreement with libgcrypt.
|
||||
@@ -11,17 +11,16 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
dlls/bcrypt/bcrypt_main.c | 55 ++++++-
|
||||
dlls/bcrypt/gcrypt.c | 292 ++++++++++++++++++++++++++++++++++
|
||||
dlls/bcrypt/gnutls.c | 3 +-
|
||||
dlls/bcrypt/macos.c | 3 +-
|
||||
dlls/bcrypt/tests/bcrypt.c | 2 +-
|
||||
dlls/bcrypt/unixlib.c | 13 +-
|
||||
9 files changed, 378 insertions(+), 9 deletions(-)
|
||||
8 files changed, 376 insertions(+), 8 deletions(-)
|
||||
create mode 100644 dlls/bcrypt/gcrypt.c
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index b6b8d49342f3..7c1c8a7ddaf4 100644
|
||||
index f2401734035..b47f8d016e0 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -46,6 +46,7 @@ AC_ARG_WITH(faudio, AS_HELP_STRING([--without-faudio],[do not use FAudio (XAu
|
||||
@@ -47,6 +47,7 @@ AC_ARG_WITH(faudio, AS_HELP_STRING([--without-faudio],[do not use FAudio (XAu
|
||||
AC_ARG_WITH(float-abi, AS_HELP_STRING([--with-float-abi=abi],[specify the ABI (soft|softfp|hard) for ARM platforms]))
|
||||
AC_ARG_WITH(fontconfig,AS_HELP_STRING([--without-fontconfig],[do not use fontconfig]))
|
||||
AC_ARG_WITH(freetype, AS_HELP_STRING([--without-freetype],[do not use the FreeType library]))
|
||||
@@ -29,7 +28,7 @@ index b6b8d49342f3..7c1c8a7ddaf4 100644
|
||||
AC_ARG_WITH(gettext, AS_HELP_STRING([--without-gettext],[do not use gettext]))
|
||||
AC_ARG_WITH(gettextpo, AS_HELP_STRING([--with-gettextpo],[use the GetTextPO library to rebuild po files]),
|
||||
[if test "x$withval" = "xno"; then ac_cv_header_gettext_po_h=no; fi])
|
||||
@@ -1989,6 +1990,19 @@ WINE_NOTICE_WITH(vkd3d,[test "x$ac_cv_lib_soname_vkd3d" = "x"],
|
||||
@@ -1954,6 +1955,19 @@ WINE_NOTICE_WITH(vkd3d,[test "x$ac_cv_lib_soname_vkd3d" = "x"],
|
||||
[vkd3d ${notice_platform}development files not found (or too old), Direct3D 12 won't be supported.])
|
||||
test "x$ac_cv_lib_soname_vkd3d" != "x" || enable_d3d12=${enable_d3d12:-no}
|
||||
|
||||
@@ -50,22 +49,22 @@ index b6b8d49342f3..7c1c8a7ddaf4 100644
|
||||
|
||||
AC_SUBST(EXTRACFLAGS,"")
|
||||
diff --git a/dlls/bcrypt/Makefile.in b/dlls/bcrypt/Makefile.in
|
||||
index 46a20d473dd7..4a3016784af3 100644
|
||||
index 6dd3066d4a5..5336c8fc66b 100644
|
||||
--- a/dlls/bcrypt/Makefile.in
|
||||
+++ b/dlls/bcrypt/Makefile.in
|
||||
@@ -7,6 +7,7 @@ EXTRADLLFLAGS = -mno-cygwin
|
||||
@@ -5,6 +5,7 @@ EXTRAINCL = $(GNUTLS_CFLAGS)
|
||||
|
||||
C_SRCS = \
|
||||
bcrypt_main.c \
|
||||
+ gcrypt.c \
|
||||
gnutls.c \
|
||||
macos.c \
|
||||
md2.c \
|
||||
sha256.c \
|
||||
diff --git a/dlls/bcrypt/bcrypt_internal.h b/dlls/bcrypt/bcrypt_internal.h
|
||||
index 3c7110d05f84..e7991eac077a 100644
|
||||
index d0697ed807e..66898c58cd2 100644
|
||||
--- a/dlls/bcrypt/bcrypt_internal.h
|
||||
+++ b/dlls/bcrypt/bcrypt_internal.h
|
||||
@@ -192,6 +192,8 @@ struct key
|
||||
@@ -193,6 +193,8 @@ struct key
|
||||
struct secret
|
||||
{
|
||||
struct object hdr;
|
||||
@@ -74,7 +73,7 @@ index 3c7110d05f84..e7991eac077a 100644
|
||||
};
|
||||
|
||||
struct key_funcs
|
||||
@@ -216,9 +218,11 @@ struct key_funcs
|
||||
@@ -217,9 +219,11 @@ struct key_funcs
|
||||
NTSTATUS (CDECL *key_import_dsa_capi)( struct key *, UCHAR *, ULONG );
|
||||
NTSTATUS (CDECL *key_import_ecc)( struct key *, UCHAR *, ULONG );
|
||||
NTSTATUS (CDECL *key_import_rsa)( struct key *, UCHAR *, ULONG );
|
||||
@@ -87,10 +86,10 @@ index 3c7110d05f84..e7991eac077a 100644
|
||||
|
||||
#endif /* __BCRYPT_INTERNAL_H */
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index a1423dcd8368..0655c5dcfe81 100644
|
||||
index 5eb50cd616b..570f452d78e 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -1932,9 +1932,12 @@ NTSTATUS WINAPI BCryptSecretAgreement(BCRYPT_KEY_HANDLE privatekey, BCRYPT_KEY_H
|
||||
@@ -1925,9 +1925,12 @@ NTSTATUS WINAPI BCryptSecretAgreement(BCRYPT_KEY_HANDLE privatekey, BCRYPT_KEY_H
|
||||
{
|
||||
struct key *privkey = privatekey;
|
||||
struct key *pubkey = publickey;
|
||||
@@ -104,7 +103,7 @@ index a1423dcd8368..0655c5dcfe81 100644
|
||||
|
||||
if (!privkey || privkey->hdr.magic != MAGIC_KEY) return STATUS_INVALID_HANDLE;
|
||||
if (!pubkey || pubkey->hdr.magic != MAGIC_KEY) return STATUS_INVALID_HANDLE;
|
||||
@@ -1943,18 +1946,39 @@ NTSTATUS WINAPI BCryptSecretAgreement(BCRYPT_KEY_HANDLE privatekey, BCRYPT_KEY_H
|
||||
@@ -1936,18 +1939,39 @@ NTSTATUS WINAPI BCryptSecretAgreement(BCRYPT_KEY_HANDLE privatekey, BCRYPT_KEY_H
|
||||
if (!(secret = heap_alloc_zero( sizeof(*secret) ))) return STATUS_NO_MEMORY;
|
||||
secret->hdr.magic = MAGIC_SECRET;
|
||||
|
||||
@@ -146,7 +145,7 @@ index a1423dcd8368..0655c5dcfe81 100644
|
||||
heap_free( secret );
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
@@ -1964,12 +1988,33 @@ NTSTATUS WINAPI BCryptDeriveKey(BCRYPT_SECRET_HANDLE handle, LPCWSTR kdf, BCrypt
|
||||
@@ -1957,12 +1981,33 @@ NTSTATUS WINAPI BCryptDeriveKey(BCRYPT_SECRET_HANDLE handle, LPCWSTR kdf, BCrypt
|
||||
{
|
||||
struct secret *secret = handle;
|
||||
|
||||
@@ -184,7 +183,7 @@ index a1423dcd8368..0655c5dcfe81 100644
|
||||
BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved )
|
||||
diff --git a/dlls/bcrypt/gcrypt.c b/dlls/bcrypt/gcrypt.c
|
||||
new file mode 100644
|
||||
index 000000000000..e72c27feb519
|
||||
index 00000000000..e72c27feb51
|
||||
--- /dev/null
|
||||
+++ b/dlls/bcrypt/gcrypt.c
|
||||
@@ -0,0 +1,292 @@
|
||||
@@ -481,10 +480,10 @@ index 000000000000..e72c27feb519
|
||||
+}
|
||||
+#endif
|
||||
diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c
|
||||
index 9490ea8612a8..78d0f2d95966 100644
|
||||
index 66845ffc8cf..64825f5b99b 100644
|
||||
--- a/dlls/bcrypt/gnutls.c
|
||||
+++ b/dlls/bcrypt/gnutls.c
|
||||
@@ -1949,7 +1949,8 @@ static const struct key_funcs key_funcs =
|
||||
@@ -1894,7 +1894,8 @@ static const struct key_funcs key_funcs =
|
||||
key_export_ecc,
|
||||
key_import_dsa_capi,
|
||||
key_import_ecc,
|
||||
@@ -494,25 +493,11 @@ index 9490ea8612a8..78d0f2d95966 100644
|
||||
};
|
||||
|
||||
struct key_funcs * gnutls_lib_init( DWORD reason )
|
||||
diff --git a/dlls/bcrypt/macos.c b/dlls/bcrypt/macos.c
|
||||
index 2a88aec8362c..3ee3515f9de2 100644
|
||||
--- a/dlls/bcrypt/macos.c
|
||||
+++ b/dlls/bcrypt/macos.c
|
||||
@@ -299,7 +299,8 @@ static const struct key_funcs key_funcs =
|
||||
key_export_ecc,
|
||||
key_import_dsa_capi,
|
||||
key_import_ecc,
|
||||
- key_import_rsa
|
||||
+ key_import_rsa,
|
||||
+ NULL
|
||||
};
|
||||
|
||||
struct key_funcs * macos_lib_init( DWORD reason )
|
||||
diff --git a/dlls/bcrypt/tests/bcrypt.c b/dlls/bcrypt/tests/bcrypt.c
|
||||
index 456727d04a96..6be406dee21f 100644
|
||||
index fb5ac03b039..894473d5346 100644
|
||||
--- a/dlls/bcrypt/tests/bcrypt.c
|
||||
+++ b/dlls/bcrypt/tests/bcrypt.c
|
||||
@@ -2163,7 +2163,7 @@ static void test_ECDH(void)
|
||||
@@ -2248,7 +2248,7 @@ static void test_ECDH(void)
|
||||
goto raw_secret_end;
|
||||
}
|
||||
|
||||
@@ -522,7 +507,7 @@ index 456727d04a96..6be406dee21f 100644
|
||||
if (status != STATUS_SUCCESS)
|
||||
{
|
||||
diff --git a/dlls/bcrypt/unixlib.c b/dlls/bcrypt/unixlib.c
|
||||
index 9cbb25f5740c..6f8ff7f97887 100644
|
||||
index 1937a8172a4..e684a608eb5 100644
|
||||
--- a/dlls/bcrypt/unixlib.c
|
||||
+++ b/dlls/bcrypt/unixlib.c
|
||||
@@ -142,6 +142,12 @@ static NTSTATUS CDECL key_import_rsa( struct key *key, UCHAR *input, ULONG input
|
||||
@@ -538,7 +523,7 @@ index 9cbb25f5740c..6f8ff7f97887 100644
|
||||
static struct key_funcs key_funcs =
|
||||
{
|
||||
key_set_property,
|
||||
@@ -164,12 +170,14 @@ static struct key_funcs key_funcs =
|
||||
@@ -164,17 +170,21 @@ static struct key_funcs key_funcs =
|
||||
key_import_dsa_capi,
|
||||
key_import_ecc,
|
||||
key_import_rsa,
|
||||
@@ -548,14 +533,11 @@ index 9cbb25f5740c..6f8ff7f97887 100644
|
||||
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);
|
||||
struct key_funcs *macos_funcs = macos_lib_init(reason);
|
||||
+ struct key_funcs *gcrypt_funcs = gcrypt_lib_init(reason);
|
||||
|
||||
if (reason == DLL_PROCESS_ATTACH)
|
||||
{
|
||||
@@ -177,7 +185,9 @@ NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *p
|
||||
if (macos_funcs && macos_funcs->key_##name) \
|
||||
key_funcs.key_##name = macos_funcs->key_##name; \
|
||||
#define RESOLVE_FUNC(name) \
|
||||
if (gnutls_funcs && gnutls_funcs->key_##name) \
|
||||
- key_funcs.key_##name = gnutls_funcs->key_##name;
|
||||
+ key_funcs.key_##name = gnutls_funcs->key_##name; \
|
||||
@@ -564,7 +546,7 @@ index 9cbb25f5740c..6f8ff7f97887 100644
|
||||
|
||||
RESOLVE_FUNC(set_property)
|
||||
RESOLVE_FUNC(symmetric_init)
|
||||
@@ -199,6 +209,7 @@ NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *p
|
||||
@@ -196,6 +206,7 @@ NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *p
|
||||
RESOLVE_FUNC(import_dsa_capi)
|
||||
RESOLVE_FUNC(import_ecc)
|
||||
RESOLVE_FUNC(import_rsa)
|
||||
@@ -573,5 +555,5 @@ index 9cbb25f5740c..6f8ff7f97887 100644
|
||||
#undef RESOLVE_FUNC
|
||||
|
||||
--
|
||||
2.29.2
|
||||
2.33.0
|
||||
|
||||
|
@@ -2,3 +2,5 @@ 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).
|
||||
# Temporarily disabled pending a rebase from author.
|
||||
Disabled: true
|
@@ -1,4 +1,4 @@
|
||||
From 50bd67fb1fd718eaaf9f5600fba7ab86e4b71a76 Mon Sep 17 00:00:00 2001
|
||||
From a5045503cf3310058cc64814ff9626f4877a13bb 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 2b20133cd65..f3ef3aef3a9 100755
|
||||
index db592f0868d..ba13abacc46 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -20350,6 +20350,7 @@ wine_fn_config_makefile dlls/crypt32/tests enable_tests
|
||||
@@ -20291,6 +20291,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 2b20133cd65..f3ef3aef3a9 100755
|
||||
wine_fn_config_makefile dlls/cryptnet/tests enable_tests
|
||||
wine_fn_config_makefile dlls/cryptsp enable_cryptsp
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 24f5c8847d6..f71fb6f401d 100644
|
||||
index d449b88fb19..af75e0e80ab 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3083,6 +3083,7 @@ WINE_CONFIG_MAKEFILE(dlls/crypt32/tests)
|
||||
@@ -3029,6 +3029,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 24f5c8847d6..f71fb6f401d 100644
|
||||
WINE_CONFIG_MAKEFILE(dlls/cryptnet/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/cryptsp)
|
||||
diff --git a/dlls/cryptext/Makefile.in b/dlls/cryptext/Makefile.in
|
||||
index 3acce60ae88..590074a806f 100644
|
||||
index 0ec2b8a2045..76accca43eb 100644
|
||||
--- a/dlls/cryptext/Makefile.in
|
||||
+++ b/dlls/cryptext/Makefile.in
|
||||
@@ -1,4 +1,5 @@
|
||||
@@ -49,10 +49,10 @@ index 3acce60ae88..590074a806f 100644
|
||||
+MODULE = cryptext.dll
|
||||
+IMPORTS = crypt32 cryptui user32
|
||||
|
||||
EXTRADLLFLAGS = -mno-cygwin -Wb,--prefer-native
|
||||
EXTRADLLFLAGS = -Wb,--prefer-native
|
||||
|
||||
diff --git a/dlls/cryptext/cryptext.spec b/dlls/cryptext/cryptext.spec
|
||||
index 0dba38e3934..911ab2f4ba4 100644
|
||||
index ee3e155f457..24b4794c198 100644
|
||||
--- a/dlls/cryptext/cryptext.spec
|
||||
+++ b/dlls/cryptext/cryptext.spec
|
||||
@@ -12,8 +12,8 @@
|
||||
@@ -227,5 +227,5 @@ index 00000000000..cc62a772b59
|
||||
+ test_CryptExtOpenCER();
|
||||
+}
|
||||
--
|
||||
2.20.1
|
||||
2.33.0
|
||||
|
||||
|
@@ -1,34 +0,0 @@
|
||||
From 29866a3cb6dc799b060565d94608c7b25bd26509 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Fri, 21 May 2021 23:44:39 -0500
|
||||
Subject: [PATCH] d3d11/tests: Add a couple of extra tests for SRV/RTV
|
||||
conflict.
|
||||
|
||||
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
|
||||
---
|
||||
dlls/d3d11/tests/d3d11.c | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
|
||||
index 47c6613d904..5ab08632367 100644
|
||||
--- a/dlls/d3d11/tests/d3d11.c
|
||||
+++ b/dlls/d3d11/tests/d3d11.c
|
||||
@@ -32364,6 +32364,15 @@ static void test_deferred_context_state(void)
|
||||
ID3D11DeviceContext_PSGetShaderResources(deferred, 0, 1, &ret_srv);
|
||||
ok(!ret_srv, "Got unexpected SRV %p.\n", ret_srv);
|
||||
|
||||
+ ID3D11DeviceContext_PSSetShaderResources(deferred, 0, 1, &srv);
|
||||
+ ID3D11DeviceContext_PSGetShaderResources(deferred, 0, 1, &ret_srv);
|
||||
+ ok(!ret_srv, "Got unexpected SRV %p.\n", ret_srv);
|
||||
+
|
||||
+ ID3D11DeviceContext_PSSetShaderResources(immediate, 0, 1, &srv);
|
||||
+ ID3D11DeviceContext_PSGetShaderResources(immediate, 0, 1, &ret_srv);
|
||||
+ ok(ret_srv == srv, "Got unexpected SRV %p.\n", ret_srv);
|
||||
+ ID3D11ShaderResourceView_Release(ret_srv);
|
||||
+
|
||||
ID3D11ShaderResourceView_Release(srv);
|
||||
ID3D11RenderTargetView_Release(rtv);
|
||||
ID3D11Texture2D_Release(texture);
|
||||
--
|
||||
2.30.2
|
||||
|
@@ -1,286 +0,0 @@
|
||||
From bca2466f49202f638339644f9c92b3573b719822 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Sat, 22 May 2021 00:27:53 -0500
|
||||
Subject: [PATCH] wined3d: Check for SRV/RTV binding conflicts per
|
||||
wined3d_state.
|
||||
|
||||
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
|
||||
---
|
||||
dlls/wined3d/context.c | 19 ++++-
|
||||
dlls/wined3d/device.c | 23 ++++--
|
||||
dlls/wined3d/resource.c | 1 -
|
||||
dlls/wined3d/wined3d_private.h | 125 +++++++--------------------------
|
||||
4 files changed, 61 insertions(+), 107 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
index 2debf50de7f..7f50126204b 100644
|
||||
--- a/dlls/wined3d/context.c
|
||||
+++ b/dlls/wined3d/context.c
|
||||
@@ -335,6 +335,23 @@ void context_update_stream_info(struct wined3d_context *context, const struct wi
|
||||
}
|
||||
}
|
||||
|
||||
+static bool is_resource_rtv_bound(const struct wined3d_state *state,
|
||||
+ const struct wined3d_resource *resource)
|
||||
+{
|
||||
+ unsigned int i;
|
||||
+
|
||||
+ if (!resource->rtv_bind_count_device)
|
||||
+ return false;
|
||||
+
|
||||
+ for (i = 0; i < ARRAY_SIZE(state->fb.render_targets); ++i)
|
||||
+ {
|
||||
+ if (state->fb.render_targets[i] && state->fb.render_targets[i]->resource == resource)
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
/* Context activation is done by the caller. */
|
||||
static void context_preload_texture(struct wined3d_context *context,
|
||||
const struct wined3d_state *state, unsigned int idx)
|
||||
@@ -344,7 +361,7 @@ static void context_preload_texture(struct wined3d_context *context,
|
||||
if (!(texture = state->textures[idx]))
|
||||
return;
|
||||
|
||||
- if ((texture->resource.rtv_full_bind_count_device + texture->resource.rtv_partial_bind_count_device)
|
||||
+ if (is_resource_rtv_bound(state, &texture->resource)
|
||||
|| (state->fb.depth_stencil && state->fb.depth_stencil->resource == &texture->resource))
|
||||
context->uses_fbo_attached_resources = 1;
|
||||
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index dbb5dcf2672..2c8ebba8844 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -1985,7 +1985,7 @@ void CDECL wined3d_device_context_set_shader_resource_view(struct wined3d_device
|
||||
if (view == prev)
|
||||
return;
|
||||
|
||||
- if (view && (wined3d_is_srv_rtv_bound(view)
|
||||
+ if (view && (wined3d_is_srv_rtv_bound(state, view)
|
||||
|| ((dsv = state->fb.depth_stencil)
|
||||
&& dsv->resource == view->resource && wined3d_dsv_srv_conflict(dsv, view->format))))
|
||||
{
|
||||
@@ -2064,22 +2064,31 @@ void CDECL wined3d_device_context_set_unordered_access_view(struct wined3d_devic
|
||||
static void wined3d_device_context_unbind_srv_for_rtv(struct wined3d_device_context *context,
|
||||
const struct wined3d_rendertarget_view *view, BOOL dsv)
|
||||
{
|
||||
- struct wined3d_state *state = context->state;
|
||||
+ const struct wined3d_state *state = context->state;
|
||||
+ const struct wined3d_resource *resource;
|
||||
|
||||
- if (view && wined3d_is_rtv_srv_bound(view))
|
||||
+ if (!view)
|
||||
+ return;
|
||||
+ resource = view->resource;
|
||||
+
|
||||
+ if (resource->srv_bind_count_device)
|
||||
{
|
||||
- const struct wined3d_resource *resource = view->resource;
|
||||
const struct wined3d_shader_resource_view *srv;
|
||||
unsigned int i, j;
|
||||
|
||||
- WARN("Application sets bound resource as render target.\n");
|
||||
-
|
||||
for (i = 0; i < WINED3D_SHADER_TYPE_COUNT; ++i)
|
||||
+ {
|
||||
for (j = 0; j < MAX_SHADER_RESOURCE_VIEWS; ++j)
|
||||
+ {
|
||||
if ((srv = state->shader_resource_view[i][j]) && srv->resource == resource
|
||||
- && ((!dsv && wined3d_is_srv_rtv_bound(srv))
|
||||
+ && ((!dsv && wined3d_is_srv_rtv_bound(state, srv))
|
||||
|| (dsv && wined3d_dsv_srv_conflict(view, srv->format))))
|
||||
+ {
|
||||
+ WARN("Application sets bound resource as render target.\n");
|
||||
wined3d_device_context_set_shader_resource_view(context, i, j, NULL);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
|
||||
index 6e34605f547..58e3e5c77fd 100644
|
||||
--- a/dlls/wined3d/resource.c
|
||||
+++ b/dlls/wined3d/resource.c
|
||||
@@ -235,7 +235,6 @@ static void wined3d_resource_destroy_object(void *object)
|
||||
|
||||
TRACE("resource %p.\n", resource);
|
||||
|
||||
- heap_free(resource->sub_resource_bind_counts_device);
|
||||
wined3d_resource_free_sysmem(resource);
|
||||
context_resource_released(resource->device, resource);
|
||||
wined3d_resource_release(resource);
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 4c308d2ac05..fadad706af4 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -4084,16 +4084,8 @@ struct wined3d_resource
|
||||
|
||||
struct list resource_list_entry;
|
||||
|
||||
- struct
|
||||
- {
|
||||
- uint32_t srv;
|
||||
- uint32_t rtv;
|
||||
- }
|
||||
- *sub_resource_bind_counts_device;
|
||||
- uint32_t srv_full_bind_count_device;
|
||||
- uint32_t rtv_full_bind_count_device;
|
||||
- uint32_t srv_partial_bind_count_device;
|
||||
- uint32_t rtv_partial_bind_count_device;
|
||||
+ uint32_t srv_bind_count_device;
|
||||
+ uint32_t rtv_bind_count_device;
|
||||
};
|
||||
|
||||
static inline ULONG wined3d_resource_incref(struct wined3d_resource *resource)
|
||||
@@ -6214,120 +6206,57 @@ static inline bool wined3d_rtv_all_subresources(const struct wined3d_rendertarge
|
||||
return texture->level_count == 1 && rtv->layer_count == wined3d_bind_layer_count(texture);
|
||||
}
|
||||
|
||||
-static inline void wined3d_srv_bind_count_add(struct wined3d_shader_resource_view *srv, int value)
|
||||
-{
|
||||
- struct wined3d_resource *resource = srv->resource;
|
||||
- struct wined3d_texture *texture;
|
||||
- unsigned int level, layer;
|
||||
-
|
||||
- if (wined3d_srv_all_subresources(srv))
|
||||
- {
|
||||
- resource->srv_full_bind_count_device += value;
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- resource->srv_partial_bind_count_device += value;
|
||||
-
|
||||
- texture = texture_from_resource(resource);
|
||||
-
|
||||
- if (!resource->sub_resource_bind_counts_device
|
||||
- && !(resource->sub_resource_bind_counts_device = heap_alloc_zero(texture->level_count
|
||||
- * wined3d_bind_layer_count(texture) * sizeof(*resource->sub_resource_bind_counts_device))))
|
||||
- return;
|
||||
-
|
||||
- for (layer = 0; layer < srv->desc.u.texture.layer_count; ++layer)
|
||||
- for (level = 0; level < srv->desc.u.texture.level_count; ++level)
|
||||
- resource->sub_resource_bind_counts_device[(layer + srv->desc.u.texture.layer_idx)
|
||||
- * texture->level_count + srv->desc.u.texture.level_idx + level].srv += value;
|
||||
-}
|
||||
-
|
||||
static inline void wined3d_srv_bind_count_inc(struct wined3d_shader_resource_view *srv)
|
||||
{
|
||||
- wined3d_srv_bind_count_add(srv, 1);
|
||||
+ ++srv->resource->srv_bind_count_device;
|
||||
}
|
||||
|
||||
static inline void wined3d_srv_bind_count_dec(struct wined3d_shader_resource_view *srv)
|
||||
{
|
||||
- wined3d_srv_bind_count_add(srv, -1);
|
||||
-}
|
||||
-
|
||||
-static inline void wined3d_rtv_bind_count_add(struct wined3d_rendertarget_view *rtv, int value)
|
||||
-{
|
||||
- struct wined3d_resource *resource = rtv->resource;
|
||||
- struct wined3d_texture *texture;
|
||||
- unsigned int layer;
|
||||
-
|
||||
- if (wined3d_rtv_all_subresources(rtv))
|
||||
- {
|
||||
- resource->rtv_full_bind_count_device += value;
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- resource->rtv_partial_bind_count_device += value;
|
||||
-
|
||||
- texture = texture_from_resource(resource);
|
||||
-
|
||||
- if (!resource->sub_resource_bind_counts_device
|
||||
- && !(resource->sub_resource_bind_counts_device = heap_alloc_zero(texture->level_count
|
||||
- * wined3d_bind_layer_count(texture) * sizeof(*resource->sub_resource_bind_counts_device))))
|
||||
- return;
|
||||
-
|
||||
- for (layer = 0; layer < rtv->layer_count; ++layer)
|
||||
- resource->sub_resource_bind_counts_device[rtv->sub_resource_idx + layer * texture->level_count].rtv += value;
|
||||
+ --srv->resource->srv_bind_count_device;
|
||||
}
|
||||
|
||||
static inline void wined3d_rtv_bind_count_inc(struct wined3d_rendertarget_view *rtv)
|
||||
{
|
||||
- wined3d_rtv_bind_count_add(rtv, 1);
|
||||
+ ++rtv->resource->rtv_bind_count_device;
|
||||
}
|
||||
|
||||
static inline void wined3d_rtv_bind_count_dec(struct wined3d_rendertarget_view *rtv)
|
||||
{
|
||||
- wined3d_rtv_bind_count_add(rtv, -1);
|
||||
+ --rtv->resource->rtv_bind_count_device;
|
||||
}
|
||||
|
||||
-static inline bool wined3d_is_srv_rtv_bound(const struct wined3d_shader_resource_view *srv)
|
||||
+static inline bool wined3d_rtv_overlaps_srv(const struct wined3d_rendertarget_view *rtv,
|
||||
+ const struct wined3d_shader_resource_view *srv)
|
||||
{
|
||||
- struct wined3d_resource *resource = srv->resource;
|
||||
- struct wined3d_texture *texture;
|
||||
- unsigned int level, layer;
|
||||
+ if (rtv->resource != srv->resource)
|
||||
+ return false;
|
||||
|
||||
- if (!(resource->rtv_full_bind_count_device + resource->rtv_partial_bind_count_device))
|
||||
- return FALSE;
|
||||
+ if (wined3d_srv_all_subresources(srv) || wined3d_rtv_all_subresources(rtv))
|
||||
+ return true;
|
||||
|
||||
- if (resource->rtv_full_bind_count_device || wined3d_srv_all_subresources(srv))
|
||||
- return TRUE;
|
||||
-
|
||||
- texture = texture_from_resource(resource);
|
||||
-
|
||||
- for (layer = 0; layer < srv->desc.u.texture.layer_count; ++layer)
|
||||
- for (level = 0; level < srv->desc.u.texture.level_count; ++level)
|
||||
- if (resource->sub_resource_bind_counts_device[(layer + srv->desc.u.texture.layer_idx)
|
||||
- * texture->level_count + srv->desc.u.texture.level_idx + level].rtv)
|
||||
- return TRUE;
|
||||
-
|
||||
- return FALSE;
|
||||
+ return rtv->sub_resource_idx >= srv->desc.u.texture.level_idx
|
||||
+ && rtv->sub_resource_idx < srv->desc.u.texture.level_idx + srv->desc.u.texture.level_count
|
||||
+ && rtv->layer_count >= srv->desc.u.texture.layer_idx;
|
||||
}
|
||||
|
||||
-static inline bool wined3d_is_rtv_srv_bound(const struct wined3d_rendertarget_view *rtv)
|
||||
+static inline bool wined3d_is_srv_rtv_bound(const struct wined3d_state *state,
|
||||
+ const struct wined3d_shader_resource_view *srv)
|
||||
{
|
||||
- struct wined3d_resource *resource = rtv->resource;
|
||||
- struct wined3d_texture *texture;
|
||||
- unsigned int layer;
|
||||
+ unsigned int i;
|
||||
|
||||
- if (!(resource->srv_full_bind_count_device + resource->srv_partial_bind_count_device))
|
||||
- return FALSE;
|
||||
+ if (!srv->resource->rtv_bind_count_device)
|
||||
+ return false;
|
||||
|
||||
- if (resource->srv_full_bind_count_device || wined3d_rtv_all_subresources(rtv))
|
||||
- return TRUE;
|
||||
+ for (i = 0; i < ARRAY_SIZE(state->fb.render_targets); ++i)
|
||||
+ {
|
||||
+ const struct wined3d_rendertarget_view *rtv;
|
||||
|
||||
- texture = texture_from_resource(resource);
|
||||
+ if ((rtv = state->fb.render_targets[i]) && wined3d_rtv_overlaps_srv(rtv, srv))
|
||||
+ return true;
|
||||
+ }
|
||||
|
||||
- for (layer = 0; layer < rtv->layer_count; ++layer)
|
||||
- if (resource->sub_resource_bind_counts_device[rtv->sub_resource_idx + layer * texture->level_count].srv)
|
||||
- return TRUE;
|
||||
-
|
||||
- return FALSE;
|
||||
+ return false;
|
||||
}
|
||||
|
||||
static inline void wined3d_viewport_get_z_range(const struct wined3d_viewport *vp, float *min_z, float *max_z)
|
||||
--
|
||||
2.30.2
|
||||
|
@@ -1,270 +0,0 @@
|
||||
From d591728c209f7fd9e438eebfb3977692d13bbd6b Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Tue, 18 May 2021 21:42:01 -0500
|
||||
Subject: [PATCH] d3d11/tests: Add some tests for Map() on deferred contexts.
|
||||
|
||||
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
|
||||
---
|
||||
dlls/d3d11/tests/d3d11.c | 239 +++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 239 insertions(+)
|
||||
|
||||
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
|
||||
index 5ab08632367..e5d46f445a4 100644
|
||||
--- a/dlls/d3d11/tests/d3d11.c
|
||||
+++ b/dlls/d3d11/tests/d3d11.c
|
||||
@@ -32706,6 +32706,244 @@ static void test_deferred_context_rendering(void)
|
||||
release_test_context(&test_context);
|
||||
}
|
||||
|
||||
+static void test_deferred_context_map(void)
|
||||
+{
|
||||
+ ID3D11DeviceContext *immediate, *deferred;
|
||||
+ struct d3d11_test_context test_context;
|
||||
+ D3D11_SUBRESOURCE_DATA resource_data;
|
||||
+ D3D11_BUFFER_DESC buffer_desc = {0};
|
||||
+ D3D11_MAPPED_SUBRESOURCE map_desc;
|
||||
+ ID3D11Buffer *buffer, *buffer2;
|
||||
+ struct resource_readback rb;
|
||||
+ ID3D11CommandList *list;
|
||||
+ float data[16], value;
|
||||
+ ID3D11Device *device;
|
||||
+ float *map_data;
|
||||
+ unsigned int i;
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ if (!init_test_context(&test_context, NULL))
|
||||
+ return;
|
||||
+
|
||||
+ device = test_context.device;
|
||||
+ immediate = test_context.immediate_context;
|
||||
+
|
||||
+ hr = ID3D11Device_CreateDeferredContext(device, 0, &deferred);
|
||||
+ todo_wine ok(hr == S_OK, "Failed to create deferred context, hr %#x.\n", hr);
|
||||
+ if (hr != S_OK)
|
||||
+ {
|
||||
+ release_test_context(&test_context);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ data[i] = i;
|
||||
+ resource_data.pSysMem = data;
|
||||
+ resource_data.SysMemPitch = 0;
|
||||
+ resource_data.SysMemSlicePitch = 0;
|
||||
+
|
||||
+ buffer_desc.ByteWidth = sizeof(data);
|
||||
+ buffer_desc.Usage = D3D11_USAGE_DYNAMIC;
|
||||
+ buffer_desc.BindFlags = D3D11_BIND_VERTEX_BUFFER;
|
||||
+ buffer_desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
|
||||
+ hr = ID3D11Device_CreateBuffer(device, &buffer_desc, &resource_data, &buffer);
|
||||
+ ok(hr == S_OK, "Failed to create buffer, hr %#x.\n", hr);
|
||||
+ hr = ID3D11Device_CreateBuffer(device, &buffer_desc, &resource_data, &buffer2);
|
||||
+ ok(hr == S_OK, "Failed to create buffer, hr %#x.\n", hr);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(deferred, (ID3D11Resource *)buffer, 0, D3D11_MAP_READ, 0, &map_desc);
|
||||
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(deferred, (ID3D11Resource *)buffer, 0, D3D11_MAP_READ_WRITE, 0, &map_desc);
|
||||
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(deferred, (ID3D11Resource *)buffer, 0, D3D11_MAP_WRITE, 0, &map_desc);
|
||||
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(deferred, (ID3D11Resource *)buffer, 0, D3D11_MAP_WRITE_NO_OVERWRITE, 0, &map_desc);
|
||||
+ ok(hr == D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD, "Got unexpected hr %#x.\n", hr);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(deferred, (ID3D11Resource *)buffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &map_desc);
|
||||
+ ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
|
||||
+ map_data = map_desc.pData;
|
||||
+ /* The previous contents of map_data are undefined and may in practice be
|
||||
+ * uninitialized garbage. */
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ map_data[i] = 2 * i;
|
||||
+
|
||||
+ ID3D11DeviceContext_Unmap(deferred, (ID3D11Resource *)buffer, 0);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(deferred, (ID3D11Resource *)buffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &map_desc);
|
||||
+ ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
|
||||
+ map_data = map_desc.pData;
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ map_data[i] = 2 * i;
|
||||
+ ID3D11DeviceContext_Unmap(deferred, (ID3D11Resource *)buffer, 0);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_FinishCommandList(deferred, FALSE, &list);
|
||||
+ ok(hr == S_OK, "Failed to create command list, hr %#x.\n", hr);
|
||||
+
|
||||
+ get_buffer_readback(buffer, &rb);
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ {
|
||||
+ value = get_readback_float(&rb, i, 0);
|
||||
+ ok(value == i, "Got unexpected value %.8e at %u.\n", value, i);
|
||||
+ }
|
||||
+ release_resource_readback(&rb);
|
||||
+
|
||||
+ ID3D11DeviceContext_ExecuteCommandList(immediate, list, TRUE);
|
||||
+
|
||||
+ get_buffer_readback(buffer, &rb);
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ {
|
||||
+ value = get_readback_float(&rb, i, 0);
|
||||
+ ok(value == 2 * i, "Got unexpected value %.8e at %u.\n", value, i);
|
||||
+ }
|
||||
+ release_resource_readback(&rb);
|
||||
+
|
||||
+ ID3D11CommandList_Release(list);
|
||||
+
|
||||
+ /* Test WRITE_NO_OVERWRITE. */
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(immediate, (ID3D11Resource *)buffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &map_desc);
|
||||
+ ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
|
||||
+ map_data = map_desc.pData;
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ map_data[i] = i;
|
||||
+ ID3D11DeviceContext_Unmap(immediate, (ID3D11Resource *)buffer, 0);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(deferred, (ID3D11Resource *)buffer, 0, D3D11_MAP_WRITE_NO_OVERWRITE, 0, &map_desc);
|
||||
+ ok(hr == D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD, "Got unexpected hr %#x.\n", hr);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(deferred, (ID3D11Resource *)buffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &map_desc);
|
||||
+ ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
|
||||
+ map_data = map_desc.pData;
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ map_data[i] = 2 * i;
|
||||
+ ID3D11DeviceContext_Unmap(deferred, (ID3D11Resource *)buffer, 0);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(deferred, (ID3D11Resource *)buffer, 0, D3D11_MAP_READ, 0, &map_desc);
|
||||
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(deferred, (ID3D11Resource *)buffer, 0, D3D11_MAP_READ_WRITE, 0, &map_desc);
|
||||
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(deferred, (ID3D11Resource *)buffer, 0, D3D11_MAP_WRITE, 0, &map_desc);
|
||||
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(deferred, (ID3D11Resource *)buffer, 0, D3D11_MAP_WRITE_NO_OVERWRITE, 0, &map_desc);
|
||||
+ ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
|
||||
+
|
||||
+ map_data = map_desc.pData;
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ {
|
||||
+ ok(map_data[i] == 2 * i, "Got unexpected value %.8e at %u.\n", map_data[i], i);
|
||||
+ if (i % 2)
|
||||
+ map_data[i] = 3 * i;
|
||||
+ }
|
||||
+ memcpy(data, map_data, sizeof(data));
|
||||
+
|
||||
+ ID3D11DeviceContext_Unmap(deferred, (ID3D11Resource *)buffer, 0);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(deferred, (ID3D11Resource *)buffer, 0, D3D11_MAP_WRITE_NO_OVERWRITE, 0, &map_desc);
|
||||
+ ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
|
||||
+
|
||||
+ map_data = map_desc.pData;
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ {
|
||||
+ ok(map_data[i] == data[i], "Got unexpected value %.8e at %u.\n", map_data[i], i);
|
||||
+ if (i % 3)
|
||||
+ map_data[i] = 4 * i;
|
||||
+ }
|
||||
+ memcpy(data, map_data, sizeof(data));
|
||||
+
|
||||
+ ID3D11DeviceContext_Unmap(deferred, (ID3D11Resource *)buffer, 0);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_FinishCommandList(deferred, FALSE, &list);
|
||||
+ ok(hr == S_OK, "Failed to create command list, hr %#x.\n", hr);
|
||||
+
|
||||
+ get_buffer_readback(buffer, &rb);
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ {
|
||||
+ value = get_readback_float(&rb, i, 0);
|
||||
+ ok(value == i, "Got unexpected value %.8e at %u.\n", value, i);
|
||||
+ }
|
||||
+ release_resource_readback(&rb);
|
||||
+
|
||||
+ ID3D11DeviceContext_ExecuteCommandList(immediate, list, TRUE);
|
||||
+
|
||||
+ get_buffer_readback(buffer, &rb);
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ {
|
||||
+ value = get_readback_float(&rb, i, 0);
|
||||
+ ok(value == data[i], "Got unexpected value %.8e at %u.\n", value, i);
|
||||
+ }
|
||||
+ release_resource_readback(&rb);
|
||||
+
|
||||
+ ID3D11CommandList_Release(list);
|
||||
+
|
||||
+ /* Do something with the mapped data from within the deferred context. */
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(immediate, (ID3D11Resource *)buffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &map_desc);
|
||||
+ ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
|
||||
+ map_data = map_desc.pData;
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ map_data[i] = i;
|
||||
+ ID3D11DeviceContext_Unmap(immediate, (ID3D11Resource *)buffer, 0);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(deferred, (ID3D11Resource *)buffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &map_desc);
|
||||
+ ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
|
||||
+ map_data = map_desc.pData;
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ map_data[i] = 2 * i;
|
||||
+ ID3D11DeviceContext_Unmap(deferred, (ID3D11Resource *)buffer, 0);
|
||||
+
|
||||
+ ID3D11DeviceContext_CopyResource(deferred, (ID3D11Resource *)buffer2, (ID3D11Resource *)buffer);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_Map(deferred, (ID3D11Resource *)buffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &map_desc);
|
||||
+ ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
|
||||
+ map_data = map_desc.pData;
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ map_data[i] = 3 * i;
|
||||
+ ID3D11DeviceContext_Unmap(deferred, (ID3D11Resource *)buffer, 0);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_FinishCommandList(deferred, FALSE, &list);
|
||||
+ ok(hr == S_OK, "Failed to create command list, hr %#x.\n", hr);
|
||||
+
|
||||
+ get_buffer_readback(buffer, &rb);
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ {
|
||||
+ value = get_readback_float(&rb, i, 0);
|
||||
+ ok(value == i, "Got unexpected value %.8e at %u.\n", value, i);
|
||||
+ }
|
||||
+ release_resource_readback(&rb);
|
||||
+
|
||||
+ ID3D11DeviceContext_ExecuteCommandList(immediate, list, TRUE);
|
||||
+
|
||||
+ get_buffer_readback(buffer2, &rb);
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ {
|
||||
+ value = get_readback_float(&rb, i, 0);
|
||||
+ ok(value == 2 * i, "Got unexpected value %.8e at %u.\n", value, i);
|
||||
+ }
|
||||
+ release_resource_readback(&rb);
|
||||
+
|
||||
+ get_buffer_readback(buffer, &rb);
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ {
|
||||
+ value = get_readback_float(&rb, i, 0);
|
||||
+ ok(value == 3 * i, "Got unexpected value %.8e at %u.\n", value, i);
|
||||
+ }
|
||||
+ release_resource_readback(&rb);
|
||||
+
|
||||
+ ID3D11CommandList_Release(list);
|
||||
+
|
||||
+ ID3D11Buffer_Release(buffer2);
|
||||
+ ID3D11Buffer_Release(buffer);
|
||||
+ ID3D11DeviceContext_Release(deferred);
|
||||
+ release_test_context(&test_context);
|
||||
+}
|
||||
+
|
||||
START_TEST(d3d11)
|
||||
{
|
||||
unsigned int argc, i;
|
||||
@@ -32876,6 +33114,7 @@ START_TEST(d3d11)
|
||||
queue_test(test_deferred_context_state);
|
||||
queue_test(test_deferred_context_swap_state);
|
||||
queue_test(test_deferred_context_rendering);
|
||||
+ queue_test(test_deferred_context_map);
|
||||
queue_test(test_unbound_streams);
|
||||
|
||||
run_queued_tests();
|
||||
--
|
||||
2.30.2
|
||||
|
@@ -1,70 +0,0 @@
|
||||
From 621c0b6f10a09dd7300caa8870015a931d338e85 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Fri, 21 May 2021 22:17:30 -0500
|
||||
Subject: [PATCH] d3d11/tests: Add some tests for UpdateSubresource() on a
|
||||
deferred context.
|
||||
|
||||
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
|
||||
---
|
||||
dlls/d3d11/tests/d3d11.c | 45 ++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 45 insertions(+)
|
||||
|
||||
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
|
||||
index e5d46f445a4..0f5ba6c3663 100644
|
||||
--- a/dlls/d3d11/tests/d3d11.c
|
||||
+++ b/dlls/d3d11/tests/d3d11.c
|
||||
@@ -32940,6 +32940,51 @@ static void test_deferred_context_map(void)
|
||||
|
||||
ID3D11Buffer_Release(buffer2);
|
||||
ID3D11Buffer_Release(buffer);
|
||||
+
|
||||
+ /* Test UpdateSubresource. */
|
||||
+
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ data[i] = i;
|
||||
+
|
||||
+ buffer_desc.ByteWidth = sizeof(data);
|
||||
+ buffer_desc.Usage = D3D11_USAGE_DEFAULT;
|
||||
+ buffer_desc.BindFlags = D3D11_BIND_VERTEX_BUFFER;
|
||||
+ buffer_desc.CPUAccessFlags = 0;
|
||||
+ hr = ID3D11Device_CreateBuffer(device, &buffer_desc, &resource_data, &buffer);
|
||||
+ ok(hr == S_OK, "Failed to create buffer, hr %#x.\n", hr);
|
||||
+ hr = ID3D11Device_CreateBuffer(device, &buffer_desc, &resource_data, &buffer2);
|
||||
+ ok(hr == S_OK, "Failed to create buffer, hr %#x.\n", hr);
|
||||
+
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ data[i] = 2 * i;
|
||||
+ ID3D11DeviceContext_UpdateSubresource(deferred, (ID3D11Resource *)buffer, 0, NULL, data, 0, 0);
|
||||
+
|
||||
+ hr = ID3D11DeviceContext_FinishCommandList(deferred, FALSE, &list);
|
||||
+ ok(hr == S_OK, "Failed to create command list, hr %#x.\n", hr);
|
||||
+
|
||||
+ get_buffer_readback(buffer, &rb);
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ {
|
||||
+ value = get_readback_float(&rb, i, 0);
|
||||
+ ok(value == i, "Got unexpected value %.8e at %u.\n", value, i);
|
||||
+ }
|
||||
+ release_resource_readback(&rb);
|
||||
+
|
||||
+ ID3D11DeviceContext_ExecuteCommandList(immediate, list, TRUE);
|
||||
+
|
||||
+ get_buffer_readback(buffer, &rb);
|
||||
+ for (i = 0; i < ARRAY_SIZE(data); ++i)
|
||||
+ {
|
||||
+ value = get_readback_float(&rb, i, 0);
|
||||
+ ok(value == 2 * i, "Got unexpected value %.8e at %u.\n", value, i);
|
||||
+ }
|
||||
+ release_resource_readback(&rb);
|
||||
+
|
||||
+ ID3D11CommandList_Release(list);
|
||||
+
|
||||
+ ID3D11Buffer_Release(buffer2);
|
||||
+ ID3D11Buffer_Release(buffer);
|
||||
+
|
||||
ID3D11DeviceContext_Release(deferred);
|
||||
release_test_context(&test_context);
|
||||
}
|
||||
--
|
||||
2.30.2
|
||||
|
@@ -1,92 +0,0 @@
|
||||
From 78d2694bb7cb03fa84c6a093ba28264f81adc143 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Wed, 12 May 2021 16:40:00 -0500
|
||||
Subject: [PATCH] wined3d: Store the framebuffer state inline in struct
|
||||
wined3d_cs_clear.
|
||||
|
||||
Avoid storing pointers to the CS data inside individual ops.
|
||||
|
||||
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
|
||||
---
|
||||
dlls/wined3d/cs.c | 23 +++++++++++------------
|
||||
1 file changed, 11 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index 14076defaa9..8702ac08631 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -107,7 +107,7 @@ struct wined3d_cs_clear
|
||||
enum wined3d_cs_op opcode;
|
||||
DWORD flags;
|
||||
unsigned int rt_count;
|
||||
- struct wined3d_fb_state *fb;
|
||||
+ struct wined3d_fb_state fb;
|
||||
RECT draw_rect;
|
||||
struct wined3d_color color;
|
||||
float depth;
|
||||
@@ -684,19 +684,19 @@ static void wined3d_cs_exec_clear(struct wined3d_cs *cs, const void *data)
|
||||
const struct wined3d_cs_clear *op = data;
|
||||
unsigned int i;
|
||||
|
||||
- device->blitter->ops->blitter_clear(device->blitter, device, op->rt_count, op->fb,
|
||||
+ device->blitter->ops->blitter_clear(device->blitter, device, op->rt_count, &op->fb,
|
||||
op->rect_count, op->rects, &op->draw_rect, op->flags, &op->color, op->depth, op->stencil);
|
||||
|
||||
if (op->flags & WINED3DCLEAR_TARGET)
|
||||
{
|
||||
for (i = 0; i < op->rt_count; ++i)
|
||||
{
|
||||
- if (op->fb->render_targets[i])
|
||||
- wined3d_resource_release(op->fb->render_targets[i]->resource);
|
||||
+ if (op->fb.render_targets[i])
|
||||
+ wined3d_resource_release(op->fb.render_targets[i]->resource);
|
||||
}
|
||||
}
|
||||
if (op->flags & (WINED3DCLEAR_ZBUFFER | WINED3DCLEAR_STENCIL))
|
||||
- wined3d_resource_release(op->fb->depth_stencil->resource);
|
||||
+ wined3d_resource_release(op->fb.depth_stencil->resource);
|
||||
}
|
||||
|
||||
void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects,
|
||||
@@ -715,7 +715,7 @@ void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *
|
||||
op->opcode = WINED3D_CS_OP_CLEAR;
|
||||
op->flags = flags & (WINED3DCLEAR_TARGET | WINED3DCLEAR_ZBUFFER | WINED3DCLEAR_STENCIL);
|
||||
op->rt_count = rt_count;
|
||||
- op->fb = &cs->state.fb;
|
||||
+ op->fb = state->fb;
|
||||
SetRect(&op->draw_rect, vp->x, vp->y, vp->x + vp->width, vp->y + vp->height);
|
||||
if (state->rasterizer_state && state->rasterizer_state->desc.scissor)
|
||||
IntersectRect(&op->draw_rect, &op->draw_rect, &state->scissor_rects[0]);
|
||||
@@ -746,24 +746,23 @@ void wined3d_device_context_emit_clear_rendertarget_view(struct wined3d_device_c
|
||||
struct wined3d_cs_clear *op;
|
||||
size_t size;
|
||||
|
||||
- size = FIELD_OFFSET(struct wined3d_cs_clear, rects[1]) + sizeof(struct wined3d_fb_state);
|
||||
+ size = FIELD_OFFSET(struct wined3d_cs_clear, rects[1]);
|
||||
op = wined3d_device_context_require_space(context, size, WINED3D_CS_QUEUE_DEFAULT);
|
||||
- op->fb = (void *)&op->rects[1];
|
||||
|
||||
op->opcode = WINED3D_CS_OP_CLEAR;
|
||||
op->flags = flags & (WINED3DCLEAR_TARGET | WINED3DCLEAR_ZBUFFER | WINED3DCLEAR_STENCIL);
|
||||
if (flags & WINED3DCLEAR_TARGET)
|
||||
{
|
||||
op->rt_count = 1;
|
||||
- op->fb->render_targets[0] = view;
|
||||
- op->fb->depth_stencil = NULL;
|
||||
+ op->fb.render_targets[0] = view;
|
||||
+ op->fb.depth_stencil = NULL;
|
||||
op->color = *color;
|
||||
}
|
||||
else
|
||||
{
|
||||
op->rt_count = 0;
|
||||
- op->fb->render_targets[0] = NULL;
|
||||
- op->fb->depth_stencil = view;
|
||||
+ op->fb.render_targets[0] = NULL;
|
||||
+ op->fb.depth_stencil = view;
|
||||
op->depth = depth;
|
||||
op->stencil = stencil;
|
||||
}
|
||||
--
|
||||
2.30.2
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user