Rebase against 9d897b73a877e5eaae26df87930c951ff8273c14

This commit is contained in:
Alistair Leslie-Hughes 2018-02-14 08:13:50 +11:00
parent e58651c321
commit 47d2040c12
42 changed files with 415 additions and 2005 deletions

View File

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

View File

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

View File

@ -1,7 +1,8 @@
From 9dc913d2ae5fca9a46acc67d896cf317389f7d97 Mon Sep 17 00:00:00 2001
From 19d3f2a7b2bdd740cc46e4b0f8a08d4c7e3e33bc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 25 Aug 2016 19:41:15 +0200
Subject: d3d11: Add stub ID3D11Texture2D and ID3D10Texture2D interfaces.
Subject: [PATCH] d3d11: Add stub ID3D11Texture2D and ID3D10Texture2D
interfaces.
---
dlls/d3d11/d3d11_private.h | 21 +++
@ -10,10 +11,10 @@ Subject: d3d11: Add stub ID3D11Texture2D and ID3D10Texture2D interfaces.
3 files changed, 393 insertions(+), 4 deletions(-)
diff --git a/dlls/d3d11/d3d11_private.h b/dlls/d3d11/d3d11_private.h
index 4af0faa..6bd7282 100644
index 52496d8..bdd7c34 100644
--- a/dlls/d3d11/d3d11_private.h
+++ b/dlls/d3d11/d3d11_private.h
@@ -104,6 +104,27 @@ void skip_dword_unknown(const char **ptr, unsigned int count) DECLSPEC_HIDDEN;
@@ -111,6 +111,27 @@ void skip_dword_unknown(const char **ptr, unsigned int count) DECLSPEC_HIDDEN;
HRESULT parse_dxbc(const char *data, SIZE_T data_size,
HRESULT (*chunk_handler)(const char *data, DWORD data_size, DWORD tag, void *ctx), void *ctx) DECLSPEC_HIDDEN;
@ -42,10 +43,10 @@ index 4af0faa..6bd7282 100644
struct d3d_texture2d
{
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 9a42c8b..8c2aab6 100644
index 6a747d0..b514ebd 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -2106,9 +2106,18 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CreateBuffer(ID3D11Device *iface,
@@ -6028,9 +6028,18 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CreateBuffer(ID3D11Device *iface,
static HRESULT STDMETHODCALLTYPE d3d11_device_CreateTexture1D(ID3D11Device *iface,
const D3D11_TEXTURE1D_DESC *desc, const D3D11_SUBRESOURCE_DATA *data, ID3D11Texture1D **texture)
{
@ -66,7 +67,7 @@ index 9a42c8b..8c2aab6 100644
}
static HRESULT STDMETHODCALLTYPE d3d11_device_CreateTexture2D(ID3D11Device *iface,
@@ -4436,9 +4445,28 @@ static HRESULT STDMETHODCALLTYPE d3d10_device_CreateBuffer(ID3D10Device1 *iface,
@@ -8272,9 +8281,28 @@ static HRESULT STDMETHODCALLTYPE d3d10_device_CreateBuffer(ID3D10Device1 *iface,
static HRESULT STDMETHODCALLTYPE d3d10_device_CreateTexture1D(ID3D10Device1 *iface,
const D3D10_TEXTURE1D_DESC *desc, const D3D10_SUBRESOURCE_DATA *data, ID3D10Texture1D **texture)
{
@ -98,7 +99,7 @@ index 9a42c8b..8c2aab6 100644
static HRESULT STDMETHODCALLTYPE d3d10_device_CreateTexture2D(ID3D10Device1 *iface,
diff --git a/dlls/d3d11/texture.c b/dlls/d3d11/texture.c
index d7b2af1..d201b23 100644
index 4315284..00540b5 100644
--- a/dlls/d3d11/texture.c
+++ b/dlls/d3d11/texture.c
@@ -25,6 +25,346 @@
@ -447,7 +448,7 @@ index d7b2af1..d201b23 100644
+
/* ID3D11Texture2D methods */
static inline struct d3d_texture2d *impl_from_ID3D11Texture2D(ID3D11Texture2D *iface)
static HRESULT STDMETHODCALLTYPE d3d11_texture2d_QueryInterface(ID3D11Texture2D *iface, REFIID riid, void **object)
--
2.8.1
1.9.1

View File

@ -1,41 +0,0 @@
From d16a0f5f4bde197dbdda7b61d8c6b69bbc9be128 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 21 Jan 2017 22:43:12 +0100
Subject: d3d11: Implement ResolveSubresource by copying sub resource (there is
no multisample texture support yet).
---
dlls/d3d11/device.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 777146d717e..9ad2b2ecaa5 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -1120,10 +1120,22 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ResolveSubresource(ID3D11D
ID3D11Resource *src_resource, UINT src_subresource_idx,
DXGI_FORMAT format)
{
- FIXME("iface %p, dst_resource %p, dst_subresource_idx %u, src_resource %p, src_subresource_idx %u, "
+ struct d3d_device *device = device_from_immediate_ID3D11DeviceContext(iface);
+ struct wined3d_resource *wined3d_dst_resource, *wined3d_src_resource;
+
+ TRACE("iface %p, dst_resource %p, dst_subresource_idx %u, src_resource %p, src_subresource_idx %u, "
"format %s stub!\n",
iface, dst_resource, dst_subresource_idx, src_resource, src_subresource_idx,
debug_dxgi_format(format));
+
+ wined3d_dst_resource = wined3d_resource_from_d3d11_resource(dst_resource);
+ wined3d_src_resource = wined3d_resource_from_d3d11_resource(src_resource);
+
+ /* Multisampled textures are not supported yet, so simply copy the sub resource */
+ wined3d_mutex_lock();
+ wined3d_device_copy_sub_resource_region(device->wined3d_device, wined3d_dst_resource, dst_subresource_idx,
+ 0, 0, 0, wined3d_src_resource, src_subresource_idx, NULL);
+ wined3d_mutex_unlock();
}
static void STDMETHODCALLTYPE d3d11_immediate_context_ExecuteCommandList(ID3D11DeviceContext *iface,
--
2.11.0

View File

@ -1,44 +0,0 @@
From 3f0721bc43cadd5b008ff7cd0fb3fe6748a3bfe7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 26 Feb 2017 21:16:12 +0100
Subject: d3d11: Implement d3d10_device_ResolveSubresource in the same way as
for d3d11.
---
dlls/d3d11/device.c | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index dbd7cd813cc..ef8d01696e7 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -6049,10 +6049,22 @@ static void STDMETHODCALLTYPE d3d10_device_ResolveSubresource(ID3D10Device1 *ifa
ID3D10Resource *dst_resource, UINT dst_subresource_idx,
ID3D10Resource *src_resource, UINT src_subresource_idx, DXGI_FORMAT format)
{
- FIXME("iface %p, dst_resource %p, dst_subresource_idx %u, "
- "src_resource %p, src_subresource_idx %u, format %s stub!\n",
- iface, dst_resource, dst_subresource_idx,
- src_resource, src_subresource_idx, debug_dxgi_format(format));
+ struct d3d_device *device = impl_from_ID3D10Device(iface);
+ struct wined3d_resource *wined3d_dst_resource, *wined3d_src_resource;
+
+ TRACE("iface %p, dst_resource %p, dst_subresource_idx %u, src_resource %p, src_subresource_idx %u, "
+ "format %s stub!\n",
+ iface, dst_resource, dst_subresource_idx, src_resource, src_subresource_idx,
+ debug_dxgi_format(format));
+
+ wined3d_dst_resource = wined3d_resource_from_d3d10_resource(dst_resource);
+ wined3d_src_resource = wined3d_resource_from_d3d10_resource(src_resource);
+
+ /* Multisampled textures are not supported yet, so simply copy the sub resource */
+ wined3d_mutex_lock();
+ wined3d_device_copy_sub_resource_region(device->wined3d_device, wined3d_dst_resource, dst_subresource_idx,
+ 0, 0, 0, wined3d_src_resource, src_subresource_idx, NULL);
+ wined3d_mutex_unlock();
}
static void STDMETHODCALLTYPE d3d10_device_VSGetConstantBuffers(ID3D10Device1 *iface,
--
2.11.0

View File

@ -1 +0,0 @@
Fixes: Implement semi-stub for d3d11 context ResolveSubresource method.

View File

@ -1,7 +1,7 @@
From 4008ff706b5b5358e02e7a092085701ad4d286ec Mon Sep 17 00:00:00 2001
From 3048fef5403918b832bbc75770067551d40e8851 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 14 Mar 2015 04:48:38 +0100
Subject: d3dx9_*: Adjust ID3DXEffect interface based on DLL version.
Subject: [PATCH] d3dx9_*: Adjust ID3DXEffect interface based on DLL version.
---
dlls/d3dx9_24/Makefile.in | 1 +
@ -29,10 +29,11 @@ Subject: d3dx9_*: Adjust ID3DXEffect interface based on DLL version.
22 files changed, 40 insertions(+)
diff --git a/dlls/d3dx9_24/Makefile.in b/dlls/d3dx9_24/Makefile.in
index 71dee7f..7464bd1 100644
index 482c92d..6810b79 100644
--- a/dlls/d3dx9_24/Makefile.in
+++ b/dlls/d3dx9_24/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=24
MODULE = d3dx9_24.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=24
@ -40,10 +41,11 @@ index 71dee7f..7464bd1 100644
C_SRCS = \
diff --git a/dlls/d3dx9_25/Makefile.in b/dlls/d3dx9_25/Makefile.in
index 9b44be8..1531e66 100644
index be4c769..ba16d3d 100644
--- a/dlls/d3dx9_25/Makefile.in
+++ b/dlls/d3dx9_25/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=25
MODULE = d3dx9_25.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=25
@ -51,10 +53,11 @@ index 9b44be8..1531e66 100644
C_SRCS = \
diff --git a/dlls/d3dx9_26/Makefile.in b/dlls/d3dx9_26/Makefile.in
index 14a52d1..2a58c58 100644
index c5e9e85..dffc238 100644
--- a/dlls/d3dx9_26/Makefile.in
+++ b/dlls/d3dx9_26/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=26
MODULE = d3dx9_26.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=26
@ -62,10 +65,11 @@ index 14a52d1..2a58c58 100644
C_SRCS = \
diff --git a/dlls/d3dx9_27/Makefile.in b/dlls/d3dx9_27/Makefile.in
index b2784fc..9ba1e2a 100644
index ee7f0e2..a422308 100644
--- a/dlls/d3dx9_27/Makefile.in
+++ b/dlls/d3dx9_27/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=27
MODULE = d3dx9_27.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=27
@ -73,10 +77,11 @@ index b2784fc..9ba1e2a 100644
C_SRCS = \
diff --git a/dlls/d3dx9_28/Makefile.in b/dlls/d3dx9_28/Makefile.in
index f6b31d6..15dec71 100644
index 0944200..73e486f 100644
--- a/dlls/d3dx9_28/Makefile.in
+++ b/dlls/d3dx9_28/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=28
MODULE = d3dx9_28.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=28
@ -84,10 +89,11 @@ index f6b31d6..15dec71 100644
C_SRCS = \
diff --git a/dlls/d3dx9_29/Makefile.in b/dlls/d3dx9_29/Makefile.in
index 9bd84be..5a5a8fc 100644
index 88cb110..5c3cf37 100644
--- a/dlls/d3dx9_29/Makefile.in
+++ b/dlls/d3dx9_29/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=29
MODULE = d3dx9_29.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=29
@ -95,10 +101,11 @@ index 9bd84be..5a5a8fc 100644
C_SRCS = \
diff --git a/dlls/d3dx9_30/Makefile.in b/dlls/d3dx9_30/Makefile.in
index a8ee15d..bafcdb4 100644
index 6ab2ff2..285ae2c 100644
--- a/dlls/d3dx9_30/Makefile.in
+++ b/dlls/d3dx9_30/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=30
MODULE = d3dx9_30.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=30
@ -106,10 +113,11 @@ index a8ee15d..bafcdb4 100644
C_SRCS = \
diff --git a/dlls/d3dx9_31/Makefile.in b/dlls/d3dx9_31/Makefile.in
index 27bd337..f5df4d8 100644
index 3d44da1..bc66d2f 100644
--- a/dlls/d3dx9_31/Makefile.in
+++ b/dlls/d3dx9_31/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=31
MODULE = d3dx9_31.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=31
@ -117,10 +125,11 @@ index 27bd337..f5df4d8 100644
C_SRCS = \
diff --git a/dlls/d3dx9_32/Makefile.in b/dlls/d3dx9_32/Makefile.in
index 1229c7f..cce9293 100644
index 37cc279..a4a9ecb 100644
--- a/dlls/d3dx9_32/Makefile.in
+++ b/dlls/d3dx9_32/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=32
MODULE = d3dx9_32.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=32
@ -128,10 +137,11 @@ index 1229c7f..cce9293 100644
C_SRCS = \
diff --git a/dlls/d3dx9_33/Makefile.in b/dlls/d3dx9_33/Makefile.in
index 44bd991..c9b6587 100644
index 5b03ec1..32a78c3 100644
--- a/dlls/d3dx9_33/Makefile.in
+++ b/dlls/d3dx9_33/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=33
MODULE = d3dx9_33.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=33
@ -139,10 +149,11 @@ index 44bd991..c9b6587 100644
C_SRCS = \
diff --git a/dlls/d3dx9_34/Makefile.in b/dlls/d3dx9_34/Makefile.in
index 4ba14c2..822f621 100644
index b7f9c46..714518e 100644
--- a/dlls/d3dx9_34/Makefile.in
+++ b/dlls/d3dx9_34/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=34
MODULE = d3dx9_34.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=34
@ -150,10 +161,11 @@ index 4ba14c2..822f621 100644
C_SRCS = \
diff --git a/dlls/d3dx9_35/Makefile.in b/dlls/d3dx9_35/Makefile.in
index ee527d5..3c8df66 100644
index 9c196ea..0a1b681 100644
--- a/dlls/d3dx9_35/Makefile.in
+++ b/dlls/d3dx9_35/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=35
MODULE = d3dx9_35.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=35
@ -161,10 +173,10 @@ index ee527d5..3c8df66 100644
C_SRCS = \
diff --git a/dlls/d3dx9_36/Makefile.in b/dlls/d3dx9_36/Makefile.in
index 83f7d1c..24ce09d 100644
index da8098d..6bb605d 100644
--- a/dlls/d3dx9_36/Makefile.in
+++ b/dlls/d3dx9_36/Makefile.in
@@ -1,6 +1,7 @@
@@ -2,6 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=36
MODULE = d3dx9_36.dll
IMPORTLIB = d3dx9
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
@ -173,10 +185,10 @@ index 83f7d1c..24ce09d 100644
C_SRCS = \
animation.c \
diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c
index 42f5aea..5281e8e 100644
index f8c4803..cd6c00f 100644
--- a/dlls/d3dx9_36/effect.c
+++ b/dlls/d3dx9_36/effect.c
@@ -3888,6 +3888,7 @@ static HRESULT WINAPI ID3DXEffectImpl_ApplyParameterBlock(ID3DXEffect* iface, D3
@@ -4351,6 +4351,7 @@ static HRESULT WINAPI ID3DXEffectImpl_ApplyParameterBlock(ID3DXEffect* iface, D3
return E_NOTIMPL;
}
@ -184,7 +196,7 @@ index 42f5aea..5281e8e 100644
static HRESULT WINAPI ID3DXEffectImpl_DeleteParameterBlock(ID3DXEffect* iface, D3DXHANDLE parameter_block)
{
struct ID3DXEffectImpl *This = impl_from_ID3DXEffect(iface);
@@ -3896,6 +3897,7 @@ static HRESULT WINAPI ID3DXEffectImpl_DeleteParameterBlock(ID3DXEffect* iface, D
@@ -4359,6 +4360,7 @@ static HRESULT WINAPI ID3DXEffectImpl_DeleteParameterBlock(ID3DXEffect* iface, D
return E_NOTIMPL;
}
@ -192,7 +204,7 @@ index 42f5aea..5281e8e 100644
static HRESULT WINAPI ID3DXEffectImpl_CloneEffect(ID3DXEffect *iface,
struct IDirect3DDevice9 *device, struct ID3DXEffect **effect)
@@ -3907,6 +3909,7 @@ static HRESULT WINAPI ID3DXEffectImpl_CloneEffect(ID3DXEffect *iface,
@@ -4370,6 +4372,7 @@ static HRESULT WINAPI ID3DXEffectImpl_CloneEffect(ID3DXEffect *iface,
return E_NOTIMPL;
}
@ -200,7 +212,7 @@ index 42f5aea..5281e8e 100644
static HRESULT WINAPI ID3DXEffectImpl_SetRawValue(ID3DXEffect *iface,
D3DXHANDLE parameter, const void *data, UINT byte_offset, UINT bytes)
{
@@ -3915,6 +3918,7 @@ static HRESULT WINAPI ID3DXEffectImpl_SetRawValue(ID3DXEffect *iface,
@@ -4378,6 +4381,7 @@ static HRESULT WINAPI ID3DXEffectImpl_SetRawValue(ID3DXEffect *iface,
return E_NOTIMPL;
}
@ -208,7 +220,7 @@ index 42f5aea..5281e8e 100644
static const struct ID3DXEffectVtbl ID3DXEffect_Vtbl =
{
@@ -3997,9 +4001,13 @@ static const struct ID3DXEffectVtbl ID3DXEffect_Vtbl =
@@ -4460,9 +4464,13 @@ static const struct ID3DXEffectVtbl ID3DXEffect_Vtbl =
ID3DXEffectImpl_BeginParameterBlock,
ID3DXEffectImpl_EndParameterBlock,
ID3DXEffectImpl_ApplyParameterBlock,
@ -223,10 +235,11 @@ index 42f5aea..5281e8e 100644
static inline struct ID3DXEffectCompilerImpl *impl_from_ID3DXEffectCompiler(ID3DXEffectCompiler *iface)
diff --git a/dlls/d3dx9_37/Makefile.in b/dlls/d3dx9_37/Makefile.in
index 61528a3..672878f 100644
index ab790a4..01df6b4 100644
--- a/dlls/d3dx9_37/Makefile.in
+++ b/dlls/d3dx9_37/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=37
MODULE = d3dx9_37.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=37
@ -234,10 +247,11 @@ index 61528a3..672878f 100644
C_SRCS = \
diff --git a/dlls/d3dx9_38/Makefile.in b/dlls/d3dx9_38/Makefile.in
index cb1507c..0b537c6 100644
index 6125c2d..089abd5 100644
--- a/dlls/d3dx9_38/Makefile.in
+++ b/dlls/d3dx9_38/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=38
MODULE = d3dx9_38.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=38
@ -245,10 +259,11 @@ index cb1507c..0b537c6 100644
C_SRCS = \
diff --git a/dlls/d3dx9_39/Makefile.in b/dlls/d3dx9_39/Makefile.in
index e372816..58d88f7 100644
index d97a787..21071cc 100644
--- a/dlls/d3dx9_39/Makefile.in
+++ b/dlls/d3dx9_39/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=39
MODULE = d3dx9_39.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=39
@ -256,10 +271,11 @@ index e372816..58d88f7 100644
C_SRCS = \
diff --git a/dlls/d3dx9_40/Makefile.in b/dlls/d3dx9_40/Makefile.in
index b6c4dcd..a4417b5 100644
index 36c5a21..6f08759 100644
--- a/dlls/d3dx9_40/Makefile.in
+++ b/dlls/d3dx9_40/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=40
MODULE = d3dx9_40.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=40
@ -267,10 +283,11 @@ index b6c4dcd..a4417b5 100644
C_SRCS = \
diff --git a/dlls/d3dx9_41/Makefile.in b/dlls/d3dx9_41/Makefile.in
index 9aa91a9..0463175 100644
index d4552cf..9c1baab 100644
--- a/dlls/d3dx9_41/Makefile.in
+++ b/dlls/d3dx9_41/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=41
MODULE = d3dx9_41.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=41
@ -278,10 +295,11 @@ index 9aa91a9..0463175 100644
C_SRCS = \
diff --git a/dlls/d3dx9_42/Makefile.in b/dlls/d3dx9_42/Makefile.in
index a5cc60e..309324f 100644
index 5806fce..a843d1b 100644
--- a/dlls/d3dx9_42/Makefile.in
+++ b/dlls/d3dx9_42/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=42
MODULE = d3dx9_42.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=42
@ -289,10 +307,11 @@ index a5cc60e..309324f 100644
C_SRCS = \
diff --git a/dlls/d3dx9_43/Makefile.in b/dlls/d3dx9_43/Makefile.in
index cb78707..9c1a87d 100644
index 72ba8b4..d0f1b9f 100644
--- a/dlls/d3dx9_43/Makefile.in
+++ b/dlls/d3dx9_43/Makefile.in
@@ -1,5 +1,6 @@
@@ -1,6 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=43
MODULE = d3dx9_43.dll
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+EXTRADEFS = -D_D3DX9_VER=43
@ -300,7 +319,7 @@ index cb78707..9c1a87d 100644
C_SRCS = \
diff --git a/include/d3dx9effect.h b/include/d3dx9effect.h
index 3f527ed..b8259e4 100644
index 8235794..83e19cf 100644
--- a/include/d3dx9effect.h
+++ b/include/d3dx9effect.h
@@ -1,5 +1,6 @@
@ -341,5 +360,5 @@ index 3f527ed..b8259e4 100644
typedef struct ID3DXEffectCompiler *LPD3DXEFFECTCOMPILER;
--
2.8.0
1.9.1

View File

@ -1,28 +1,27 @@
From ac716fe03fbbe45d9128e4e31c5654b9049c59aa Mon Sep 17 00:00:00 2001
From fb8bd7d53bea2e6deb38994741d884eb10bc31ad Mon Sep 17 00:00:00 2001
From: Christian Costa <titan.costa@gmail.com>
Date: Sat, 13 Feb 2016 15:29:37 +0100
Subject: d3dx9_36: Implement D3DXDisassembleShader. (v2)
Subject: [PATCH] d3dx9_36: Implement D3DXDisassembleShader. (v2)
Changes in v2 (by Christian Costa):
* More generic code for D3DXDisassembleShader.
---
dlls/d3dx9_36/shader.c | 331 ++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 328 insertions(+), 3 deletions(-)
dlls/d3dx9_36/shader.c | 330 ++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 328 insertions(+), 2 deletions(-)
diff --git a/dlls/d3dx9_36/shader.c b/dlls/d3dx9_36/shader.c
index e3924a9..34a98aa 100644
index f372494..01ed335 100644
--- a/dlls/d3dx9_36/shader.c
+++ b/dlls/d3dx9_36/shader.c
@@ -1,7 +1,7 @@
@@ -1,6 +1,7 @@
/*
* Copyright 2008 Luis Busquets
* Copyright 2009 Matteo Bruni
- * Copyright 2010, 2013 Christian Costa
+ * Copyright 2010, 2013, 2016 Christian Costa
* Copyright 2011 Travis Athougies
*
* This library is free software; you can redistribute it and/or
@@ -21,6 +21,7 @@
@@ -20,6 +21,7 @@
#include "config.h"
#include "wine/port.h"
@ -30,7 +29,7 @@ index e3924a9..34a98aa 100644
#include "d3dx9_private.h"
#include "d3dcommon.h"
@@ -2142,10 +2143,334 @@ HRESULT WINAPI D3DXGetShaderSamplers(const DWORD *byte_code, const char **sample
@@ -2144,10 +2146,334 @@ HRESULT WINAPI D3DXGetShaderSamplers(const DWORD *byte_code, const char **sample
return D3D_OK;
}
@ -368,5 +367,5 @@ index e3924a9..34a98aa 100644
struct d3dx9_texture_shader
--
2.8.0
1.9.1

View File

@ -1,18 +1,18 @@
From 9dec4fdb1b9f89a5709603247fc8c6bf52eff764 Mon Sep 17 00:00:00 2001
From 44260ce08c1291f1c2e6806ae2cccb8df50890df Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Mon, 15 Feb 2016 08:25:58 +0100
Subject: d3dx9_36/tests: Add initial tests for D3DXDisassembleShader.
Subject: [PATCH] d3dx9_36/tests: Add initial tests for D3DXDisassembleShader.
---
dlls/d3dx9_36/tests/shader.c | 46 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/dlls/d3dx9_36/tests/shader.c b/dlls/d3dx9_36/tests/shader.c
index 946143e..b12bf5b 100644
index 2f01a46..dd26f58 100644
--- a/dlls/d3dx9_36/tests/shader.c
+++ b/dlls/d3dx9_36/tests/shader.c
@@ -6628,6 +6628,51 @@ if (0)
ok(semantics[0].UsageIndex == 0, "Got %u, expected 0\n", semantics[0].UsageIndex);
@@ -6651,6 +6651,51 @@ static void test_shader_semantics(void)
}
}
+static void test_disassemble_shader(void)
@ -63,12 +63,12 @@ index 946143e..b12bf5b 100644
START_TEST(shader)
{
test_get_shader_size();
@@ -6642,4 +6687,5 @@ START_TEST(shader)
@@ -6665,4 +6710,5 @@ START_TEST(shader)
test_registerset();
test_registerset_defaults();
test_get_shader_semantics();
test_shader_semantics();
+ test_disassemble_shader();
}
--
2.7.1
1.9.1

View File

@ -1,18 +1,18 @@
From 01824b066e4d25ae049d924657d9c074bcb81344 Mon Sep 17 00:00:00 2001
From 6f28c9154b40e00b0e582a54910f3f88fd05a510 Mon Sep 17 00:00:00 2001
From: Christian Costa <titan.costa@gmail.com>
Date: Tue, 16 Feb 2016 12:11:45 +0100
Subject: d3dx9_36/tests: Add additional tests for special cases.
Subject: [PATCH] d3dx9_36/tests: Add additional tests for special cases.
---
dlls/d3dx9_36/tests/shader.c | 163 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 163 insertions(+)
diff --git a/dlls/d3dx9_36/tests/shader.c b/dlls/d3dx9_36/tests/shader.c
index b12bf5b..6bb6bda 100644
index dd26f58..44cc441 100644
--- a/dlls/d3dx9_36/tests/shader.c
+++ b/dlls/d3dx9_36/tests/shader.c
@@ -6628,6 +6628,60 @@ if (0)
ok(semantics[0].UsageIndex == 0, "Got %u, expected 0\n", semantics[0].UsageIndex);
@@ -6651,6 +6651,60 @@ static void test_shader_semantics(void)
}
}
+static const DWORD ps_tex[] = {
@ -72,7 +72,7 @@ index b12bf5b..6bb6bda 100644
static void test_disassemble_shader(void)
{
static const char disasm_vs[] = " vs_1_1\n"
@@ -6642,6 +6696,33 @@ static void test_disassemble_shader(void)
@@ -6665,6 +6719,33 @@ static void test_disassemble_shader(void)
" dp3 r0, c1, c0\n"
" mul r0, v0, r0\n"
" mul r0, t0, r0\n";
@ -106,7 +106,7 @@ index b12bf5b..6bb6bda 100644
ID3DXBuffer *disassembly;
HRESULT ret;
char *ptr;
@@ -6671,6 +6752,88 @@ static void test_disassemble_shader(void)
@@ -6694,6 +6775,88 @@ static void test_disassemble_shader(void)
ok(!memcmp(ptr, disasm_ps, sizeof(disasm_ps) - 1), /* compare beginning */
"Returned '%s', expected '%s'\n", ptr, disasm_ps);
ID3DXBuffer_Release(disassembly);
@ -196,5 +196,5 @@ index b12bf5b..6bb6bda 100644
START_TEST(shader)
--
2.7.1
1.9.1

View File

@ -1,7 +1,7 @@
From 33854851913e9046eb6ea4cd765a2f0026729f07 Mon Sep 17 00:00:00 2001
From bc50ed481ea6cfa40ac3925abe6121a91e6fa1c2 Mon Sep 17 00:00:00 2001
From: Christian Costa <titan.costa@gmail.com>
Date: Sat, 1 Nov 2014 13:08:05 +0100
Subject: d3dx9_36: Add dxtn support.
Subject: [PATCH] d3dx9_36: Add dxtn support.
---
dlls/d3dx9_24/Makefile.in | 2 +-
@ -23,16 +23,14 @@ Subject: d3dx9_36: Add dxtn support.
dlls/d3dx9_38/Makefile.in | 2 +-
dlls/d3dx9_39/Makefile.in | 2 +-
dlls/d3dx9_40/Makefile.in | 2 +-
dlls/d3dx9_41/Makefile.in | 2 +-
dlls/d3dx9_42/Makefile.in | 2 +-
dlls/d3dx9_43/Makefile.in | 2 +-
22 files changed, 120 insertions(+), 31 deletions(-)
19 files changed, 117 insertions(+), 28 deletions(-)
diff --git a/dlls/d3dx9_24/Makefile.in b/dlls/d3dx9_24/Makefile.in
index 7464bd1f18f..bca7d826db0 100644
index 6810b79..6a9e51e 100644
--- a/dlls/d3dx9_24/Makefile.in
+++ b/dlls/d3dx9_24/Makefile.in
@@ -1,5 +1,5 @@
@@ -1,6 +1,6 @@
EXTRADEFS = -DD3DX_SDK_VERSION=24
MODULE = d3dx9_24.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
@ -40,10 +38,11 @@ index 7464bd1f18f..bca7d826db0 100644
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_25/Makefile.in b/dlls/d3dx9_25/Makefile.in
index 1531e66c1e6..5d847a2828b 100644
index ba16d3d..bdaf982 100644
--- a/dlls/d3dx9_25/Makefile.in
+++ b/dlls/d3dx9_25/Makefile.in
@@ -1,5 +1,5 @@
@@ -1,6 +1,6 @@
EXTRADEFS = -DD3DX_SDK_VERSION=25
MODULE = d3dx9_25.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
@ -51,10 +50,11 @@ index 1531e66c1e6..5d847a2828b 100644
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_26/Makefile.in b/dlls/d3dx9_26/Makefile.in
index 2a58c58b8a1..cf0c1509693 100644
index dffc238..f62fda5 100644
--- a/dlls/d3dx9_26/Makefile.in
+++ b/dlls/d3dx9_26/Makefile.in
@@ -1,5 +1,5 @@
@@ -1,6 +1,6 @@
EXTRADEFS = -DD3DX_SDK_VERSION=26
MODULE = d3dx9_26.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
@ -62,10 +62,11 @@ index 2a58c58b8a1..cf0c1509693 100644
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_27/Makefile.in b/dlls/d3dx9_27/Makefile.in
index 9ba1e2ac5bd..7cc647c1647 100644
index a422308..dc6a8e3 100644
--- a/dlls/d3dx9_27/Makefile.in
+++ b/dlls/d3dx9_27/Makefile.in
@@ -1,5 +1,5 @@
@@ -1,6 +1,6 @@
EXTRADEFS = -DD3DX_SDK_VERSION=27
MODULE = d3dx9_27.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
@ -73,10 +74,11 @@ index 9ba1e2ac5bd..7cc647c1647 100644
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_28/Makefile.in b/dlls/d3dx9_28/Makefile.in
index 15dec71f2d7..bbf4140e723 100644
index 73e486f..f331b3a 100644
--- a/dlls/d3dx9_28/Makefile.in
+++ b/dlls/d3dx9_28/Makefile.in
@@ -1,5 +1,5 @@
@@ -1,6 +1,6 @@
EXTRADEFS = -DD3DX_SDK_VERSION=28
MODULE = d3dx9_28.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
@ -84,10 +86,11 @@ index 15dec71f2d7..bbf4140e723 100644
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_29/Makefile.in b/dlls/d3dx9_29/Makefile.in
index 5a5a8fcad97..1aa1663ea06 100644
index 5c3cf37..98038a1 100644
--- a/dlls/d3dx9_29/Makefile.in
+++ b/dlls/d3dx9_29/Makefile.in
@@ -1,5 +1,5 @@
@@ -1,6 +1,6 @@
EXTRADEFS = -DD3DX_SDK_VERSION=29
MODULE = d3dx9_29.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
@ -95,10 +98,11 @@ index 5a5a8fcad97..1aa1663ea06 100644
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_30/Makefile.in b/dlls/d3dx9_30/Makefile.in
index bafcdb49312..df8f87bfedf 100644
index 285ae2c..8d04f99 100644
--- a/dlls/d3dx9_30/Makefile.in
+++ b/dlls/d3dx9_30/Makefile.in
@@ -1,5 +1,5 @@
@@ -1,6 +1,6 @@
EXTRADEFS = -DD3DX_SDK_VERSION=30
MODULE = d3dx9_30.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
@ -106,10 +110,11 @@ index bafcdb49312..df8f87bfedf 100644
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_31/Makefile.in b/dlls/d3dx9_31/Makefile.in
index f5df4d88ae0..6ea8d15b411 100644
index bc66d2f..4142f42 100644
--- a/dlls/d3dx9_31/Makefile.in
+++ b/dlls/d3dx9_31/Makefile.in
@@ -1,5 +1,5 @@
@@ -1,6 +1,6 @@
EXTRADEFS = -DD3DX_SDK_VERSION=31
MODULE = d3dx9_31.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
@ -117,10 +122,11 @@ index f5df4d88ae0..6ea8d15b411 100644
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_32/Makefile.in b/dlls/d3dx9_32/Makefile.in
index cce9293063c..df0759fedfc 100644
index a4a9ecb..75a7b18 100644
--- a/dlls/d3dx9_32/Makefile.in
+++ b/dlls/d3dx9_32/Makefile.in
@@ -1,5 +1,5 @@
@@ -1,6 +1,6 @@
EXTRADEFS = -DD3DX_SDK_VERSION=32
MODULE = d3dx9_32.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
@ -128,10 +134,11 @@ index cce9293063c..df0759fedfc 100644
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_33/Makefile.in b/dlls/d3dx9_33/Makefile.in
index c9b6587e77b..ecf1b1598c9 100644
index 32a78c3..ffe9bdb 100644
--- a/dlls/d3dx9_33/Makefile.in
+++ b/dlls/d3dx9_33/Makefile.in
@@ -1,5 +1,5 @@
@@ -1,6 +1,6 @@
EXTRADEFS = -DD3DX_SDK_VERSION=33
MODULE = d3dx9_33.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
@ -139,10 +146,11 @@ index c9b6587e77b..ecf1b1598c9 100644
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_34/Makefile.in b/dlls/d3dx9_34/Makefile.in
index 822f621008d..2dcd721c0a9 100644
index 714518e..74eea4a 100644
--- a/dlls/d3dx9_34/Makefile.in
+++ b/dlls/d3dx9_34/Makefile.in
@@ -1,5 +1,5 @@
@@ -1,6 +1,6 @@
EXTRADEFS = -DD3DX_SDK_VERSION=34
MODULE = d3dx9_34.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
@ -150,10 +158,11 @@ index 822f621008d..2dcd721c0a9 100644
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_35/Makefile.in b/dlls/d3dx9_35/Makefile.in
index 3c8df661029..8c90f16b24f 100644
index 0a1b681..be66d97 100644
--- a/dlls/d3dx9_35/Makefile.in
+++ b/dlls/d3dx9_35/Makefile.in
@@ -1,5 +1,5 @@
@@ -1,6 +1,6 @@
EXTRADEFS = -DD3DX_SDK_VERSION=35
MODULE = d3dx9_35.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
@ -161,10 +170,11 @@ index 3c8df661029..8c90f16b24f 100644
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_36/Makefile.in b/dlls/d3dx9_36/Makefile.in
index 24ce09daefa..6b78518dc71 100644
index 6bb605d..74c8cae 100644
--- a/dlls/d3dx9_36/Makefile.in
+++ b/dlls/d3dx9_36/Makefile.in
@@ -1,6 +1,6 @@
@@ -1,7 +1,7 @@
EXTRADEFS = -DD3DX_SDK_VERSION=36
MODULE = d3dx9_36.dll
IMPORTLIB = d3dx9
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
@ -173,7 +183,7 @@ index 24ce09daefa..6b78518dc71 100644
C_SRCS = \
diff --git a/dlls/d3dx9_36/surface.c b/dlls/d3dx9_36/surface.c
index fc747799d6d..f851e74ee76 100644
index 89a2e3d..87a4125 100644
--- a/dlls/d3dx9_36/surface.c
+++ b/dlls/d3dx9_36/surface.c
@@ -27,6 +27,8 @@
@ -185,7 +195,7 @@ index fc747799d6d..f851e74ee76 100644
WINE_DEFAULT_DEBUG_CHANNEL(d3dx);
@@ -1715,6 +1717,27 @@ void point_filter_argb_pixels(const BYTE *src, UINT src_row_pitch, UINT src_slic
@@ -1817,6 +1819,27 @@ void point_filter_argb_pixels(const BYTE *src, UINT src_row_pitch, UINT src_slic
}
}
@ -213,7 +223,7 @@ index fc747799d6d..f851e74ee76 100644
/************************************************************
* D3DXLoadSurfaceFromMemory
*
@@ -1756,6 +1779,7 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
@@ -1858,6 +1881,7 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
D3DSURFACE_DESC surfdesc;
D3DLOCKED_RECT lockrect;
struct volume src_size, dst_size;
@ -221,7 +231,7 @@ index fc747799d6d..f851e74ee76 100644
TRACE("(%p, %p, %s, %p, %#x, %u, %p, %s, %#x, 0x%08x)\n",
dst_surface, dst_palette, wine_dbgstr_rect(dst_rect), src_memory, src_format,
@@ -1837,8 +1861,15 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
@@ -1939,8 +1963,15 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
}
else /* Stretching or format conversion. */
{
@ -239,7 +249,7 @@ index fc747799d6d..f851e74ee76 100644
{
FIXME("Unsupported format conversion %#x -> %#x.\n", src_format, surfdesc.Format);
return E_NOTIMPL;
@@ -1847,10 +1878,52 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
@@ -1949,10 +1980,52 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
if (FAILED(IDirect3DSurface9_LockRect(dst_surface, &lockrect, dst_rect, 0)))
return D3DXERR_INVALIDDATA;
@ -294,7 +304,7 @@ index fc747799d6d..f851e74ee76 100644
}
else /* if ((filter & 0xf) == D3DX_FILTER_POINT) */
{
@@ -1859,14 +1932,30 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
@@ -1961,14 +2034,30 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
/* Always apply a point filter until D3DX_FILTER_LINEAR,
* D3DX_FILTER_TRIANGLE and D3DX_FILTER_BOX are implemented. */
@ -329,10 +339,10 @@ index fc747799d6d..f851e74ee76 100644
/************************************************************
diff --git a/dlls/d3dx9_36/tests/surface.c b/dlls/d3dx9_36/tests/surface.c
index f2855e8ddb8..2be48dfddab 100644
index 26adc73..e45ee36 100644
--- a/dlls/d3dx9_36/tests/surface.c
+++ b/dlls/d3dx9_36/tests/surface.c
@@ -1174,7 +1174,7 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device)
@@ -1200,7 +1200,7 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device)
hr = IDirect3DTexture9_GetSurfaceLevel(tex, 0, &newsurf);
ok(SUCCEEDED(hr), "Failed to get the surface, hr %#x.\n", hr);
hr = D3DXLoadSurfaceFromSurface(newsurf, NULL, NULL, surf, NULL, NULL, D3DX_FILTER_NONE, 0);
@ -341,7 +351,7 @@ index f2855e8ddb8..2be48dfddab 100644
check_release((IUnknown*)newsurf, 1);
check_release((IUnknown*)tex, 0);
}
@@ -1200,7 +1200,7 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device)
@@ -1226,7 +1226,7 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device)
hr = IDirect3DTexture9_GetSurfaceLevel(tex, 0, &newsurf);
ok(SUCCEEDED(hr), "Failed to get the surface, hr %#x.\n", hr);
hr = D3DXLoadSurfaceFromSurface(newsurf, NULL, NULL, surf, NULL, NULL, D3DX_FILTER_NONE, 0);
@ -350,7 +360,7 @@ index f2855e8ddb8..2be48dfddab 100644
check_release((IUnknown*)newsurf, 1);
check_release((IUnknown*)tex, 0);
}
@@ -1213,10 +1213,10 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device)
@@ -1239,10 +1239,10 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device)
hr = IDirect3DTexture9_GetSurfaceLevel(tex, 0, &newsurf);
ok(SUCCEEDED(hr), "Failed to get the surface, hr %#x.\n", hr);
hr = D3DXLoadSurfaceFromSurface(newsurf, NULL, NULL, surf, NULL, NULL, D3DX_FILTER_NONE, 0);
@ -364,10 +374,11 @@ index f2855e8ddb8..2be48dfddab 100644
check_release((IUnknown*)newsurf, 1);
check_release((IUnknown*)tex, 0);
diff --git a/dlls/d3dx9_37/Makefile.in b/dlls/d3dx9_37/Makefile.in
index 672878ff7e4..9eecd32899d 100644
index 01df6b4..9aaf338 100644
--- a/dlls/d3dx9_37/Makefile.in
+++ b/dlls/d3dx9_37/Makefile.in
@@ -1,5 +1,5 @@
@@ -1,6 +1,6 @@
EXTRADEFS = -DD3DX_SDK_VERSION=37
MODULE = d3dx9_37.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
@ -375,10 +386,11 @@ index 672878ff7e4..9eecd32899d 100644
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_38/Makefile.in b/dlls/d3dx9_38/Makefile.in
index 0b537c66b68..6bb7bac0513 100644
index 089abd5..86d9846 100644
--- a/dlls/d3dx9_38/Makefile.in
+++ b/dlls/d3dx9_38/Makefile.in
@@ -1,5 +1,5 @@
@@ -1,6 +1,6 @@
EXTRADEFS = -DD3DX_SDK_VERSION=38
MODULE = d3dx9_38.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
@ -386,10 +398,11 @@ index 0b537c66b68..6bb7bac0513 100644
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_39/Makefile.in b/dlls/d3dx9_39/Makefile.in
index 58d88f78abc..5d03e18feb3 100644
index 21071cc..0431693 100644
--- a/dlls/d3dx9_39/Makefile.in
+++ b/dlls/d3dx9_39/Makefile.in
@@ -1,5 +1,5 @@
@@ -1,6 +1,6 @@
EXTRADEFS = -DD3DX_SDK_VERSION=39
MODULE = d3dx9_39.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
@ -397,49 +410,17 @@ index 58d88f78abc..5d03e18feb3 100644
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_40/Makefile.in b/dlls/d3dx9_40/Makefile.in
index a4417b5aa13..8982d4ec5e4 100644
index 6f08759..ecb4af5 100644
--- a/dlls/d3dx9_40/Makefile.in
+++ b/dlls/d3dx9_40/Makefile.in
@@ -1,5 +1,5 @@
@@ -1,6 +1,6 @@
EXTRADEFS = -DD3DX_SDK_VERSION=40
MODULE = d3dx9_40.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
EXTRADEFS = -D_D3DX9_VER=40
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_41/Makefile.in b/dlls/d3dx9_41/Makefile.in
index 0463175210a..e9f3d657e6c 100644
--- a/dlls/d3dx9_41/Makefile.in
+++ b/dlls/d3dx9_41/Makefile.in
@@ -1,5 +1,5 @@
MODULE = d3dx9_41.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
EXTRADEFS = -D_D3DX9_VER=41
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_42/Makefile.in b/dlls/d3dx9_42/Makefile.in
index 309324f4307..a55736d756f 100644
--- a/dlls/d3dx9_42/Makefile.in
+++ b/dlls/d3dx9_42/Makefile.in
@@ -1,5 +1,5 @@
MODULE = d3dx9_42.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
EXTRADEFS = -D_D3DX9_VER=42
PARENTSRC = ../d3dx9_36
diff --git a/dlls/d3dx9_43/Makefile.in b/dlls/d3dx9_43/Makefile.in
index 9c1a87da600..c2e787c5836 100644
--- a/dlls/d3dx9_43/Makefile.in
+++ b/dlls/d3dx9_43/Makefile.in
@@ -1,5 +1,5 @@
MODULE = d3dx9_43.dll
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
EXTRADEFS = -D_D3DX9_VER=43
PARENTSRC = ../d3dx9_36
--
2.11.0
1.9.1

View File

@ -1,530 +0,0 @@
From 4a759d3fc62318aad4e7da7fbaaa5099940e2a3f Mon Sep 17 00:00:00 2001
From: Christian Costa <titan.costa@gmail.com>
Date: Sat, 5 Apr 2014 14:02:07 +0200
Subject: d3dx9_36: Implement D3DXGetShaderInputSemantics + tests. (rev 3)
Fixes bug 22682.
---
dlls/d3dx9_24/d3dx9_24.spec | 2 +-
dlls/d3dx9_25/d3dx9_25.spec | 2 +-
dlls/d3dx9_26/d3dx9_26.spec | 2 +-
dlls/d3dx9_27/d3dx9_27.spec | 2 +-
dlls/d3dx9_28/d3dx9_28.spec | 2 +-
dlls/d3dx9_29/d3dx9_29.spec | 2 +-
dlls/d3dx9_30/d3dx9_30.spec | 2 +-
dlls/d3dx9_31/d3dx9_31.spec | 2 +-
dlls/d3dx9_32/d3dx9_32.spec | 2 +-
dlls/d3dx9_33/d3dx9_33.spec | 2 +-
dlls/d3dx9_34/d3dx9_34.spec | 2 +-
dlls/d3dx9_35/d3dx9_35.spec | 2 +-
dlls/d3dx9_36/d3dx9_36.spec | 2 +-
dlls/d3dx9_36/shader.c | 93 ++++++++++++++++++++++++++++++++++++++++++++
dlls/d3dx9_36/tests/shader.c | 86 ++++++++++++++++++++++++++++++++++++++++
dlls/d3dx9_37/d3dx9_37.spec | 2 +-
dlls/d3dx9_38/d3dx9_38.spec | 2 +-
dlls/d3dx9_39/d3dx9_39.spec | 2 +-
dlls/d3dx9_40/d3dx9_40.spec | 2 +-
dlls/d3dx9_41/d3dx9_41.spec | 2 +-
dlls/d3dx9_42/d3dx9_42.spec | 2 +-
dlls/d3dx9_43/d3dx9_43.spec | 2 +-
include/d3dx9shader.h | 1 +
23 files changed, 200 insertions(+), 20 deletions(-)
diff --git a/dlls/d3dx9_24/d3dx9_24.spec b/dlls/d3dx9_24/d3dx9_24.spec
index f182d7e..f8068f9 100644
--- a/dlls/d3dx9_24/d3dx9_24.spec
+++ b/dlls/d3dx9_24/d3dx9_24.spec
@@ -154,7 +154,7 @@
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_25/d3dx9_25.spec b/dlls/d3dx9_25/d3dx9_25.spec
index 300dc1d..da1c874 100644
--- a/dlls/d3dx9_25/d3dx9_25.spec
+++ b/dlls/d3dx9_25/d3dx9_25.spec
@@ -154,7 +154,7 @@
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_26/d3dx9_26.spec b/dlls/d3dx9_26/d3dx9_26.spec
index 79e0a0c..03492f9 100644
--- a/dlls/d3dx9_26/d3dx9_26.spec
+++ b/dlls/d3dx9_26/d3dx9_26.spec
@@ -158,7 +158,7 @@
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_27/d3dx9_27.spec b/dlls/d3dx9_27/d3dx9_27.spec
index 79e0a0c..03492f9 100644
--- a/dlls/d3dx9_27/d3dx9_27.spec
+++ b/dlls/d3dx9_27/d3dx9_27.spec
@@ -158,7 +158,7 @@
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_28/d3dx9_28.spec b/dlls/d3dx9_28/d3dx9_28.spec
index abbfa94..977da28 100644
--- a/dlls/d3dx9_28/d3dx9_28.spec
+++ b/dlls/d3dx9_28/d3dx9_28.spec
@@ -158,7 +158,7 @@
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_29/d3dx9_29.spec b/dlls/d3dx9_29/d3dx9_29.spec
index abbfa94..977da28 100644
--- a/dlls/d3dx9_29/d3dx9_29.spec
+++ b/dlls/d3dx9_29/d3dx9_29.spec
@@ -158,7 +158,7 @@
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_30/d3dx9_30.spec b/dlls/d3dx9_30/d3dx9_30.spec
index 0269caa..27e8c08 100644
--- a/dlls/d3dx9_30/d3dx9_30.spec
+++ b/dlls/d3dx9_30/d3dx9_30.spec
@@ -158,7 +158,7 @@
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_31/d3dx9_31.spec b/dlls/d3dx9_31/d3dx9_31.spec
index be37e8f..f6ed856 100644
--- a/dlls/d3dx9_31/d3dx9_31.spec
+++ b/dlls/d3dx9_31/d3dx9_31.spec
@@ -157,7 +157,7 @@
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_32/d3dx9_32.spec b/dlls/d3dx9_32/d3dx9_32.spec
index 6d9e244..4f92df8 100644
--- a/dlls/d3dx9_32/d3dx9_32.spec
+++ b/dlls/d3dx9_32/d3dx9_32.spec
@@ -157,7 +157,7 @@
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_33/d3dx9_33.spec b/dlls/d3dx9_33/d3dx9_33.spec
index 6d9e244..4f92df8 100644
--- a/dlls/d3dx9_33/d3dx9_33.spec
+++ b/dlls/d3dx9_33/d3dx9_33.spec
@@ -157,7 +157,7 @@
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_34/d3dx9_34.spec b/dlls/d3dx9_34/d3dx9_34.spec
index 6d9e244..4f92df8 100644
--- a/dlls/d3dx9_34/d3dx9_34.spec
+++ b/dlls/d3dx9_34/d3dx9_34.spec
@@ -157,7 +157,7 @@
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_35/d3dx9_35.spec b/dlls/d3dx9_35/d3dx9_35.spec
index 6d9e244..4f92df8 100644
--- a/dlls/d3dx9_35/d3dx9_35.spec
+++ b/dlls/d3dx9_35/d3dx9_35.spec
@@ -157,7 +157,7 @@
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec
index 2db0152..3a15b76 100644
--- a/dlls/d3dx9_36/d3dx9_36.spec
+++ b/dlls/d3dx9_36/d3dx9_36.spec
@@ -159,7 +159,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_36/shader.c b/dlls/d3dx9_36/shader.c
index 4dbecb1..538cd42 100644
--- a/dlls/d3dx9_36/shader.c
+++ b/dlls/d3dx9_36/shader.c
@@ -1,6 +1,7 @@
/*
* Copyright 2008 Luis Busquets
* Copyright 2009 Matteo Bruni
+ * Copyright 2010, 2013 Christian Costa
* Copyright 2011 Travis Athougies
*
* This library is free software; you can redistribute it and/or
@@ -2413,3 +2414,95 @@ HRESULT WINAPI D3DXCreateTextureShader(const DWORD *function, ID3DXTextureShader
return D3D_OK;
}
+
+static const DWORD* skip_instruction(const DWORD *byte_code, UINT shader_model)
+{
+ TRACE("Shader model %u\n", shader_model);
+
+ /* Handle all special instructions whose arguments may contain D3DSIO_DCL */
+ if ((*byte_code & D3DSI_OPCODE_MASK) == D3DSIO_COMMENT)
+ {
+ byte_code += 1 + ((*byte_code & D3DSI_COMMENTSIZE_MASK) >> D3DSI_COMMENTSIZE_SHIFT);
+ }
+ else if (shader_model >= 2)
+ {
+ byte_code += 1 + ((*byte_code & D3DSI_INSTLENGTH_MASK) >> D3DSI_INSTLENGTH_SHIFT);
+ }
+ else if ((*byte_code & D3DSI_OPCODE_MASK) == D3DSIO_DEF)
+ {
+ byte_code += 1 + 5;
+ }
+ else
+ {
+ /* Handle remaining safe instructions */
+ while (*++byte_code & (1u << 31));
+ }
+
+ return byte_code;
+}
+
+static UINT get_shader_semantics(const DWORD *byte_code, D3DXSEMANTIC *semantics, DWORD type)
+{
+ const DWORD *ptr = byte_code;
+ UINT shader_model = (*ptr >> 8) & 0xff;
+ UINT i = 0;
+
+ TRACE("Shader version: %#x\n", *ptr);
+ ptr++;
+
+ while (*ptr != D3DSIO_END)
+ {
+ if (*ptr & (1u << 31))
+ {
+ FIXME("Opcode expected\n");
+ return 0;
+ }
+ else if ((*ptr & D3DSI_OPCODE_MASK) == D3DSIO_DCL)
+ {
+ DWORD param1 = *++ptr;
+ DWORD param2 = *++ptr;
+ DWORD usage = (param1 & D3DSP_DCL_USAGE_MASK) >> D3DSP_DCL_USAGE_SHIFT;
+ DWORD usage_index = (param1 & D3DSP_DCL_USAGEINDEX_MASK) >> D3DSP_DCL_USAGEINDEX_SHIFT;
+ DWORD reg_type = ((param2 & D3DSP_REGTYPE_MASK2) >> D3DSP_REGTYPE_SHIFT2)
+ | ((param2 & D3DSP_REGTYPE_MASK) >> D3DSP_REGTYPE_SHIFT);
+
+ TRACE("D3DSIO_DCL param1: %#x, param2: %#x, usage: %u, usage_index: %u, reg_type: %u\n",
+ param1, param2, usage, usage_index, reg_type);
+
+ if (reg_type == type)
+ {
+ if (semantics)
+ {
+ semantics[i].Usage = usage;
+ semantics[i].UsageIndex = usage_index;
+ }
+ i++;
+ }
+
+ ptr++;
+ }
+ else
+ {
+ ptr = skip_instruction(ptr, shader_model);
+ }
+ }
+
+ return i;
+}
+
+HRESULT WINAPI D3DXGetShaderInputSemantics(const DWORD *byte_code, D3DXSEMANTIC *semantics, UINT *count)
+{
+ UINT nb_semantics;
+
+ TRACE("byte_code %p, semantics %p, count %p\n", byte_code, semantics, count);
+
+ if (!byte_code)
+ return D3DERR_INVALIDCALL;
+
+ nb_semantics = get_shader_semantics(byte_code, semantics, D3DSPR_INPUT);
+
+ if (count)
+ *count = nb_semantics;
+
+ return D3D_OK;
+}
diff --git a/dlls/d3dx9_36/tests/shader.c b/dlls/d3dx9_36/tests/shader.c
index 4a7ae67..9a2769f 100644
--- a/dlls/d3dx9_36/tests/shader.c
+++ b/dlls/d3dx9_36/tests/shader.c
@@ -1,5 +1,6 @@
/*
* Copyright 2008 Luis Busquets
+ * Copyright 2010, 2013 Christian Costa
* Copyright 2011 Travis Athougies
*
* This library is free software; you can redistribute it and/or
@@ -299,6 +300,26 @@ static const DWORD fx_shader_with_ctab[] =
0x0000ffff /* END */
};
+static const DWORD semantics_vs11[] = {
+ 0xfffe0101, /* vs_1_1 */
+ 0x0001fffe, D3DSIO_DCL, /* Comment */
+ 0x00000051, 0xa00f0001, D3DSIO_DCL, D3DSIO_DCL, D3DSIO_DCL, D3DSIO_DCL, /* def c1 = dcl, dcl, dcl, dcl */
+ 0x0000001f, 0x80000000, 0x900f0000, /* dcl_position0 v0 (input) */
+ 0x0000001f, 0x80000005, 0x900f0001, /* dcl_texcoord0 v1 (input) */
+ 0x0000001f, 0x80010005, 0x900f0002, /* dcl_texcoord1 v2 (input) */
+ 0x0000001f, 0x8000000a, 0xe00f0000, /* dcl_color0 oD0 (output) */
+ 0x0000ffff}; /* END */
+
+static const DWORD semantics_vs30[] = {
+ 0xfffe0300, /* vs_3_0 */
+ 0x0001fffe, D3DSIO_DCL, /* Comment */
+ 0x05000051, 0xa00f0001, D3DSIO_DCL, D3DSIO_DCL, D3DSIO_DCL, D3DSIO_DCL, /* def c1 = dcl, dcl, dcl, dcl */
+ 0x0200001f, 0x80000000, 0x900f0000, /* dcl_position0 v0 (input) */
+ 0x0200001f, 0x80000005, 0x900f0001, /* dcl_texcoord0 v1 (input) */
+ 0x0200001f, 0x80010005, 0x900f0002, /* dcl_texcoord1 v2 (input) */
+ 0x0200001f, 0x8000000a, 0xe00f0000, /* dcl_color0 o0 (output) */
+ 0x0000ffff}; /* END */
+
static void test_get_shader_size(void)
{
UINT shader_size, expected;
@@ -6489,6 +6510,70 @@ static void test_registerset_defaults(void)
if (wnd) DestroyWindow(wnd);
}
+static void test_get_shader_semantics(void)
+{
+ HRESULT ret;
+ D3DXSEMANTIC semantics[MAXD3DDECLLENGTH];
+ UINT count;
+
+ /* Test D3DXGetShaderInputSemantics */
+
+ /* Check wrong parameters */
+ ret = D3DXGetShaderInputSemantics(NULL, NULL, NULL);
+ ok(ret == D3DERR_INVALIDCALL, "Returned %#x, expected %#x\n", ret, D3DERR_INVALIDCALL);
+ ret = D3DXGetShaderInputSemantics(NULL, NULL, &count);
+ ok(ret == D3DERR_INVALIDCALL, "Returned %#x, expected %#x\n", ret, D3DERR_INVALIDCALL);
+ ret = D3DXGetShaderInputSemantics(NULL, semantics, NULL);
+ ok(ret == D3DERR_INVALIDCALL, "Returned %#x, expected %#x\n", ret, D3DERR_INVALIDCALL);
+ ret = D3DXGetShaderInputSemantics(NULL, semantics, &count);
+ ok(ret == D3DERR_INVALIDCALL, "Returned %#x, expected %#x\n", ret, D3DERR_INVALIDCALL);
+ ret = D3DXGetShaderInputSemantics(semantics_vs11, NULL, NULL);
+ ok(ret == D3D_OK, "Failed with %#x\n", ret);
+
+ /* Check null semantics pointer */
+ count = 0xdeadbeef;
+ ret = D3DXGetShaderInputSemantics(semantics_vs11, NULL, &count);
+ ok(ret == D3D_OK, "Failed with %#x\n", ret);
+ ok(count == 3, "Got %u, expected 3\n", count);
+
+ /* Check null count pointer */
+ memset(semantics, 0xcc, sizeof(semantics));
+ ret = D3DXGetShaderInputSemantics(semantics_vs11, semantics, NULL);
+ ok(ret == D3D_OK, "Failed with %#x\n", ret);
+ ok(semantics[0].Usage == D3DDECLUSAGE_POSITION, "Got %u, expected %u\n", semantics[0].Usage, D3DDECLUSAGE_POSITION);
+ ok(semantics[0].UsageIndex == 0, "Got %u, expected 0\n", semantics[0].UsageIndex);
+ ok(semantics[1].Usage == D3DDECLUSAGE_TEXCOORD, "Got %u, expected %u\n", semantics[1].Usage, D3DDECLUSAGE_TEXCOORD);
+ ok(semantics[1].UsageIndex == 0, "Got %u, expected 0\n", semantics[0].UsageIndex);
+ ok(semantics[2].Usage == D3DDECLUSAGE_TEXCOORD, "Got %u, expected %u\n", semantics[2].Usage, D3DDECLUSAGE_TEXCOORD);
+ ok(semantics[2].UsageIndex == 1, "Got %u, expected 1\n", semantics[0].UsageIndex);
+
+ /* Check with vs11 shader */
+ count = 0xdeadbeef;
+ memset(semantics, 0xcc, sizeof(semantics));
+ ret = D3DXGetShaderInputSemantics(semantics_vs11, semantics, &count);
+ ok(ret == D3D_OK, "Failed with %#x\n", ret);
+ ok(count == 3, "Got %u, expected 3\n", count);
+ ok(semantics[0].Usage == D3DDECLUSAGE_POSITION, "Got %u, expected %u\n", semantics[0].Usage, D3DDECLUSAGE_POSITION);
+ ok(semantics[0].UsageIndex == 0, "Got %u, expected 0\n", semantics[0].UsageIndex);
+ ok(semantics[1].Usage == D3DDECLUSAGE_TEXCOORD, "Got %u, expected %u\n", semantics[1].Usage, D3DDECLUSAGE_TEXCOORD);
+ ok(semantics[1].UsageIndex == 0, "Got %u, expected 0\n", semantics[0].UsageIndex);
+ ok(semantics[2].Usage == D3DDECLUSAGE_TEXCOORD, "Got %u, expected %u\n", semantics[2].Usage, D3DDECLUSAGE_TEXCOORD);
+ ok(semantics[2].UsageIndex == 1, "Got %u, expected 1\n", semantics[0].UsageIndex);
+
+ /* Check with vs30 shader */
+ count = 0xdeadbeef;
+ memset(semantics, 0xcc, sizeof(semantics));
+ ret = D3DXGetShaderInputSemantics(semantics_vs30, semantics, &count);
+ ok(ret == D3D_OK, "Failed with %#x\n", ret);
+ ok(count == 3, "Got %u, expected 3\n", count);
+ ok(semantics[0].Usage == D3DDECLUSAGE_POSITION, "Got %u, expected %u\n", semantics[0].Usage, D3DDECLUSAGE_POSITION);
+ ok(semantics[0].UsageIndex == 0, "Got %u, expected 0\n", semantics[0].UsageIndex);
+ ok(semantics[1].Usage == D3DDECLUSAGE_TEXCOORD, "Got %u, expected %u\n", semantics[1].Usage, D3DDECLUSAGE_TEXCOORD);
+ ok(semantics[1].UsageIndex == 0, "Got %u, expected 0\n", semantics[0].UsageIndex);
+ ok(semantics[2].Usage == D3DDECLUSAGE_TEXCOORD, "Got %u, expected %u\n", semantics[2].Usage, D3DDECLUSAGE_TEXCOORD);
+ ok(semantics[2].UsageIndex == 1, "Got %u, expected 1\n", semantics[0].UsageIndex);
+}
+
START_TEST(shader)
{
test_get_shader_size();
@@ -6502,4 +6587,5 @@ START_TEST(shader)
test_get_shader_constant_variables();
test_registerset();
test_registerset_defaults();
+ test_get_shader_semantics();
}
diff --git a/dlls/d3dx9_37/d3dx9_37.spec b/dlls/d3dx9_37/d3dx9_37.spec
index 2db0152..3a15b76 100644
--- a/dlls/d3dx9_37/d3dx9_37.spec
+++ b/dlls/d3dx9_37/d3dx9_37.spec
@@ -159,7 +159,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_38/d3dx9_38.spec b/dlls/d3dx9_38/d3dx9_38.spec
index 2db0152..3a15b76 100644
--- a/dlls/d3dx9_38/d3dx9_38.spec
+++ b/dlls/d3dx9_38/d3dx9_38.spec
@@ -159,7 +159,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_39/d3dx9_39.spec b/dlls/d3dx9_39/d3dx9_39.spec
index 2db0152..3a15b76 100644
--- a/dlls/d3dx9_39/d3dx9_39.spec
+++ b/dlls/d3dx9_39/d3dx9_39.spec
@@ -159,7 +159,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_40/d3dx9_40.spec b/dlls/d3dx9_40/d3dx9_40.spec
index 2db0152..3a15b76 100644
--- a/dlls/d3dx9_40/d3dx9_40.spec
+++ b/dlls/d3dx9_40/d3dx9_40.spec
@@ -159,7 +159,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_41/d3dx9_41.spec b/dlls/d3dx9_41/d3dx9_41.spec
index 2db0152..3a15b76 100644
--- a/dlls/d3dx9_41/d3dx9_41.spec
+++ b/dlls/d3dx9_41/d3dx9_41.spec
@@ -159,7 +159,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_42/d3dx9_42.spec b/dlls/d3dx9_42/d3dx9_42.spec
index 9a69e76..0422f8a 100644
--- a/dlls/d3dx9_42/d3dx9_42.spec
+++ b/dlls/d3dx9_42/d3dx9_42.spec
@@ -152,7 +152,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/dlls/d3dx9_43/d3dx9_43.spec b/dlls/d3dx9_43/d3dx9_43.spec
index 9a69e76..0422f8a 100644
--- a/dlls/d3dx9_43/d3dx9_43.spec
+++ b/dlls/d3dx9_43/d3dx9_43.spec
@@ -152,7 +152,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
diff --git a/include/d3dx9shader.h b/include/d3dx9shader.h
index a3f68f2..5714ddb 100644
--- a/include/d3dx9shader.h
+++ b/include/d3dx9shader.h
@@ -352,6 +352,7 @@ DWORD WINAPI D3DXGetShaderVersion(const DWORD *byte_code);
const char * WINAPI D3DXGetVertexShaderProfile(struct IDirect3DDevice9 *device);
HRESULT WINAPI D3DXFindShaderComment(const DWORD *byte_code, DWORD fourcc, const void **data, UINT *size);
HRESULT WINAPI D3DXGetShaderSamplers(const DWORD *byte_code, const char **samplers, UINT *count);
+HRESULT WINAPI D3DXGetShaderInputSemantics(const DWORD *byte_code, D3DXSEMANTIC *semantics, UINT *count);
HRESULT WINAPI D3DXAssembleShaderFromFileA(const char *filename, const D3DXMACRO *defines,
ID3DXInclude *include, DWORD flags, ID3DXBuffer **shader, ID3DXBuffer **error_messages);
--
2.8.0

View File

@ -1,407 +0,0 @@
From 93d8dea11ef99d14e59031586bbb62d300b4385a Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 8 Jul 2015 10:55:03 +1000
Subject: d3dx9_36: Implement D3DXGetShaderOutputSemantics. (rev 2)
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/d3dx9_24/d3dx9_24.spec | 2 +-
dlls/d3dx9_25/d3dx9_25.spec | 2 +-
dlls/d3dx9_26/d3dx9_26.spec | 2 +-
dlls/d3dx9_27/d3dx9_27.spec | 2 +-
dlls/d3dx9_28/d3dx9_28.spec | 2 +-
dlls/d3dx9_29/d3dx9_29.spec | 2 +-
dlls/d3dx9_30/d3dx9_30.spec | 2 +-
dlls/d3dx9_31/d3dx9_31.spec | 2 +-
dlls/d3dx9_32/d3dx9_32.spec | 2 +-
dlls/d3dx9_33/d3dx9_33.spec | 2 +-
dlls/d3dx9_34/d3dx9_34.spec | 2 +-
dlls/d3dx9_35/d3dx9_35.spec | 2 +-
dlls/d3dx9_36/d3dx9_36.spec | 2 +-
dlls/d3dx9_36/shader.c | 20 +++++++++++++++-
dlls/d3dx9_36/tests/shader.c | 54 ++++++++++++++++++++++++++++++++++++++++++++
dlls/d3dx9_37/d3dx9_37.spec | 2 +-
dlls/d3dx9_38/d3dx9_38.spec | 2 +-
dlls/d3dx9_39/d3dx9_39.spec | 2 +-
dlls/d3dx9_40/d3dx9_40.spec | 2 +-
dlls/d3dx9_41/d3dx9_41.spec | 2 +-
dlls/d3dx9_42/d3dx9_42.spec | 2 +-
dlls/d3dx9_43/d3dx9_43.spec | 2 +-
include/d3dx9shader.h | 1 +
23 files changed, 94 insertions(+), 21 deletions(-)
diff --git a/dlls/d3dx9_24/d3dx9_24.spec b/dlls/d3dx9_24/d3dx9_24.spec
index 7e4217d..c53c946 100644
--- a/dlls/d3dx9_24/d3dx9_24.spec
+++ b/dlls/d3dx9_24/d3dx9_24.spec
@@ -155,7 +155,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_25/d3dx9_25.spec b/dlls/d3dx9_25/d3dx9_25.spec
index 2c7ae49..2072001 100644
--- a/dlls/d3dx9_25/d3dx9_25.spec
+++ b/dlls/d3dx9_25/d3dx9_25.spec
@@ -155,7 +155,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_26/d3dx9_26.spec b/dlls/d3dx9_26/d3dx9_26.spec
index 21b7f3c..5e1bce9 100644
--- a/dlls/d3dx9_26/d3dx9_26.spec
+++ b/dlls/d3dx9_26/d3dx9_26.spec
@@ -159,7 +159,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_27/d3dx9_27.spec b/dlls/d3dx9_27/d3dx9_27.spec
index 21b7f3c..5e1bce9 100644
--- a/dlls/d3dx9_27/d3dx9_27.spec
+++ b/dlls/d3dx9_27/d3dx9_27.spec
@@ -159,7 +159,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_28/d3dx9_28.spec b/dlls/d3dx9_28/d3dx9_28.spec
index 5f630a6..503d0b2 100644
--- a/dlls/d3dx9_28/d3dx9_28.spec
+++ b/dlls/d3dx9_28/d3dx9_28.spec
@@ -159,7 +159,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_29/d3dx9_29.spec b/dlls/d3dx9_29/d3dx9_29.spec
index 5f630a6..503d0b2 100644
--- a/dlls/d3dx9_29/d3dx9_29.spec
+++ b/dlls/d3dx9_29/d3dx9_29.spec
@@ -159,7 +159,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_30/d3dx9_30.spec b/dlls/d3dx9_30/d3dx9_30.spec
index 5f0e3a4..74bf709 100644
--- a/dlls/d3dx9_30/d3dx9_30.spec
+++ b/dlls/d3dx9_30/d3dx9_30.spec
@@ -159,7 +159,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_31/d3dx9_31.spec b/dlls/d3dx9_31/d3dx9_31.spec
index 1d52ecb..b1fa7bf 100644
--- a/dlls/d3dx9_31/d3dx9_31.spec
+++ b/dlls/d3dx9_31/d3dx9_31.spec
@@ -158,7 +158,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_32/d3dx9_32.spec b/dlls/d3dx9_32/d3dx9_32.spec
index 4333519..4e65a9e 100644
--- a/dlls/d3dx9_32/d3dx9_32.spec
+++ b/dlls/d3dx9_32/d3dx9_32.spec
@@ -158,7 +158,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_33/d3dx9_33.spec b/dlls/d3dx9_33/d3dx9_33.spec
index 4333519..4e65a9e 100644
--- a/dlls/d3dx9_33/d3dx9_33.spec
+++ b/dlls/d3dx9_33/d3dx9_33.spec
@@ -158,7 +158,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_34/d3dx9_34.spec b/dlls/d3dx9_34/d3dx9_34.spec
index 4333519..4e65a9e 100644
--- a/dlls/d3dx9_34/d3dx9_34.spec
+++ b/dlls/d3dx9_34/d3dx9_34.spec
@@ -158,7 +158,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_35/d3dx9_35.spec b/dlls/d3dx9_35/d3dx9_35.spec
index 4333519..4e65a9e 100644
--- a/dlls/d3dx9_35/d3dx9_35.spec
+++ b/dlls/d3dx9_35/d3dx9_35.spec
@@ -158,7 +158,7 @@
@ stdcall D3DXGetPixelShaderProfile(ptr)
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec
index e81aef2..4454d25 100644
--- a/dlls/d3dx9_36/d3dx9_36.spec
+++ b/dlls/d3dx9_36/d3dx9_36.spec
@@ -160,7 +160,7 @@
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_36/shader.c b/dlls/d3dx9_36/shader.c
index 940cd15..a5871c5 100644
--- a/dlls/d3dx9_36/shader.c
+++ b/dlls/d3dx9_36/shader.c
@@ -2187,7 +2187,7 @@ static UINT get_shader_semantics(const DWORD *byte_code, D3DXSEMANTIC *semantics
{
if (*ptr & (1u << 31))
{
- FIXME("Opcode expected\n");
+ FIXME("Opcode expected but got %#x\n", *ptr);
return 0;
}
else if ((*ptr & D3DSI_OPCODE_MASK) == D3DSIO_DCL)
@@ -2239,3 +2239,21 @@ HRESULT WINAPI D3DXGetShaderInputSemantics(const DWORD *byte_code, D3DXSEMANTIC
return D3D_OK;
}
+
+
+HRESULT WINAPI D3DXGetShaderOutputSemantics(const DWORD *byte_code, D3DXSEMANTIC *semantics, UINT *count)
+{
+ UINT nb_semantics;
+
+ TRACE("byte_code %p, semantics %p, count %p\n", byte_code, semantics, count);
+
+ if (!byte_code)
+ return D3DERR_INVALIDCALL;
+
+ nb_semantics = get_shader_semantics(byte_code, semantics, D3DSPR_OUTPUT);
+
+ if (count)
+ *count = nb_semantics;
+
+ return D3D_OK;
+}
diff --git a/dlls/d3dx9_36/tests/shader.c b/dlls/d3dx9_36/tests/shader.c
index 9a2769f..6b76bf7 100644
--- a/dlls/d3dx9_36/tests/shader.c
+++ b/dlls/d3dx9_36/tests/shader.c
@@ -6572,6 +6572,60 @@ static void test_get_shader_semantics(void)
ok(semantics[1].UsageIndex == 0, "Got %u, expected 0\n", semantics[0].UsageIndex);
ok(semantics[2].Usage == D3DDECLUSAGE_TEXCOORD, "Got %u, expected %u\n", semantics[2].Usage, D3DDECLUSAGE_TEXCOORD);
ok(semantics[2].UsageIndex == 1, "Got %u, expected 1\n", semantics[0].UsageIndex);
+
+ /* Test D3DXGetShaderOutputSemantics */
+
+ /* Check wrong parameters */
+ ret = D3DXGetShaderOutputSemantics(NULL, NULL, NULL);
+ ok(ret == D3DERR_INVALIDCALL, "Returned %#x, expected %#x\n", ret, D3DERR_INVALIDCALL);
+ ret = D3DXGetShaderOutputSemantics(NULL, NULL, &count);
+ ok(ret == D3DERR_INVALIDCALL, "Returned %#x, expected %#x\n", ret, D3DERR_INVALIDCALL);
+ ret = D3DXGetShaderOutputSemantics(NULL, semantics, NULL);
+ ok(ret == D3DERR_INVALIDCALL, "Returned %#x, expected %#x\n", ret, D3DERR_INVALIDCALL);
+ ret = D3DXGetShaderOutputSemantics(NULL, semantics, &count);
+ ok(ret == D3DERR_INVALIDCALL, "Returned %#x, expected %#x\n", ret, D3DERR_INVALIDCALL);
+if (0)
+{
+ /* Crashes on wvistau64 */
+ ret = D3DXGetShaderOutputSemantics(semantics_vs11, NULL, NULL);
+ ok(ret == D3D_OK, "Failed with %#x\n", ret);
+}
+
+ /* Check null semantics pointer */
+ count = 0xdeadbeef;
+ ret = D3DXGetShaderOutputSemantics(semantics_vs11, NULL, &count);
+ ok(ret == D3D_OK, "Failed with %#x\n", ret);
+ ok(count == 1, "Got %u, expected 1\n", count);
+
+ /* Check null count pointer */
+if (0)
+{
+ /* Crashes on wvistau64 */
+ memset(semantics, 0xcc, sizeof(semantics));
+ ret = D3DXGetShaderOutputSemantics(semantics_vs11, semantics, NULL);
+ ok(ret == D3D_OK, "Failed with %#x\n", ret);
+ ok(semantics[0].Usage == D3DDECLUSAGE_COLOR, "Got %u, expected %u\n", semantics[0].Usage, D3DDECLUSAGE_COLOR);
+ ok(semantics[0].UsageIndex == 0, "Got %u, expected 0\n", semantics[0].UsageIndex);
+}
+
+ /* Check with vs11 shader */
+ count = 0xdeadbeef;
+ memset(semantics, 0xcc, sizeof(semantics));
+ ret = D3DXGetShaderOutputSemantics(semantics_vs11, semantics, &count);
+ ok(ret == D3D_OK, "Failed with %#x\n", ret);
+ ok(count == 1, "Got %u, expected 1\n", count);
+ todo_wine
+ ok(semantics[0].Usage == D3DDECLUSAGE_TEXCOORD, "Got %u, expected %u\n", semantics[0].Usage, D3DDECLUSAGE_TEXCOORD);
+ ok(semantics[0].UsageIndex == 0, "Got %u, expected 0\n", semantics[0].UsageIndex);
+
+ /* Check with vs30 shader */
+ count = 0xdeadbeef;
+ memset(semantics, 0xcc, sizeof(semantics));
+ ret = D3DXGetShaderOutputSemantics(semantics_vs30, semantics, &count);
+ ok(ret == D3D_OK, "Failed with %#x\n", ret);
+ ok(count == 1, "Got %u, expected 1\n", count);
+ ok(semantics[0].Usage == D3DDECLUSAGE_COLOR, "Got %u, expected %u\n", semantics[0].Usage, D3DDECLUSAGE_COLOR);
+ ok(semantics[0].UsageIndex == 0, "Got %u, expected 0\n", semantics[0].UsageIndex);
}
START_TEST(shader)
diff --git a/dlls/d3dx9_37/d3dx9_37.spec b/dlls/d3dx9_37/d3dx9_37.spec
index e81aef2..4454d25 100644
--- a/dlls/d3dx9_37/d3dx9_37.spec
+++ b/dlls/d3dx9_37/d3dx9_37.spec
@@ -160,7 +160,7 @@
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_38/d3dx9_38.spec b/dlls/d3dx9_38/d3dx9_38.spec
index e81aef2..4454d25 100644
--- a/dlls/d3dx9_38/d3dx9_38.spec
+++ b/dlls/d3dx9_38/d3dx9_38.spec
@@ -160,7 +160,7 @@
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_39/d3dx9_39.spec b/dlls/d3dx9_39/d3dx9_39.spec
index e81aef2..4454d25 100644
--- a/dlls/d3dx9_39/d3dx9_39.spec
+++ b/dlls/d3dx9_39/d3dx9_39.spec
@@ -160,7 +160,7 @@
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_40/d3dx9_40.spec b/dlls/d3dx9_40/d3dx9_40.spec
index e81aef2..4454d25 100644
--- a/dlls/d3dx9_40/d3dx9_40.spec
+++ b/dlls/d3dx9_40/d3dx9_40.spec
@@ -160,7 +160,7 @@
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_41/d3dx9_41.spec b/dlls/d3dx9_41/d3dx9_41.spec
index e81aef2..4454d25 100644
--- a/dlls/d3dx9_41/d3dx9_41.spec
+++ b/dlls/d3dx9_41/d3dx9_41.spec
@@ -160,7 +160,7 @@
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_42/d3dx9_42.spec b/dlls/d3dx9_42/d3dx9_42.spec
index 257c6bd..c03d804 100644
--- a/dlls/d3dx9_42/d3dx9_42.spec
+++ b/dlls/d3dx9_42/d3dx9_42.spec
@@ -153,7 +153,7 @@
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/dlls/d3dx9_43/d3dx9_43.spec b/dlls/d3dx9_43/d3dx9_43.spec
index 257c6bd..c03d804 100644
--- a/dlls/d3dx9_43/d3dx9_43.spec
+++ b/dlls/d3dx9_43/d3dx9_43.spec
@@ -153,7 +153,7 @@
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
@ stdcall D3DXGetShaderSize(ptr)
@ stdcall D3DXGetShaderVersion(ptr)
diff --git a/include/d3dx9shader.h b/include/d3dx9shader.h
index 5714ddb..1176143 100644
--- a/include/d3dx9shader.h
+++ b/include/d3dx9shader.h
@@ -353,6 +353,7 @@ const char * WINAPI D3DXGetVertexShaderProfile(struct IDirect3DDevice9 *device);
HRESULT WINAPI D3DXFindShaderComment(const DWORD *byte_code, DWORD fourcc, const void **data, UINT *size);
HRESULT WINAPI D3DXGetShaderSamplers(const DWORD *byte_code, const char **samplers, UINT *count);
HRESULT WINAPI D3DXGetShaderInputSemantics(const DWORD *byte_code, D3DXSEMANTIC *semantics, UINT *count);
+HRESULT WINAPI D3DXGetShaderOuputSemantics(const DWORD *byte_code, D3DXSEMANTIC *semantics, UINT *count);
HRESULT WINAPI D3DXAssembleShaderFromFileA(const char *filename, const D3DXMACRO *defines,
ID3DXInclude *include, DWORD flags, ID3DXBuffer **shader, ID3DXBuffer **error_messages);
--
2.8.0

View File

@ -1,2 +0,0 @@
Fixes: [22682] Support for D3DXGetShaderInputSemantics
Fixes: Implement D3DXGetShaderOutputSemantics

View File

@ -1,7 +1,7 @@
From 93267b9dc171775f908aa0f0dde65cc5a60c3b0b Mon Sep 17 00:00:00 2001
From 51a7344248cfbb0345fdf765f7a6b6af2ee4bb05 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 4 Mar 2016 22:22:42 +0100
Subject: ddraw: Set ddsOldCaps correctly in ddraw7_GetCaps.
Subject: [PATCH] ddraw: Set ddsOldCaps correctly in ddraw7_GetCaps.
---
dlls/ddraw/ddraw.c | 2 ++
@ -12,10 +12,10 @@ Subject: ddraw: Set ddsOldCaps correctly in ddraw7_GetCaps.
5 files changed, 106 insertions(+)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index 8a33ccd4c7..3330b9ce32 100644
index 74199b6..7179f51 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -1554,6 +1554,8 @@ static HRESULT WINAPI ddraw7_GetCaps(IDirectDraw7 *iface, DDCAPS *DriverCaps, DD
@@ -1541,6 +1541,8 @@ static HRESULT WINAPI ddraw7_GetCaps(IDirectDraw7 *iface, DDCAPS *DriverCaps, DD
caps.dwCaps |= DDCAPS_ALIGNSTRIDE;
caps.dwAlignStrideAlign = DDRAW_STRIDE_ALIGNMENT;
@ -25,11 +25,11 @@ index 8a33ccd4c7..3330b9ce32 100644
if(DriverCaps)
diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index 4f53ee1059..538ab656e3 100644
index 626b07b..a7e5bcd 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -10683,6 +10683,31 @@ done:
DestroyWindow(window);
@@ -11247,6 +11247,31 @@ static void test_enum_surfaces(void)
IDirectDraw_Release(ddraw);
}
+static void test_caps(void)
@ -59,19 +59,19 @@ index 4f53ee1059..538ab656e3 100644
+
START_TEST(ddraw1)
{
IDirectDraw *ddraw;
@@ -10770,4 +10795,5 @@ START_TEST(ddraw1)
test_surface_desc_size();
test_texture_load();
test_ck_operation();
DDDEVICEIDENTIFIER identifier;
@@ -11348,4 +11373,5 @@ START_TEST(ddraw1)
test_depth_readback();
test_clear();
test_enum_surfaces();
+ test_caps();
}
diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c
index be950d8034..b72fffb51e 100644
index 1ab1f9c..272f364 100644
--- a/dlls/ddraw/tests/ddraw2.c
+++ b/dlls/ddraw/tests/ddraw2.c
@@ -12021,6 +12021,31 @@ done:
DestroyWindow(window);
@@ -12646,6 +12646,31 @@ static void test_enum_surfaces(void)
IDirectDraw2_Release(ddraw);
}
+static void test_caps(void)
@ -101,19 +101,19 @@ index be950d8034..b72fffb51e 100644
+
START_TEST(ddraw2)
{
IDirectDraw2 *ddraw;
@@ -12116,4 +12141,5 @@ START_TEST(ddraw2)
test_display_mode_surface_pixel_format();
test_surface_desc_size();
test_ck_operation();
DDDEVICEIDENTIFIER identifier;
@@ -12756,4 +12781,5 @@ START_TEST(ddraw2)
test_depth_readback();
test_clear();
test_enum_surfaces();
+ test_caps();
}
diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c
index 2f92a70f4c..1381b498de 100644
index 02b10b5..f114bc4 100644
--- a/dlls/ddraw/tests/ddraw4.c
+++ b/dlls/ddraw/tests/ddraw4.c
@@ -13551,6 +13551,31 @@ static void test_compute_sphere_visibility(void)
DestroyWindow(window);
@@ -14751,6 +14751,31 @@ static void test_enum_surfaces(void)
IDirectDraw4_Release(ddraw);
}
+static void test_caps(void)
@ -143,19 +143,19 @@ index 2f92a70f4c..1381b498de 100644
+
START_TEST(ddraw4)
{
IDirectDraw4 *ddraw;
@@ -13657,4 +13682,5 @@ START_TEST(ddraw4)
test_ck_operation();
test_vb_refcount();
test_compute_sphere_visibility();
DDDEVICEIDENTIFIER identifier;
@@ -14875,4 +14900,5 @@ START_TEST(ddraw4)
test_depth_readback();
test_clear();
test_enum_surfaces();
+ test_caps();
}
diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c
index 29dd246d91..206c90ca3d 100644
index 767507f..44fdf2e 100644
--- a/dlls/ddraw/tests/ddraw7.c
+++ b/dlls/ddraw/tests/ddraw7.c
@@ -13251,6 +13251,31 @@ static void test_compute_sphere_visibility(void)
DestroyWindow(window);
@@ -14113,6 +14113,31 @@ static void test_enum_surfaces(void)
IDirectDraw7_Release(ddraw);
}
+static void test_caps(void)
@ -185,13 +185,13 @@ index 29dd246d91..206c90ca3d 100644
+
START_TEST(ddraw7)
{
HMODULE module = GetModuleHandleA("ddraw.dll");
@@ -13367,4 +13392,5 @@ START_TEST(ddraw7)
test_ck_operation();
test_vb_refcount();
test_compute_sphere_visibility();
DDDEVICEIDENTIFIER2 identifier;
@@ -14247,4 +14272,5 @@ START_TEST(ddraw7)
test_depth_readback();
test_clear();
test_enum_surfaces();
+ test_caps();
}
--
2.11.0
1.9.1

View File

@ -1,7 +1,7 @@
From c65a572b8835af9ee1f4c7533b1c89f0c22fc95f Mon Sep 17 00:00:00 2001
From 82f1e6c7a13b14da012e8a8bd64847f05ac32dc1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 29 Jul 2015 17:09:50 +0200
Subject: ddraw: Create rendering targets in video memory if possible.
Subject: [PATCH] ddraw: Create rendering targets in video memory if possible.
Based on a patch by Henri Verbeet.
---
@ -12,10 +12,10 @@ Based on a patch by Henri Verbeet.
4 files changed, 38 insertions(+), 15 deletions(-)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index b3caba2..6dc8c2d 100644
index 9115a59..3f14a9a 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -4065,7 +4065,7 @@ static HRESULT WINAPI d3d7_CreateDevice(IDirect3D7 *iface, REFCLSID riid,
@@ -4241,7 +4241,7 @@ static HRESULT WINAPI d3d7_CreateDevice(IDirect3D7 *iface, REFCLSID riid,
TRACE("iface %p, riid %s, surface %p, device %p.\n", iface, debugstr_guid(riid), surface, device);
wined3d_mutex_lock();
@ -24,7 +24,7 @@ index b3caba2..6dc8c2d 100644
{
*device = &object->IDirect3DDevice7_iface;
}
@@ -4094,7 +4094,7 @@ static HRESULT WINAPI d3d3_CreateDevice(IDirect3D3 *iface, REFCLSID riid,
@@ -4270,7 +4270,7 @@ static HRESULT WINAPI d3d3_CreateDevice(IDirect3D3 *iface, REFCLSID riid,
return CLASS_E_NOAGGREGATION;
wined3d_mutex_lock();
@ -33,7 +33,7 @@ index b3caba2..6dc8c2d 100644
{
*device = &device_impl->IDirect3DDevice3_iface;
}
@@ -4120,7 +4120,7 @@ static HRESULT WINAPI d3d2_CreateDevice(IDirect3D2 *iface, REFCLSID riid,
@@ -4296,7 +4296,7 @@ static HRESULT WINAPI d3d2_CreateDevice(IDirect3D2 *iface, REFCLSID riid,
iface, debugstr_guid(riid), surface, device);
wined3d_mutex_lock();
@ -43,10 +43,10 @@ index b3caba2..6dc8c2d 100644
*device = &device_impl->IDirect3DDevice2_iface;
}
diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h
index bb0a3f8..73c7e68 100644
index d9559ce..c38c4af 100644
--- a/dlls/ddraw/ddraw_private.h
+++ b/dlls/ddraw/ddraw_private.h
@@ -298,6 +298,7 @@ struct d3d_device
@@ -305,6 +305,7 @@ struct d3d_device
IUnknown IUnknown_inner;
LONG ref;
UINT version;
@ -54,8 +54,8 @@ index bb0a3f8..73c7e68 100644
IUnknown *outer_unknown;
struct wined3d_device *wined3d_device;
@@ -340,7 +341,7 @@ struct d3d_device
D3DMATRIXHANDLE world, proj, view;
@@ -349,7 +350,7 @@ struct d3d_device
struct wined3d_vec4 user_clip_planes[D3DMAXUSERCLIPPLANES];
};
-HRESULT d3d_device_create(struct ddraw *ddraw, struct ddraw_surface *target, IUnknown *rt_iface,
@ -64,10 +64,10 @@ index bb0a3f8..73c7e68 100644
enum wined3d_depth_buffer_type d3d_device_update_depth_stencil(struct d3d_device *device) DECLSPEC_HIDDEN;
diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
index 408eb24..bb8534a 100644
index 0254364..de68965 100644
--- a/dlls/ddraw/device.c
+++ b/dlls/ddraw/device.c
@@ -1857,7 +1857,7 @@ static HRESULT d3d_device7_SetRenderTarget(IDirect3DDevice7 *iface,
@@ -1854,7 +1854,7 @@ static HRESULT d3d_device7_SetRenderTarget(IDirect3DDevice7 *iface,
return DDERR_INVALIDCAPS;
}
@ -76,7 +76,7 @@ index 408eb24..bb8534a 100644
{
WARN("Surface %p is not in video memory.\n", target_impl);
wined3d_mutex_unlock();
@@ -1933,7 +1933,7 @@ static HRESULT WINAPI d3d_device3_SetRenderTarget(IDirect3DDevice3 *iface,
@@ -1930,7 +1930,7 @@ static HRESULT WINAPI d3d_device3_SetRenderTarget(IDirect3DDevice3 *iface,
return DDERR_INVALIDPIXELFORMAT;
}
@ -85,7 +85,7 @@ index 408eb24..bb8534a 100644
{
WARN("Surface %p is not in video memory.\n", target_impl);
IDirectDrawSurface4_AddRef(target);
@@ -1982,7 +1982,7 @@ static HRESULT WINAPI d3d_device2_SetRenderTarget(IDirect3DDevice2 *iface,
@@ -1979,7 +1979,7 @@ static HRESULT WINAPI d3d_device2_SetRenderTarget(IDirect3DDevice2 *iface,
return DDERR_INVALIDPIXELFORMAT;
}
@ -94,7 +94,7 @@ index 408eb24..bb8534a 100644
{
WARN("Surface %p is not in video memory.\n", target_impl);
IDirectDrawSurface_AddRef(target);
@@ -6777,7 +6777,7 @@ enum wined3d_depth_buffer_type d3d_device_update_depth_stencil(struct d3d_device
@@ -6903,7 +6903,7 @@ enum wined3d_depth_buffer_type d3d_device_update_depth_stencil(struct d3d_device
return WINED3D_ZB_TRUE;
}
@ -103,7 +103,7 @@ index 408eb24..bb8534a 100644
struct ddraw_surface *target, IUnknown *rt_iface, UINT version, IUnknown *outer_unknown)
{
static const D3DMATRIX ident =
@@ -6800,6 +6800,7 @@ static HRESULT d3d_device_init(struct d3d_device *device, struct ddraw *ddraw,
@@ -6926,6 +6926,7 @@ static HRESULT d3d_device_init(struct d3d_device *device, struct ddraw *ddraw,
device->IUnknown_inner.lpVtbl = &d3d_device_inner_vtbl;
device->ref = 1;
device->version = version;
@ -111,7 +111,7 @@ index 408eb24..bb8534a 100644
if (outer_unknown)
device->outer_unknown = outer_unknown;
@@ -6850,14 +6851,18 @@ static HRESULT d3d_device_init(struct d3d_device *device, struct ddraw *ddraw,
@@ -6976,14 +6977,18 @@ static HRESULT d3d_device_init(struct d3d_device *device, struct ddraw *ddraw,
return D3D_OK;
}
@ -133,7 +133,7 @@ index 408eb24..bb8534a 100644
if (!(target->surface_desc.ddsCaps.dwCaps & DDSCAPS_3DDEVICE)
|| (target->surface_desc.ddsCaps.dwCaps & DDSCAPS_ZBUFFER))
@@ -6872,7 +6877,7 @@ HRESULT d3d_device_create(struct ddraw *ddraw, struct ddraw_surface *target, IUn
@@ -6998,7 +7003,7 @@ HRESULT d3d_device_create(struct ddraw *ddraw, struct ddraw_surface *target, IUn
return DDERR_NOPALETTEATTACHED;
}
@ -142,7 +142,7 @@ index 408eb24..bb8534a 100644
{
WARN("Surface %p is not in video memory.\n", target);
return D3DERR_SURFACENOTINVIDMEM;
@@ -6899,7 +6904,7 @@ HRESULT d3d_device_create(struct ddraw *ddraw, struct ddraw_surface *target, IUn
@@ -7024,7 +7029,7 @@ HRESULT d3d_device_create(struct ddraw *ddraw, struct ddraw_surface *target, IUn
return DDERR_OUTOFMEMORY;
}
@ -150,12 +150,12 @@ index 408eb24..bb8534a 100644
+ if (FAILED(hr = d3d_device_init(object, ddraw, hw, target, rt_iface, version, outer_unknown)))
{
WARN("Failed to initialize device, hr %#x.\n", hr);
HeapFree(GetProcessHeap(), 0, object);
heap_free(object);
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index 77a3d44..ca84719 100644
index b8b6860..74fdb95 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -211,7 +211,7 @@ static HRESULT WINAPI ddraw_surface7_QueryInterface(IDirectDrawSurface7 *iface,
@@ -209,7 +209,7 @@ static HRESULT WINAPI ddraw_surface7_QueryInterface(IDirectDrawSurface7 *iface,
{
HRESULT hr;
@ -164,11 +164,11 @@ index 77a3d44..ca84719 100644
1, &This->device1, (IUnknown *)&This->IDirectDrawSurface_iface)))
{
This->device1 = NULL;
@@ -5935,7 +5935,24 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_
@@ -6110,7 +6110,24 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_
if (desc->ddsCaps.dwCaps & DDSCAPS_SYSTEMMEMORY)
{
- wined3d_desc.pool = WINED3D_POOL_SYSTEM_MEM;
- wined3d_desc.access = WINED3D_RESOURCE_ACCESS_CPU | WINED3D_RESOURCE_ACCESS_MAP;
+ /*
+ * The ddraw RGB device allows to use system memory surfaces as rendering target.
+ * This does not cause problems because the RGB device does software rasterization
@ -191,5 +191,5 @@ index 77a3d44..ca84719 100644
else
{
--
2.4.5
1.9.1

View File

@ -1,83 +0,0 @@
From befe898a3dec51161eb46eab8cd7a271967acb9d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 28 May 2017 01:54:31 +0200
Subject: programs/dxdiag: Handle /dontskip parameter.
---
programs/dxdiag/main.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/programs/dxdiag/main.c b/programs/dxdiag/main.c
index 3ced122d6e7..7be6ca4a73d 100644
--- a/programs/dxdiag/main.c
+++ b/programs/dxdiag/main.c
@@ -36,6 +36,7 @@ struct command_line_info
WCHAR outfile[MAX_PATH];
enum output_type output_type;
BOOL whql_check;
+ BOOL dont_skip;
};
static void usage(void)
@@ -110,9 +111,11 @@ static BOOL process_command_line(const WCHAR *cmdline, struct command_line_info
static const WCHAR whql_colonW[] = {'w','h','q','l',':',0};
static const WCHAR offW[] = {'o','f','f',0};
static const WCHAR onW[] = {'o','n',0};
+ static const WCHAR dontskipW[] = {'d','o','n','t','s','k','i','p'};
info->whql_check = FALSE;
info->output_type = OUTPUT_NONE;
+ info->dont_skip = FALSE;
while (*cmdline)
{
@@ -132,6 +135,14 @@ static BOOL process_command_line(const WCHAR *cmdline, struct command_line_info
switch (*cmdline)
{
+ case 'd':
+ case 'D':
+ if (strncmpiW(cmdline, dontskipW, sizeof(dontskipW)/sizeof(WCHAR)))
+ return FALSE;
+
+ info->dont_skip = TRUE;
+ cmdline += sizeof(dontskipW)/sizeof(WCHAR);
+ break;
case 'T':
case 't':
info->output_type = OUTPUT_TEXT;
@@ -152,12 +163,12 @@ static BOOL process_command_line(const WCHAR *cmdline, struct command_line_info
if (!strncmpiW(cmdline, offW, 3))
{
info->whql_check = FALSE;
- cmdline += 2;
+ cmdline += 3;
}
else if (!strncmpiW(cmdline, onW, 2))
{
info->whql_check = TRUE;
- cmdline++;
+ cmdline += 2;
}
else
return FALSE;
@@ -166,8 +177,6 @@ static BOOL process_command_line(const WCHAR *cmdline, struct command_line_info
default:
return FALSE;
}
-
- cmdline++;
}
return TRUE;
@@ -184,6 +193,7 @@ int WINAPI wWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPWSTR cmdline, int cm
usage();
WINE_TRACE("WHQL check: %s\n", info.whql_check ? "TRUE" : "FALSE");
+ WINE_TRACE("No skip: %s\n", info.dont_skip ? "TRUE" : "FALSE");
WINE_TRACE("Output type: %d\n", info.output_type);
if (info.output_type != OUTPUT_NONE)
WINE_TRACE("Output filename: %s\n", debugstr_output_type(info.output_type));
--
2.12.2

View File

@ -1 +0,0 @@
Fixes: Handle /dontskip parameter in dxdiag

View File

@ -1,30 +0,0 @@
From cbb471762f116b18b77288009cd1c7002ed9c2cb Mon Sep 17 00:00:00 2001
From: Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>
Date: Sun, 23 Jul 2017 22:22:41 +0300
Subject: dxgi: Add stub implementation for DXGI_PRESENT_TEST.
---
dlls/dxgi/swapchain.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/dlls/dxgi/swapchain.c b/dlls/dxgi/swapchain.c
index 2b61327f0d3..90c8ab55094 100644
--- a/dlls/dxgi/swapchain.c
+++ b/dlls/dxgi/swapchain.c
@@ -171,6 +171,13 @@ static HRESULT STDMETHODCALLTYPE dxgi_swapchain_Present(IDXGISwapChain *iface, U
TRACE("iface %p, sync_interval %u, flags %#x\n", iface, sync_interval, flags);
if (sync_interval) FIXME("Unimplemented sync interval %u\n", sync_interval);
+
+ if (flags == DXGI_PRESENT_TEST)
+ {
+ WARN("DXGI_PRESENT_TEST stub!\n");
+ return S_OK;
+ }
+
if (flags) FIXME("Unimplemented flags %#x\n", flags);
wined3d_mutex_lock();
--
2.13.1

View File

@ -1 +0,0 @@
Fixes: Add stub implementation for DXGI_PRESENT_TEST

View File

@ -1,16 +1,17 @@
From 50e975e43d69b6f33ea10e2a46996edc01b1a4aa Mon Sep 17 00:00:00 2001
From 62b06b3339801083e955422e22be7f2d3c2ced12 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 24 Jan 2017 01:37:29 +0100
Subject: dxgi: Implement setting and querying the gamma value of an output.
Subject: [PATCH] dxgi: Implement setting and querying the gamma value of an
output.
---
dlls/dxgi/Makefile.in | 2 +-
dlls/dxgi/output.c | 68 +++++++++++++++++++++++++++++++++++++++++++-----
dlls/dxgi/tests/device.c | 45 ++++++++++++++++++++++++++++++++
3 files changed, 108 insertions(+), 7 deletions(-)
dlls/dxgi/output.c | 17 +++++++++++++++--
dlls/dxgi/tests/device.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 61 insertions(+), 3 deletions(-)
diff --git a/dlls/dxgi/Makefile.in b/dlls/dxgi/Makefile.in
index ce76b8eecc6..1a0c9084d56 100644
index ce76b8e..1a0c908 100644
--- a/dlls/dxgi/Makefile.in
+++ b/dlls/dxgi/Makefile.in
@@ -1,6 +1,6 @@
@ -22,11 +23,11 @@ index ce76b8eecc6..1a0c9084d56 100644
C_SRCS = \
adapter.c \
diff --git a/dlls/dxgi/output.c b/dlls/dxgi/output.c
index 0cf80841c27..7a215a2aad4 100644
index 2b168fb..31bdf9a 100644
--- a/dlls/dxgi/output.c
+++ b/dlls/dxgi/output.c
@@ -288,24 +288,80 @@ static void STDMETHODCALLTYPE dxgi_output_ReleaseOwnership(IDXGIOutput *iface)
static HRESULT STDMETHODCALLTYPE dxgi_output_GetGammaControlCapabilities(IDXGIOutput *iface,
@@ -293,9 +293,22 @@ static void STDMETHODCALLTYPE dxgi_output_ReleaseOwnership(IDXGIOutput4 *iface)
static HRESULT STDMETHODCALLTYPE dxgi_output_GetGammaControlCapabilities(IDXGIOutput4 *iface,
DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps)
{
- FIXME("iface %p, gamma_caps %p stub!\n", iface, gamma_caps);
@ -49,74 +50,12 @@ index 0cf80841c27..7a215a2aad4 100644
+ return S_OK;
}
static HRESULT STDMETHODCALLTYPE dxgi_output_SetGammaControl(IDXGIOutput *iface,
const DXGI_GAMMA_CONTROL *gamma_control)
{
- FIXME("iface %p, gamma_control %p stub!\n", iface, gamma_control);
+ struct wined3d_gamma_ramp ramp;
+ HDC dc;
+ int i;
- return E_NOTIMPL;
+ TRACE("iface %p, gamma_control %p.\n", iface, gamma_control);
+
+ if (!gamma_control)
+ return E_INVALIDARG;
+
+ for (i = 0; i < 256; i++)
+ {
+ ramp.red[i] = gamma_control->GammaCurve[i].Red * 65535;
+ ramp.green[i] = gamma_control->GammaCurve[i].Green * 65535;
+ ramp.blue[i] = gamma_control->GammaCurve[i].Blue * 65535;
+ }
+
+ /* we can not use wined3d_swapchain_set_gamma_ramp here, because outputs don't have
+ * references to swapchains and the output handling of dxgi is far from complete yet */
+ dc = GetDC(0);
+ SetDeviceGammaRamp(dc, &ramp);
+ ReleaseDC(0, dc);
+ return S_OK;
}
static HRESULT STDMETHODCALLTYPE dxgi_output_GetGammaControl(IDXGIOutput *iface, DXGI_GAMMA_CONTROL *gamma_control)
{
- FIXME("iface %p, gamma_control %p stub!\n", iface, gamma_control);
+ struct wined3d_gamma_ramp ramp;
+ HDC dc;
+ int i;
+
+ TRACE("iface %p, gamma_control %p.\n", iface, gamma_control);
+
+ /* We can not use wined3d_swapchain_get_gamma_ramp here, because outputs don't have
+ * references to swapchains and the output handling of dxgi is far from complete yet */
+ dc = GetDC(0);
+ GetDeviceGammaRamp(dc, &ramp);
+ ReleaseDC(0, dc);
+
+ gamma_control->Scale.Red = 0.0f;
+ gamma_control->Scale.Green = 0.0f;
+ gamma_control->Scale.Blue = 0.0f;
+ gamma_control->Offset.Red = 0.0f;
+ gamma_control->Offset.Green = 0.0f;
+ gamma_control->Offset.Blue = 0.0f;
+
+ for (i = 0; i < 256; i++)
+ {
+ gamma_control->GammaCurve[i].Red = ramp.red[i] / 65535.0f;
+ gamma_control->GammaCurve[i].Green = ramp.green[i] / 65535.0f;
+ gamma_control->GammaCurve[i].Blue = ramp.blue[i] / 65535.0f;
+ }
- return E_NOTIMPL;
+ return S_OK;
}
static HRESULT STDMETHODCALLTYPE dxgi_output_SetDisplaySurface(IDXGIOutput *iface, IDXGISurface *surface)
static HRESULT STDMETHODCALLTYPE dxgi_output_SetGammaControl(IDXGIOutput4 *iface,
diff --git a/dlls/dxgi/tests/device.c b/dlls/dxgi/tests/device.c
index 0b3891fb46a..3122e3f044a 100644
index 58c3bba..acf0f85 100644
--- a/dlls/dxgi/tests/device.c
+++ b/dlls/dxgi/tests/device.c
@@ -1574,11 +1574,13 @@ static void test_swapchain_fullscreen_state(IDXGISwapChain *swapchain,
@@ -1852,11 +1852,13 @@ static void test_swapchain_fullscreen_state(IDXGISwapChain *swapchain,
static void test_set_fullscreen(void)
{
struct swapchain_fullscreen_state initial_state;
@ -130,7 +69,7 @@ index 0b3891fb46a..3122e3f044a 100644
ULONG refcount;
HRESULT hr;
@@ -1594,6 +1596,17 @@ static void test_set_fullscreen(void)
@@ -1872,6 +1874,17 @@ static void test_set_fullscreen(void)
hr = IDXGIAdapter_GetParent(adapter, &IID_IDXGIFactory, (void **)&factory);
ok(SUCCEEDED(hr), "GetParent failed, hr %#x.\n", hr);
@ -148,7 +87,7 @@ index 0b3891fb46a..3122e3f044a 100644
swapchain_desc.BufferDesc.Width = 800;
swapchain_desc.BufferDesc.Height = 600;
swapchain_desc.BufferDesc.RefreshRate.Numerator = 60;
@@ -1624,6 +1637,38 @@ static void test_set_fullscreen(void)
@@ -1902,6 +1915,38 @@ static void test_set_fullscreen(void)
skip("Could not change fullscreen state.\n");
goto done;
}
@ -188,5 +127,5 @@ index 0b3891fb46a..3122e3f044a 100644
ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
refcount = IDXGISwapChain_Release(swapchain);
--
2.11.0
1.9.1

View File

@ -1,19 +1,19 @@
From 18084b4d4ce50242019c9493e64497fc153a58dd Mon Sep 17 00:00:00 2001
From d539d3ee4905500fc71d03a6297ffc81a8f342f2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 19 Aug 2014 22:47:51 +0200
Subject: dxgi: Improve stubs for MakeWindowAssociation and
Subject: [PATCH] dxgi: Improve stubs for MakeWindowAssociation and
GetWindowAssociation.
---
dlls/dxgi/dxgi_private.h | 1 +
dlls/dxgi/factory.c | 14 +++++++++++++-
2 files changed, 14 insertions(+), 1 deletion(-)
dlls/dxgi/factory.c | 15 ++++++++++++++-
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/dlls/dxgi/dxgi_private.h b/dlls/dxgi/dxgi_private.h
index 987370f1..a1b3392 100644
index ed79ca2..15fa9a3 100644
--- a/dlls/dxgi/dxgi_private.h
+++ b/dlls/dxgi/dxgi_private.h
@@ -109,6 +109,7 @@ struct dxgi_factory
@@ -113,6 +113,7 @@ struct dxgi_factory
struct wined3d *wined3d;
BOOL extended;
HWND device_window;
@ -22,12 +22,12 @@ index 987370f1..a1b3392 100644
HRESULT dxgi_factory_create(REFIID riid, void **factory, BOOL extended) DECLSPEC_HIDDEN;
diff --git a/dlls/dxgi/factory.c b/dlls/dxgi/factory.c
index d54eea9..662b0cf 100644
index 50b7941..031c555 100644
--- a/dlls/dxgi/factory.c
+++ b/dlls/dxgi/factory.c
@@ -168,16 +168,28 @@ static HRESULT STDMETHODCALLTYPE dxgi_factory_EnumAdapters(IDXGIFactory1 *iface,
@@ -172,16 +172,29 @@ static HRESULT STDMETHODCALLTYPE dxgi_factory_EnumAdapters(IDXGIFactory4 *iface,
static HRESULT STDMETHODCALLTYPE dxgi_factory_MakeWindowAssociation(IDXGIFactory1 *iface, HWND window, UINT flags)
static HRESULT STDMETHODCALLTYPE dxgi_factory_MakeWindowAssociation(IDXGIFactory4 *iface, HWND window, UINT flags)
{
+ struct dxgi_factory *factory = impl_from_IDXGIFactory1(iface);
+
@ -37,10 +37,11 @@ index d54eea9..662b0cf 100644
+ return DXGI_ERROR_INVALID_CALL;
+
+ factory->assoc_window = window;
+
return S_OK;
}
static HRESULT STDMETHODCALLTYPE dxgi_factory_GetWindowAssociation(IDXGIFactory1 *iface, HWND *window)
static HRESULT STDMETHODCALLTYPE dxgi_factory_GetWindowAssociation(IDXGIFactory4 *iface, HWND *window)
{
+ struct dxgi_factory *factory = impl_from_IDXGIFactory1(iface);
+
@ -54,7 +55,7 @@ index d54eea9..662b0cf 100644
+ return S_OK;
}
static HRESULT STDMETHODCALLTYPE dxgi_factory_CreateSwapChain(IDXGIFactory1 *iface,
static HRESULT STDMETHODCALLTYPE dxgi_factory_CreateSwapChain(IDXGIFactory4 *iface,
--
2.9.0
1.9.1

View File

@ -1,15 +1,15 @@
From a6889ee23ad09cf77c0f8b45d060fadfe2095719 Mon Sep 17 00:00:00 2001
From 7c3b389af5d0e6e7317bff0466815e40a2b498b4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 20 Dec 2014 23:10:38 +0100
Subject: Add licenses for fonts as separate files.
Subject: [PATCH] Add licenses for fonts as separate files.
---
COPYING.arial | 65 ++++++
COPYING.cour | 65 ++++++
COPYING.msyh | 674 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
COPYING.times | 65 ++++++
LICENSE | 32 ++-
5 files changed, 900 insertions(+), 1 deletion(-)
LICENSE | 25 +++
5 files changed, 894 insertions(+)
create mode 100644 COPYING.arial
create mode 100644 COPYING.cour
create mode 100644 COPYING.msyh
@ -909,27 +909,10 @@ index 0000000..b756428
+Copyright © 2007-2011 Red Hat, Inc. All rights reserved. LIBERATION is a
+trademark of Red Hat, Inc.
diff --git a/LICENSE b/LICENSE
index 6dbf8c0..9a9fe47 100644
index 765b9c3..6fdc83c 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,10 +1,15 @@
+All files unless stated otherwise (see exceptions below) are licensed
+under the following terms.
+
+-----------------------------------------------------------------------
+
Copyright (c) 1993-2017 the Wine project authors (see the file AUTHORS
for a complete list)
Wine is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the
Free Software Foundation; either version 2.1 of the License, or (at
-your option) any later version.
+your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -15,3 +20,28 @@ A copy of the GNU Lesser General Public License is included in the
@@ -15,3 +15,28 @@ A copy of the GNU Lesser General Public License is included in the
Wine distribution in the file COPYING.LIB. If you did not receive this
copy, write to the Free Software Foundation, Inc., 51 Franklin St,
Fifth Floor, Boston, MA 02110-1301, USA.
@ -959,5 +942,5 @@ index 6dbf8c0..9a9fe47 100644
+ license and GPLv3. See COPYING.msyh for GPLv3.
+
--
2.6.2
1.9.1

View File

@ -1,54 +0,0 @@
From 4f9ac8c39ccef8c5e3016981a4508e5e54598a91 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 10 Jan 2017 21:04:11 +0100
Subject: [PATCH] include: Add run level information enum and structure to
winnt.h.
---
include/winnt.h | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/include/winnt.h b/include/winnt.h
index 04f00a6..6e72a6a 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -5763,16 +5763,34 @@ typedef struct _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION {
} ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION, *PACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION;
#endif
+typedef enum {
+ ACTCTX_RUN_LEVEL_UNSPECIFIED = 0,
+ ACTCTX_RUN_LEVEL_AS_INVOKER,
+ ACTCTX_RUN_LEVEL_HIGHEST_AVAILABLE,
+ ACTCTX_RUN_LEVEL_REQUIRE_ADMIN,
+ ACTCTX_RUN_LEVEL_NUMBERS
+} ACTCTX_REQUESTED_RUN_LEVEL;
+
+typedef struct _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION {
+ DWORD ulFlags;
+ ACTCTX_REQUESTED_RUN_LEVEL RunLevel;
+ DWORD UiAccess;
+} ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION, *PACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION;
+
+typedef const struct _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION *PCACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION;
+
typedef enum _ACTIVATION_CONTEXT_INFO_CLASS {
ActivationContextBasicInformation = 1,
ActivationContextDetailedInformation = 2,
AssemblyDetailedInformationInActivationContext = 3,
FileInformationInAssemblyOfAssemblyInActivationContext = 4,
+ RunlevelInformationInActivationContext = 5,
CompatibilityInformationInActivationContext = 6,
+ ActivationContextManifestResourceName = 7,
MaxActivationContextInfoClass,
- AssemblyDetailedInformationInActivationContxt = 3,
- FileInformationInAssemblyOfAssemblyInActivationContxt = 4
+ AssemblyDetailedInformationInActivationContxt = 3,
+ FileInformationInAssemblyOfAssemblyInActivationContxt = 4
} ACTIVATION_CONTEXT_INFO_CLASS;
#define ACTIVATION_CONTEXT_PATH_TYPE_NONE 1
--
1.9.1

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "0f1cb96b694a38106464044285296e531f90bb67"
echo "9d897b73a877e5eaae26df87930c951ff8273c14"
}
# Show version information
@ -609,9 +609,6 @@ patch_enable ()
crypt32-MS_Root_Certs)
enable_crypt32_MS_Root_Certs="$2"
;;
crypt32-SHA_OIDs)
enable_crypt32_SHA_OIDs="$2"
;;
d3d10_1-Forwards)
enable_d3d10_1_Forwards="$2"
;;
@ -624,9 +621,6 @@ patch_enable ()
d3d11-ID3D11Texture1D)
enable_d3d11_ID3D11Texture1D="$2"
;;
d3d11-ResolveSubresource)
enable_d3d11_ResolveSubresource="$2"
;;
d3d11-Silence_FIXMEs)
enable_d3d11_Silence_FIXMEs="$2"
;;
@ -681,9 +675,6 @@ patch_enable ()
d3dx9_36-FindNextValidTechnique)
enable_d3dx9_36_FindNextValidTechnique="$2"
;;
d3dx9_36-GetShaderSemantics)
enable_d3dx9_36_GetShaderSemantics="$2"
;;
d3dx9_36-Optimize_Inplace)
enable_d3dx9_36_Optimize_Inplace="$2"
;;
@ -747,9 +738,6 @@ patch_enable ()
dwmapi-DwmSetIcon)
enable_dwmapi_DwmSetIcon="$2"
;;
dxdiag-dontskip)
enable_dxdiag_dontskip="$2"
;;
dxdiagn-Display_Information)
enable_dxdiagn_Display_Information="$2"
;;
@ -759,9 +747,6 @@ patch_enable ()
dxdiagn-GetChildContainer_Leaf_Nodes)
enable_dxdiagn_GetChildContainer_Leaf_Nodes="$2"
;;
dxgi-DXGI_PRESENT_TEST)
enable_dxgi_DXGI_PRESENT_TEST="$2"
;;
dxgi-GammaRamp)
enable_dxgi_GammaRamp="$2"
;;
@ -2219,9 +2204,6 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then
fi
if test "$enable_wined3d_dxgi_swapchain_Present" -eq 1; then
if test "$enable_dxgi_DXGI_PRESENT_TEST" -gt 1; then
abort "Patchset dxgi-DXGI_PRESENT_TEST disabled, but wined3d-dxgi_swapchain_Present depends on that."
fi
if test "$enable_wined3d_Silence_FIXMEs" -gt 1; then
abort "Patchset wined3d-Silence_FIXMEs disabled, but wined3d-dxgi_swapchain_Present depends on that."
fi
@ -2826,13 +2808,6 @@ if test "$enable_d3dx9_36_DXTn" -eq 1; then
enable_wined3d_DXTn=1
fi
if test "$enable_d3dx9_36_D3DXDisassembleShader" -eq 1; then
if test "$enable_d3dx9_36_GetShaderSemantics" -gt 1; then
abort "Patchset d3dx9_36-GetShaderSemantics disabled, but d3dx9_36-D3DXDisassembleShader depends on that."
fi
enable_d3dx9_36_GetShaderSemantics=1
fi
if test "$enable_d3dx9_36_CloneEffect" -eq 1; then
if test "$enable_d3dx9_25_ID3DXEffect" -gt 1; then
abort "Patchset d3dx9_25-ID3DXEffect disabled, but d3dx9_36-CloneEffect depends on that."
@ -2848,9 +2823,6 @@ if test "$enable_d3d11_ID3D11Texture1D" -eq 1; then
fi
if test "$enable_d3d11_Deferred_Context" -eq 1; then
if test "$enable_d3d11_ResolveSubresource" -gt 1; then
abort "Patchset d3d11-ResolveSubresource disabled, but d3d11-Deferred_Context depends on that."
fi
if test "$enable_wined3d_1DTextures" -gt 1; then
abort "Patchset wined3d-1DTextures disabled, but d3d11-Deferred_Context depends on that."
fi
@ -3243,11 +3215,9 @@ fi
# | * dlls/kernel32/tests/actctx.c, dlls/ntdll/actctx.c, include/winnt.h
# |
if test "$enable_ntdll_RunlevelInformationInActivationContext" -eq 1; then
patch_apply ntdll-RunlevelInformationInActivationContext/0001-include-Add-run-level-information-enum-and-structure.patch
patch_apply ntdll-RunlevelInformationInActivationContext/0002-ntdll-Parse-execution-level-information-in-manifest-.patch
patch_apply ntdll-RunlevelInformationInActivationContext/0003-ntdll-Implement-RunlevelInformationInActivationConte.patch
(
printf '%s\n' '+ { "Michael Müller", "include: Add run level information enum and structure to winnt.h.", 1 },';
printf '%s\n' '+ { "Michael Müller", "ntdll: Parse execution level information in manifest data.", 1 },';
printf '%s\n' '+ { "Michael Müller", "ntdll: Implement RunlevelInformationInActivationContext in RtlQueryInformationActivationContext.", 1 },';
) >> "$patchlist"
@ -3706,21 +3676,6 @@ if test "$enable_crypt32_MS_Root_Certs" -eq 1; then
) >> "$patchlist"
fi
# Patchset crypt32-SHA_OIDs
# |
# | This patchset fixes the following Wine bugs:
# | * [#41356] Recognize sha256/384/512 KEY OIDs
# |
# | Modified files:
# | * dlls/crypt32/oid.c, include/wincrypt.h
# |
if test "$enable_crypt32_SHA_OIDs" -eq 1; then
patch_apply crypt32-SHA_OIDs/0001-crypt32-Recognize-sha256-384-512-KEY-OIDs.patch
(
printf '%s\n' '+ { "Michael Müller", "crypt32: Recognize sha256/384/512 KEY OIDs.", 1 },';
) >> "$patchlist"
fi
# Patchset d3d10_1-Forwards
# |
# | Modified files:
@ -3733,20 +3688,6 @@ if test "$enable_d3d10_1_Forwards" -eq 1; then
) >> "$patchlist"
fi
# Patchset d3d11-ResolveSubresource
# |
# | Modified files:
# | * dlls/d3d11/device.c
# |
if test "$enable_d3d11_ResolveSubresource" -eq 1; then
patch_apply d3d11-ResolveSubresource/0001-d3d11-Implement-ResolveSubresource-by-copying-sub-re.patch
patch_apply d3d11-ResolveSubresource/0002-d3d11-Implement-d3d10_device_ResolveSubresource-in-t.patch
(
printf '%s\n' '+ { "Michael Müller", "d3d11: Implement ResolveSubresource by copying sub resource (there is no multisample texture support yet).", 1 },';
printf '%s\n' '+ { "Michael Müller", "d3d11: Implement d3d10_device_ResolveSubresource in the same way as for d3d11.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-1DTextures
# |
# | Modified files:
@ -3756,7 +3697,6 @@ fi
# | include/wine/wined3d.h
# |
if test "$enable_wined3d_1DTextures" -eq 1; then
patch_apply wined3d-1DTextures/0001-wined3d-Create-dummy-1d-textures.patch
patch_apply wined3d-1DTextures/0002-wined3d-Add-1d-texture-resource-type.patch
patch_apply wined3d-1DTextures/0003-wined3d-Add-is_power_of_two-helper-function.patch
patch_apply wined3d-1DTextures/0004-wined3d-Create-dummy-1d-textures-and-surfaces.patch
@ -3774,7 +3714,6 @@ if test "$enable_wined3d_1DTextures" -eq 1; then
patch_apply wined3d-1DTextures/0016-d3d11-Improve-ID3D11Device_CheckFormatSupport.patch
patch_apply wined3d-1DTextures/0017-d3d11-Allow-DXGI_FORMAT_UNKNOWN-in-CheckFormatSuppor.patch
(
printf '%s\n' '+ { "Michael Müller", "wined3d: Create dummy 1d textures.", 1 },';
printf '%s\n' '+ { "Michael Müller", "wined3d: Add 1d texture resource type.", 1 },';
printf '%s\n' '+ { "Michael Müller", "wined3d: Add is_power_of_two helper function.", 1 },';
printf '%s\n' '+ { "Michael Müller", "wined3d: Create dummy 1d textures and surfaces.", 1 },';
@ -3797,7 +3736,7 @@ fi
# Patchset d3d11-Deferred_Context
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * d3d11-ResolveSubresource, wined3d-1DTextures
# | * wined3d-1DTextures
# |
# | This patchset fixes the following Wine bugs:
# | * [#42191] Add semi-stub for D3D11 deferred context implementation
@ -3904,10 +3843,10 @@ fi
# |
if test "$enable_d3d11_Depth_Bias" -eq 1; then
patch_apply d3d11-Depth_Bias/0002-d3d11-tests-Add-some-basic-depth-tests.patch
patch_apply d3d11-Depth_Bias/0003-d3d11-Implement-depth-bias-and-slope.patch
patch_apply d3d11-Depth_Bias/0004-d3d11-Add-support-for-SlopeScaledDepthBias-in-RSSetS.patch
patch_apply d3d11-Depth_Bias/0005-d3d11-tests-Add-basic-test-for-depth-bias-clamping.patch
patch_apply d3d11-Depth_Bias/0006-wined3d-Add-support-for-depth-bias-clamping.patch
# patch_apply d3d11-Depth_Bias/0003-d3d11-Implement-depth-bias-and-slope.patch
# patch_apply d3d11-Depth_Bias/0004-d3d11-Add-support-for-SlopeScaledDepthBias-in-RSSetS.patch
# patch_apply d3d11-Depth_Bias/0005-d3d11-tests-Add-basic-test-for-depth-bias-clamping.patch
# patch_apply d3d11-Depth_Bias/0006-wined3d-Add-support-for-depth-bias-clamping.patch
(
printf '%s\n' '+ { "Michael Müller", "d3d11/tests: Add some basic depth tests.", 1 },';
printf '%s\n' '+ { "Michael Müller", "d3d11: Implement depth bias and slope.", 1 },';
@ -4010,12 +3949,12 @@ fi
# | Modified files:
# | * dlls/d3d10_1/tests/d3d10_1.c, dlls/d3d11/tests/d3d11.c, dlls/d3d9/tests/device.c, dlls/winex11.drv/opengl.c
# |
if test "$enable_d3d9_DesktopWindow" -eq 1; then
patch_apply d3d9-DesktopWindow/0001-winex11.drv-Allow-changing-the-opengl-pixel-format-o.patch
(
printf '%s\n' '+ { "Michael Müller", "winex11.drv: Allow changing the opengl pixel format on the desktop window.", 1 },';
) >> "$patchlist"
fi
#if test "$enable_d3d9_DesktopWindow" -eq 1; then
# patch_apply d3d9-DesktopWindow/0001-winex11.drv-Allow-changing-the-opengl-pixel-format-o.patch
# (
# printf '%s\n' '+ { "Michael Müller", "winex11.drv: Allow changing the opengl pixel format on the desktop window.", 1 },';
# ) >> "$patchlist"
#fi
# Patchset d3d9-Tests
# |
@ -4107,33 +4046,8 @@ if test "$enable_d3dx9_36_D3DXCreateTeapot" -eq 1; then
) >> "$patchlist"
fi
# Patchset d3dx9_36-GetShaderSemantics
# |
# | This patchset fixes the following Wine bugs:
# | * [#22682] Support for D3DXGetShaderInputSemantics
# |
# | Modified files:
# | * dlls/d3dx9_24/d3dx9_24.spec, dlls/d3dx9_25/d3dx9_25.spec, dlls/d3dx9_26/d3dx9_26.spec, dlls/d3dx9_27/d3dx9_27.spec,
# | dlls/d3dx9_28/d3dx9_28.spec, dlls/d3dx9_29/d3dx9_29.spec, dlls/d3dx9_30/d3dx9_30.spec, dlls/d3dx9_31/d3dx9_31.spec,
# | dlls/d3dx9_32/d3dx9_32.spec, dlls/d3dx9_33/d3dx9_33.spec, dlls/d3dx9_34/d3dx9_34.spec, dlls/d3dx9_35/d3dx9_35.spec,
# | dlls/d3dx9_36/d3dx9_36.spec, dlls/d3dx9_36/shader.c, dlls/d3dx9_36/tests/shader.c, dlls/d3dx9_37/d3dx9_37.spec,
# | dlls/d3dx9_38/d3dx9_38.spec, dlls/d3dx9_39/d3dx9_39.spec, dlls/d3dx9_40/d3dx9_40.spec, dlls/d3dx9_41/d3dx9_41.spec,
# | dlls/d3dx9_42/d3dx9_42.spec, dlls/d3dx9_43/d3dx9_43.spec, include/d3dx9shader.h
# |
if test "$enable_d3dx9_36_GetShaderSemantics" -eq 1; then
patch_apply d3dx9_36-GetShaderSemantics/0001-d3dx9_36-Implement-D3DXGetShaderInputSemantics-tests.patch
patch_apply d3dx9_36-GetShaderSemantics/0002-d3dx9_36-Implement-D3DXGetShaderOutputSemantics.-rev.patch
(
printf '%s\n' '+ { "Christian Costa", "d3dx9_36: Implement D3DXGetShaderInputSemantics + tests.", 3 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "d3dx9_36: Implement D3DXGetShaderOutputSemantics.", 2 },';
) >> "$patchlist"
fi
# Patchset d3dx9_36-D3DXDisassembleShader
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * d3dx9_36-GetShaderSemantics
# |
# | Modified files:
# | * dlls/d3dx9_36/shader.c, dlls/d3dx9_36/tests/shader.c
# |
@ -4659,18 +4573,6 @@ if test "$enable_dwmapi_DwmSetIcon" -eq 1; then
) >> "$patchlist"
fi
# Patchset dxdiag-dontskip
# |
# | Modified files:
# | * programs/dxdiag/main.c
# |
if test "$enable_dxdiag_dontskip" -eq 1; then
patch_apply dxdiag-dontskip/0001-programs-dxdiag-Handle-dontskip-parameter.patch
(
printf '%s\n' '+ { "Michael Müller", "programs/dxdiag: Handle /dontskip parameter.", 1 },';
) >> "$patchlist"
fi
# Patchset dxdiagn-Display_Information
# |
# | This patchset fixes the following Wine bugs:
@ -4720,18 +4622,6 @@ if test "$enable_dxdiagn_GetChildContainer_Leaf_Nodes" -eq 1; then
) >> "$patchlist"
fi
# Patchset dxgi-DXGI_PRESENT_TEST
# |
# | Modified files:
# | * dlls/dxgi/swapchain.c
# |
if test "$enable_dxgi_DXGI_PRESENT_TEST" -eq 1; then
patch_apply dxgi-DXGI_PRESENT_TEST/0001-dxgi-Add-stub-implementation-for-DXGI_PRESENT_TEST.patch
(
printf '%s\n' '+ { "Kimmo Myllyvirta", "dxgi: Add stub implementation for DXGI_PRESENT_TEST.", 1 },';
) >> "$patchlist"
fi
# Patchset dxgi-GammaRamp
# |
# | This patchset fixes the following Wine bugs:
@ -9754,7 +9644,7 @@ fi
# Patchset wined3d-CSMT_Helper
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * d3d11-ResolveSubresource, wined3d-1DTextures, d3d11-Deferred_Context, d3d9-Tests, makedep-PARENTSPEC, ntdll-
# | * wined3d-1DTextures, d3d11-Deferred_Context, d3d9-Tests, makedep-PARENTSPEC, ntdll-
# | Attach_Process_DLLs, ntdll-DllOverrides_WOW64, ntdll-Loader_Machine_Type, ntdll-DllRedirects, wined3d-Accounting,
# | d3d11-Depth_Bias, wined3d-Copy_Resource_Typeless, wined3d-DXTn, wined3d-Core_Context, wined3d-Viewports, wined3d-
# | Dual_Source_Blending, wined3d-GenerateMips, wined3d-QUERY_Stubs, wined3d-Revert_Buffer_Upload, wined3d-Silence_FIXMEs,
@ -9888,7 +9778,7 @@ fi
# Patchset wined3d-dxgi_swapchain_Present
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * dxgi-DXGI_PRESENT_TEST, wined3d-Silence_FIXMEs
# | * wined3d-Silence_FIXMEs
# |
# | Modified files:
# | * dlls/d3d8/swapchain.c, dlls/d3d9/device.c, dlls/d3d9/swapchain.c, dlls/dxgi/swapchain.c, dlls/wined3d/cs.c,
@ -9934,7 +9824,7 @@ fi
# Patchset wined3d-CSMT_Main
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * d3d11-ResolveSubresource, wined3d-1DTextures, d3d11-Deferred_Context, d3d9-Tests, makedep-PARENTSPEC, ntdll-
# | * wined3d-1DTextures, d3d11-Deferred_Context, d3d9-Tests, makedep-PARENTSPEC, ntdll-
# | Attach_Process_DLLs, ntdll-DllOverrides_WOW64, ntdll-Loader_Machine_Type, ntdll-DllRedirects, wined3d-Accounting,
# | d3d11-Depth_Bias, wined3d-Copy_Resource_Typeless, wined3d-DXTn, wined3d-Core_Context, wined3d-Viewports, wined3d-
# | Dual_Source_Blending, wined3d-GenerateMips, wined3d-QUERY_Stubs, wined3d-Revert_Buffer_Upload, wined3d-Silence_FIXMEs,

View File

@ -1,129 +0,0 @@
From 16e895f9770039a4d9129d577698c8dcec90334e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 23 Aug 2016 22:54:14 +0200
Subject: wined3d: Create dummy 1d textures.
---
dlls/wined3d/context.c | 12 ++++++++++++
dlls/wined3d/device.c | 26 ++++++++++++++++++++++++++
dlls/wined3d/wined3d_private.h | 2 ++
3 files changed, 40 insertions(+)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index a423fac2079..65853209864 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -1514,6 +1514,7 @@ void context_bind_dummy_textures(const struct wined3d_device *device, const stru
GL_EXTCALL(glActiveTexture(GL_TEXTURE0 + i));
checkGLcall("glActiveTexture");
+ gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_1D, device->dummy_textures.tex_1d);
gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_2D, device->dummy_textures.tex_2d);
if (gl_info->supported[ARB_TEXTURE_RECTANGLE])
@@ -1529,7 +1530,10 @@ void context_bind_dummy_textures(const struct wined3d_device *device, const stru
gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_CUBE_MAP_ARRAY, device->dummy_textures.tex_cube_array);
if (gl_info->supported[EXT_TEXTURE_ARRAY])
+ {
+ gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_1D_ARRAY, device->dummy_textures.tex_1d_array);
gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_2D_ARRAY, device->dummy_textures.tex_2d_array);
+ }
if (gl_info->supported[ARB_TEXTURE_BUFFER_OBJECT])
gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_BUFFER, device->dummy_textures.tex_buffer);
@@ -2411,6 +2415,14 @@ void context_bind_texture(struct wined3d_context *context, GLenum target, GLuint
case GL_NONE:
/* nothing to do */
break;
+ case GL_TEXTURE_1D:
+ gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_1D, device->dummy_textures.tex_1d);
+ checkGLcall("glBindTexture");
+ break;
+ case GL_TEXTURE_1D_ARRAY:
+ gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_1D_ARRAY, device->dummy_textures.tex_1d_array);
+ checkGLcall("glBindTexture");
+ break;
case GL_TEXTURE_2D:
gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_2D, device->dummy_textures.tex_2d);
checkGLcall("glBindTexture");
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index eef9818affd..5b598e2f3a4 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -628,6 +628,17 @@ static void create_dummy_textures(struct wined3d_device *device, struct wined3d_
* to each texture stage when the currently set D3D texture is NULL. */
context_active_texture(context, gl_info, 0);
+ gl_info->gl_ops.gl.p_glGenTextures(1, &device->dummy_textures.tex_1d);
+ checkGLcall("glGenTextures");
+ TRACE("Dummy 1D texture given name %u.\n", device->dummy_textures.tex_1d);
+
+ gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_1D, device->dummy_textures.tex_1d);
+ checkGLcall("glBindTexture");
+
+ gl_info->gl_ops.gl.p_glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA8, 1, 0,
+ GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, &color);
+ checkGLcall("glTexImage1D");
+
gl_info->gl_ops.gl.p_glGenTextures(1, &device->dummy_textures.tex_2d);
checkGLcall("glGenTextures");
TRACE("Dummy 2D texture given name %u.\n", device->dummy_textures.tex_2d);
@@ -704,6 +715,17 @@ static void create_dummy_textures(struct wined3d_device *device, struct wined3d_
if (gl_info->supported[EXT_TEXTURE_ARRAY])
{
+ gl_info->gl_ops.gl.p_glGenTextures(1, &device->dummy_textures.tex_1d_array);
+ checkGLcall("glGenTextures");
+ TRACE("Dummy 1D array texture given name %u.\n", device->dummy_textures.tex_1d_array);
+
+ gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_1D_ARRAY, device->dummy_textures.tex_1d_array);
+ checkGLcall("glBindTexture");
+
+ gl_info->gl_ops.gl.p_glTexImage2D(GL_TEXTURE_1D_ARRAY, 0, GL_RGBA8, 1, 1, 0,
+ GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, &color);
+ checkGLcall("glTexImage2D");
+
gl_info->gl_ops.gl.p_glGenTextures(1, &device->dummy_textures.tex_2d_array);
checkGLcall("glGenTextures");
TRACE("Dummy 2D array texture given name %u.\n", device->dummy_textures.tex_2d_array);
@@ -751,7 +773,10 @@ static void destroy_dummy_textures(struct wined3d_device *device, struct wined3d
gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->dummy_textures.tex_buffer);
if (gl_info->supported[EXT_TEXTURE_ARRAY])
+ {
gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->dummy_textures.tex_2d_array);
+ gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->dummy_textures.tex_1d_array);
+ }
if (gl_info->supported[ARB_TEXTURE_CUBE_MAP_ARRAY])
gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->dummy_textures.tex_cube_array);
@@ -766,6 +791,7 @@ static void destroy_dummy_textures(struct wined3d_device *device, struct wined3d
gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->dummy_textures.tex_rect);
gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->dummy_textures.tex_2d);
+ gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->dummy_textures.tex_1d);
checkGLcall("Delete dummy textures");
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index cdc240058a2..34d8f18d698 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2666,11 +2666,13 @@ struct wined3d_device
/* Textures for when no other textures are mapped */
struct
{
+ GLuint tex_1d;
GLuint tex_2d;
GLuint tex_rect;
GLuint tex_3d;
GLuint tex_cube;
GLuint tex_cube_array;
+ GLuint tex_1d_array;
GLuint tex_2d_array;
GLuint tex_buffer;
} dummy_textures;
--
2.11.0

View File

@ -1,7 +1,7 @@
From 94a182b744f90995ad229b9d69a936742cf0ee9f Mon Sep 17 00:00:00 2001
From 186fdd1eee6aad18b7afdf34b669b3220ce8adf8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 23 Aug 2016 22:47:56 +0200
Subject: wined3d: Add 1d texture resource type.
Subject: [PATCH 02/17] wined3d: Add 1d texture resource type.
---
dlls/wined3d/utils.c | 1 +
@ -9,10 +9,10 @@ Subject: wined3d: Add 1d texture resource type.
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
index 79c322f9e6e..5b5bdc62375 100644
index 960909f..04c791b 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -4122,6 +4122,7 @@ const char *debug_d3dresourcetype(enum wined3d_resource_type resource_type)
@@ -4281,6 +4281,7 @@ const char *debug_d3dresourcetype(enum wined3d_resource_type resource_type)
#define WINED3D_TO_STR(x) case x: return #x
WINED3D_TO_STR(WINED3D_RTYPE_NONE);
WINED3D_TO_STR(WINED3D_RTYPE_BUFFER);
@ -21,10 +21,10 @@ index 79c322f9e6e..5b5bdc62375 100644
WINED3D_TO_STR(WINED3D_RTYPE_TEXTURE_3D);
#undef WINED3D_TO_STR
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 8ead4979b5a..5cfcfed2b86 100644
index ed7445e..f5abd9a 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -672,8 +672,9 @@ enum wined3d_resource_type
@@ -676,8 +676,9 @@ enum wined3d_resource_type
{
WINED3D_RTYPE_NONE = 0,
WINED3D_RTYPE_BUFFER = 1,
@ -35,7 +35,7 @@ index 8ead4979b5a..5cfcfed2b86 100644
+ WINED3D_RTYPE_TEXTURE_3D = 4,
};
enum wined3d_pool
enum wined3d_query_type
--
2.12.2
1.9.1

View File

@ -1,14 +1,14 @@
From ff312baa8a0e884b148cba79f8a56f33312108dc Mon Sep 17 00:00:00 2001
From 94af6271b8a843a4f51bf6d8039441a572bf4a36 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 27 Aug 2016 22:19:25 +0200
Subject: wined3d: Add is_power_of_two helper function.
Subject: [PATCH 03/17] wined3d: Add is_power_of_two helper function.
---
dlls/wined3d/texture.c | 20 +++++++-------------
1 file changed, 7 insertions(+), 13 deletions(-)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index d2b1be5..7ab894b 100644
index c9210cb..2a172ee 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -101,6 +101,11 @@ static DWORD wined3d_resource_access_from_location(DWORD location)
@ -23,16 +23,16 @@ index d2b1be5..7ab894b 100644
static void wined3d_texture_evict_sysmem(struct wined3d_texture *texture)
{
struct wined3d_texture_sub_resource *sub_resource;
@@ -1156,7 +1161,7 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT
sub_resource->size = texture->slice_pitch;
sub_resource->locations = WINED3D_LOCATION_DISCARDED;
@@ -1408,7 +1413,7 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT
texture->target = GL_TEXTURE_2D;
texture->sub_resources[0].u.surface->texture_target = texture->target;
- if (((width & (width - 1)) || (height & (height - 1))) && !gl_info->supported[ARB_TEXTURE_NON_POWER_OF_TWO]
+ if ((!is_power_of_two(width) || !is_power_of_two(height)) && !gl_info->supported[ARB_TEXTURE_NON_POWER_OF_TWO]
&& !gl_info->supported[ARB_TEXTURE_RECTANGLE] && !gl_info->supported[WINED3D_GL_NORMALIZED_TEXRECT])
{
texture->flags |= WINED3D_TEXTURE_COND_NP2_EMULATED;
@@ -2460,18 +2465,7 @@ static HRESULT volumetexture_init(struct wined3d_texture *texture, const struct
@@ -2638,18 +2643,7 @@ static HRESULT volumetexture_init(struct wined3d_texture *texture, const struct
if (!gl_info->supported[ARB_TEXTURE_NON_POWER_OF_TWO])
{
@ -50,8 +50,8 @@ index d2b1be5..7ab894b 100644
- if (pow2_w != desc->width || pow2_h != desc->height || pow2_d != desc->depth)
+ if (!is_power_of_two(desc->width) || !is_power_of_two(desc->height) || !is_power_of_two(desc->depth))
{
if (desc->pool == WINED3D_POOL_SCRATCH)
if (desc->usage & WINED3DUSAGE_SCRATCH)
{
--
2.8.1
1.9.1

View File

@ -1,7 +1,7 @@
From 80118da171e87348ce58c22599202053fe95d3b6 Mon Sep 17 00:00:00 2001
From b403de3b7d07a2323c866267261219e9c4eae9bc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 25 Aug 2016 19:24:47 +0200
Subject: wined3d: Create dummy 1d textures and surfaces.
Subject: [PATCH 04/17] wined3d: Create dummy 1d textures and surfaces.
---
dlls/wined3d/resource.c | 1 +
@ -9,10 +9,10 @@ Subject: wined3d: Create dummy 1d textures and surfaces.
2 files changed, 175 insertions(+)
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
index 611c61f..64dce8f 100644
index e318888..d3878cc 100644
--- a/dlls/wined3d/resource.c
+++ b/dlls/wined3d/resource.c
@@ -94,6 +94,7 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *
@@ -76,6 +76,7 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *
resource_types[] =
{
{WINED3D_RTYPE_BUFFER, 0, WINED3D_GL_RES_TYPE_BUFFER},
@ -21,10 +21,10 @@ index 611c61f..64dce8f 100644
{WINED3D_RTYPE_TEXTURE_2D, 0, WINED3D_GL_RES_TYPE_TEX_RECT},
{WINED3D_RTYPE_TEXTURE_2D, 0, WINED3D_GL_RES_TYPE_RB},
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 90bd4a0..4ecd4ce 100644
index 2a172ee..f81d7cf 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1448,6 +1448,45 @@ void wined3d_texture_upload_data(struct wined3d_texture *texture, unsigned int s
@@ -1649,6 +1649,45 @@ void wined3d_texture_upload_data(struct wined3d_texture *texture, unsigned int s
context, box, data, row_pitch, slice_pitch);
}
@ -70,7 +70,7 @@ index 90bd4a0..4ecd4ce 100644
static void texture2d_upload_data(struct wined3d_texture *texture, unsigned int sub_resource_idx,
const struct wined3d_context *context, const struct wined3d_box *box,
const struct wined3d_const_bo_address *data, unsigned int row_pitch, unsigned int slice_pitch)
@@ -1882,6 +1921,137 @@ static const struct wined3d_resource_ops texture_resource_ops =
@@ -2063,6 +2102,137 @@ static const struct wined3d_resource_ops texture_resource_ops =
texture_resource_sub_resource_unmap,
};
@ -208,7 +208,7 @@ index 90bd4a0..4ecd4ce 100644
static HRESULT texture_init(struct wined3d_texture *texture, const struct wined3d_resource_desc *desc,
unsigned int layer_count, unsigned int level_count, DWORD flags, struct wined3d_device *device,
void *parent, const struct wined3d_parent_ops *parent_ops)
@@ -2828,6 +2998,10 @@ HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct
@@ -2994,6 +3164,10 @@ HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct
switch (desc->resource_type)
{
@ -220,5 +220,5 @@ index 90bd4a0..4ecd4ce 100644
hr = texture_init(object, desc, layer_count, level_count, flags, device, parent, parent_ops);
break;
--
2.9.0
1.9.1

View File

@ -1,17 +1,17 @@
From 5011cd6f4e78bb9d00c5264e3b5033e36fe6b986 Mon Sep 17 00:00:00 2001
From e03a886b0d0557a9ab5146bf0ac7a2d66830274c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 27 Aug 2016 22:22:26 +0200
Subject: wined3d: Implement preparation for 1d textures.
Subject: [PATCH 05/17] wined3d: Implement preparation for 1d textures.
---
dlls/wined3d/texture.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 54 insertions(+), 1 deletion(-)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index e4ca54b..942337b 100644
index f81d7cf..90c18e8 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1463,7 +1463,60 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
@@ -1673,7 +1673,60 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
static void texture1d_prepare_texture(struct wined3d_texture *texture, struct wined3d_context *context, BOOL srgb)
{
@ -74,5 +74,5 @@ index e4ca54b..942337b 100644
static void texture1d_cleanup_sub_resources(struct wined3d_texture *texture)
--
2.8.1
1.9.1

View File

@ -1,7 +1,7 @@
From 227c20d336bca247834d85e6ddb6002680d3d700 Mon Sep 17 00:00:00 2001
From b04889c49c973048a9ca14ee454e744d163b377c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 27 Aug 2016 22:25:20 +0200
Subject: wined3d: Implement uploading for 1d textures.
Subject: [PATCH 06/17] wined3d: Implement uploading for 1d textures.
---
dlls/wined3d/device.c | 3 ++-
@ -9,10 +9,10 @@ Subject: wined3d: Implement uploading for 1d textures.
2 files changed, 69 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index bd08c352794..53ada28b11b 100644
index 3961f55..eea1de8 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -4055,7 +4055,8 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str
@@ -4261,7 +4261,8 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str
height = 1;
depth = 1;
}
@ -23,10 +23,10 @@ index bd08c352794..53ada28b11b 100644
struct wined3d_texture *texture = texture_from_resource(resource);
unsigned int level;
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 296ca898f81..a3f90773904 100644
index 90c18e8..93b41e9 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1581,8 +1581,74 @@ static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int
@@ -1657,8 +1657,74 @@ static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int
const struct wined3d_context *context, const struct wined3d_box *box, const struct wined3d_const_bo_address *data,
unsigned int row_pitch, unsigned int slice_pitch)
{
@ -103,5 +103,5 @@ index 296ca898f81..a3f90773904 100644
/* Context activation is done by the caller. */
--
2.11.0
1.9.1

View File

@ -1,18 +1,18 @@
From d0b2b377e3be8800332a32b7feb9e3c734a5b25a Mon Sep 17 00:00:00 2001
From abf26ab2c3d8fd1989bb145251899378bb4c1a0f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 27 Aug 2016 22:38:47 +0200
Subject: wined3d: Implement loading from system memory and buffers to (s)rgb
1d textures.
Subject: [PATCH 07/17] wined3d: Implement loading from system memory and
buffers to (s)rgb 1d textures.
---
dlls/wined3d/texture.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 67 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 614b4cf..2accfe7 100644
index 93b41e9..c5a4f0c 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1530,10 +1530,75 @@ static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int
@@ -1731,10 +1731,75 @@ static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int
static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned int sub_resource_idx,
struct wined3d_context *context, DWORD location)
{
@ -91,5 +91,5 @@ index 614b4cf..2accfe7 100644
static void texture1d_prepare_texture(struct wined3d_texture *texture, struct wined3d_context *context, BOOL srgb)
--
2.9.0
1.9.1

View File

@ -1,18 +1,18 @@
From 17119e7e24b0d78fa85945afba9e92349c69c03c Mon Sep 17 00:00:00 2001
From 8efaebed047f1b3a466f74fc982e5a3b22326ad9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 27 Aug 2016 22:41:05 +0200
Subject: wined3d: Implement downloading from (s)rgb 1d textures to system
memory.
Subject: [PATCH 08/17] wined3d: Implement downloading from (s)rgb 1d textures
to system memory.
---
dlls/wined3d/texture.c | 112 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 112 insertions(+)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 72e2baf..48f3cde 100644
index c5a4f0c..198d2a6 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1507,6 +1507,76 @@ static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int
@@ -1728,6 +1728,76 @@ static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int
}
/* Context activation is done by the caller. */
@ -89,7 +89,7 @@ index 72e2baf..48f3cde 100644
static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned int sub_resource_idx,
struct wined3d_context *context, DWORD location)
{
@@ -1569,6 +1639,48 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
@@ -1790,6 +1860,48 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
}
break;
@ -139,5 +139,5 @@ index 72e2baf..48f3cde 100644
FIXME("Implement %s loading from %s.\n", wined3d_debug_location(location),
wined3d_debug_location(sub_resource->locations));
--
2.8.1
1.9.1

View File

@ -1,17 +1,18 @@
From b791c5d95a0526a52a4e9abef7e2809eaf6e6b2a Mon Sep 17 00:00:00 2001
From ae4b60f9b626f36b7db26a5e93720c46b2a6c14b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 27 Aug 2016 22:44:14 +0200
Subject: wined3d: Implement converting between (s)rgb 1d textures.
Subject: [PATCH 09/17] wined3d: Implement converting between (s)rgb 1d
textures.
---
dlls/wined3d/texture.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 0b7c53d..74de20c 100644
index 198d2a6..6f27fb7 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1597,6 +1597,29 @@ static void texture1d_download_data(struct wined3d_texture *texture, unsigned in
@@ -1798,6 +1798,29 @@ static void texture1d_download_data(struct wined3d_texture *texture, unsigned in
}
/* Context activation is done by the caller. */
@ -41,7 +42,7 @@ index 0b7c53d..74de20c 100644
static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned int sub_resource_idx,
struct wined3d_context *context, DWORD location)
{
@@ -1652,6 +1675,14 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
@@ -1853,6 +1876,14 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
wined3d_texture_get_pitch(texture, sub_resource_idx, &row_pitch, &slice_pitch);
texture1d_upload_data(texture, sub_resource_idx, context, NULL, &data, row_pitch, slice_pitch);
}
@ -57,5 +58,5 @@ index 0b7c53d..74de20c 100644
{
FIXME("Implement 1d texture loading from %s.\n", wined3d_debug_location(sub_resource->locations));
--
2.9.0
1.9.1

View File

@ -1,17 +1,18 @@
From d2b758c7547d63af92250da595967923b1c4ecca Mon Sep 17 00:00:00 2001
From b1e820f73fe2603a0798a649dcb6a9b11de14292 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 25 Aug 2016 19:11:03 +0200
Subject: wined3d: Check for 1d textures in wined3d_texture_update_desc.
Subject: [PATCH 10/17] wined3d: Check for 1d textures in
wined3d_texture_update_desc.
---
dlls/wined3d/texture.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 9c17b45..4703bc8 100644
index 6f27fb7..315d22a 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1113,6 +1113,12 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT
@@ -1357,6 +1357,12 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT
return WINED3DERR_INVALIDCALL;
}
@ -25,5 +26,5 @@ index 9c17b45..4703bc8 100644
{
WARN("Texture is mapped.\n");
--
2.8.1
1.9.1

View File

@ -1,17 +1,18 @@
From d11ec46eaaa4f0cd22684502ea9513198cc7f1c0 Mon Sep 17 00:00:00 2001
From 9d376e1a79487f9bf5bf4d834018a495f3dda1a2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 25 Aug 2016 17:00:12 +0200
Subject: wined3d: Check if 1d teture is still in use before releasing.
Subject: [PATCH 11/17] wined3d: Check if 1d teture is still in use before
releasing.
---
dlls/wined3d/device.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 1445399..f67627a 100644
index eea1de8..96a3093 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -5000,6 +5000,7 @@ void device_resource_released(struct wined3d_device *device, struct wined3d_reso
@@ -5075,6 +5075,7 @@ void device_resource_released(struct wined3d_device *device, struct wined3d_reso
switch (type)
{
@ -20,5 +21,5 @@ index 1445399..f67627a 100644
case WINED3D_RTYPE_TEXTURE_3D:
for (i = 0; i < MAX_COMBINED_SAMPLERS; ++i)
--
2.8.1
1.9.1

View File

@ -1,17 +1,17 @@
From 82eb096a5585a8baaf2258943229b3a001d1bdb9 Mon Sep 17 00:00:00 2001
From 2d5f825fb62d92357cade36e6e37055cd66c96ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 25 Aug 2016 17:06:41 +0200
Subject: wined3d: Generate glsl samplers for 1d texture arrays.
Subject: [PATCH 12/17] wined3d: Generate glsl samplers for 1d texture arrays.
---
dlls/wined3d/glsl_shader.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index c8a970f1eb..1a25701cb9 100644
index 82df6aa..2e7285b 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -2401,6 +2401,13 @@ static void shader_generate_glsl_declarations(const struct wined3d_context *cont
@@ -2577,6 +2577,13 @@ static void shader_generate_glsl_declarations(const struct wined3d_context *cont
sampler_type = "samplerCube";
break;
@ -26,5 +26,5 @@ index c8a970f1eb..1a25701cb9 100644
if (shadow_sampler)
sampler_type = "sampler2DArrayShadow";
--
2.11.0
1.9.1

View File

@ -1,7 +1,7 @@
From 297e02795ff39b1ee67bca1e54d93867ba151fd6 Mon Sep 17 00:00:00 2001
From d243fabc017d9c3d2deede80378793771d6acd22 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 25 Aug 2016 19:09:41 +0200
Subject: wined3d: Add support for 1d textures in
Subject: [PATCH 13/17] wined3d: Add support for 1d textures in
context_attach_gl_texture_fbo.
---
@ -9,7 +9,7 @@ Subject: wined3d: Add support for 1d textures in
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 09681834d9..598622d3e7 100644
index e3e4834..d3012d2 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -139,7 +139,8 @@ static void context_attach_gl_texture_fbo(struct wined3d_context *context,
@ -36,5 +36,5 @@ index 09681834d9..598622d3e7 100644
{
gl_info->fbo_ops.glFramebufferTexture2D(fbo_target, attachment,
--
2.11.0
1.9.1

View File

@ -1,17 +1,18 @@
From 2fa42aeeeeafb6eb2da908b43ee8137249fcfeb4 Mon Sep 17 00:00:00 2001
From 7ef5d328a51af66720dc2f7b726225ac220fb7ac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 25 Aug 2016 19:21:20 +0200
Subject: wined3d: Handle 1d textures in texture_activate_dimensions.
Subject: [PATCH 14/17] wined3d: Handle 1d textures in
texture_activate_dimensions.
---
dlls/wined3d/utils.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
index 4e00aad..b903bb6 100644
index 04c791b..6f5e1ce 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -5425,7 +5425,27 @@ void texture_activate_dimensions(const struct wined3d_texture *texture, const st
@@ -5755,7 +5755,27 @@ void texture_activate_dimensions(const struct wined3d_texture *texture, const st
{
switch (texture->target)
{
@ -39,7 +40,7 @@ index 4e00aad..b903bb6 100644
gl_info->gl_ops.gl.p_glDisable(GL_TEXTURE_3D);
checkGLcall("glDisable(GL_TEXTURE_3D)");
if (gl_info->supported[ARB_TEXTURE_CUBE_MAP])
@@ -5442,6 +5462,8 @@ void texture_activate_dimensions(const struct wined3d_texture *texture, const st
@@ -5772,6 +5792,8 @@ void texture_activate_dimensions(const struct wined3d_texture *texture, const st
checkGLcall("glEnable(GL_TEXTURE_2D)");
break;
case GL_TEXTURE_RECTANGLE_ARB:
@ -48,7 +49,7 @@ index 4e00aad..b903bb6 100644
gl_info->gl_ops.gl.p_glDisable(GL_TEXTURE_2D);
checkGLcall("glDisable(GL_TEXTURE_2D)");
gl_info->gl_ops.gl.p_glDisable(GL_TEXTURE_3D);
@@ -5465,12 +5487,16 @@ void texture_activate_dimensions(const struct wined3d_texture *texture, const st
@@ -5795,12 +5817,16 @@ void texture_activate_dimensions(const struct wined3d_texture *texture, const st
gl_info->gl_ops.gl.p_glDisable(GL_TEXTURE_RECTANGLE_ARB);
checkGLcall("glDisable(GL_TEXTURE_RECTANGLE_ARB)");
}
@ -65,7 +66,7 @@ index 4e00aad..b903bb6 100644
gl_info->gl_ops.gl.p_glDisable(GL_TEXTURE_2D);
checkGLcall("glDisable(GL_TEXTURE_2D)");
gl_info->gl_ops.gl.p_glDisable(GL_TEXTURE_3D);
@@ -5487,6 +5513,8 @@ void texture_activate_dimensions(const struct wined3d_texture *texture, const st
@@ -5817,6 +5843,8 @@ void texture_activate_dimensions(const struct wined3d_texture *texture, const st
}
else
{
@ -75,5 +76,5 @@ index 4e00aad..b903bb6 100644
checkGLcall("glEnable(GL_TEXTURE_2D)");
gl_info->gl_ops.gl.p_glDisable(GL_TEXTURE_3D);
--
2.8.1
1.9.1

View File

@ -1,27 +1,28 @@
From 3e9426e9eddb491050a780e854ad7d7f889e91bd Mon Sep 17 00:00:00 2001
From 408eed799abaa5c3d20af6e1d7e4cbe399d355a4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 25 Aug 2016 19:26:07 +0200
Subject: wined3d: Allow creation of 1d shader views.
Subject: [PATCH 15/17] wined3d: Allow creation of 1d shader views.
---
dlls/wined3d/view.c | 4 ++++
1 file changed, 4 insertions(+)
dlls/wined3d/view.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c
index 82fac25603..a809344126 100644
index b06dacc..66c9479 100644
--- a/dlls/wined3d/view.c
+++ b/dlls/wined3d/view.c
@@ -46,6 +46,10 @@ static GLenum get_texture_view_target(const struct wined3d_gl_info *gl_info,
{
{GL_TEXTURE_CUBE_MAP, 0, GL_TEXTURE_CUBE_MAP},
{GL_TEXTURE_RECTANGLE, 0, GL_TEXTURE_RECTANGLE},
+ {GL_TEXTURE_1D, 0, GL_TEXTURE_1D},
+ {GL_TEXTURE_1D, WINED3D_VIEW_TEXTURE_ARRAY, GL_TEXTURE_1D_ARRAY},
+ {GL_TEXTURE_1D_ARRAY, 0, GL_TEXTURE_1D},
+ {GL_TEXTURE_1D_ARRAY, WINED3D_VIEW_TEXTURE_ARRAY, GL_TEXTURE_1D_ARRAY},
{GL_TEXTURE_2D, 0, GL_TEXTURE_2D},
{GL_TEXTURE_2D, WINED3D_VIEW_TEXTURE_ARRAY, GL_TEXTURE_2D_ARRAY},
{GL_TEXTURE_2D_ARRAY, 0, GL_TEXTURE_2D},
@@ -48,6 +48,11 @@ static GLenum get_texture_view_target(const struct wined3d_gl_info *gl_info,
{GL_TEXTURE_RECTANGLE, 0, GL_TEXTURE_RECTANGLE},
{GL_TEXTURE_3D, 0, GL_TEXTURE_3D},
+ {GL_TEXTURE_1D, 0, GL_TEXTURE_1D},
+ {GL_TEXTURE_1D, WINED3D_VIEW_TEXTURE_ARRAY, GL_TEXTURE_1D_ARRAY},
+ {GL_TEXTURE_1D_ARRAY, 0, GL_TEXTURE_1D},
+ {GL_TEXTURE_1D_ARRAY, WINED3D_VIEW_TEXTURE_ARRAY, GL_TEXTURE_1D_ARRAY},
+
{GL_TEXTURE_2D, 0, GL_TEXTURE_2D},
{GL_TEXTURE_2D, WINED3D_VIEW_TEXTURE_ARRAY, GL_TEXTURE_2D_ARRAY},
{GL_TEXTURE_2D_ARRAY, 0, GL_TEXTURE_2D},
--
2.11.0
1.9.1

View File

@ -1,33 +1,19 @@
From e2452eb12f42fa733647dca9980ac6e4efad1327 Mon Sep 17 00:00:00 2001
From 3456b972410f13cdbe20ee3533b90022f08c8988 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 4 Jun 2017 22:04:39 +0200
Subject: d3d11: Improve ID3D11Device_CheckFormatSupport.
Subject: [PATCH 16/17] d3d11: Improve ID3D11Device_CheckFormatSupport.
---
dlls/d3d10core/tests/device.c | 2 +-
dlls/d3d11/device.c | 26 +++++++++++++++++++-------
dlls/d3d11/tests/d3d11.c | 33 ++++++++++++++++++++++++++++++++-
dlls/wined3d/directx.c | 21 ++++++++++++++++++++-
4 files changed, 72 insertions(+), 10 deletions(-)
dlls/d3d11/device.c | 17 ++++++++++++-----
dlls/d3d11/tests/d3d11.c | 33 ++++++++++++++++++++++++++++++++-
dlls/wined3d/directx.c | 21 ++++++++++++++++++++-
3 files changed, 64 insertions(+), 7 deletions(-)
diff --git a/dlls/d3d10core/tests/device.c b/dlls/d3d10core/tests/device.c
index 364a2abfe7f..78ae08b8c6c 100644
--- a/dlls/d3d10core/tests/device.c
+++ b/dlls/d3d10core/tests/device.c
@@ -10565,7 +10565,7 @@ static void test_required_format_support(void)
for (format = DXGI_FORMAT_UNKNOWN; format <= DXGI_FORMAT_B4G4R4A4_UNORM; ++format)
{
hr = ID3D10Device_CheckFormatSupport(device, format, &format_support[format]);
- todo_wine ok(hr == S_OK || (hr == E_FAIL && !format_support[format]),
+ ok(hr == S_OK || (hr == E_FAIL && !format_support[format]),
"Got unexpected result for format %#x: hr %#x, format_support %#x.\n",
format, hr, format_support[format]);
}
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index e84c3655e08..4e7d988075e 100644
index f65c994..43a940f 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -3332,17 +3332,24 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CheckFormatSupport(ID3D11Device *i
@@ -3224,17 +3224,24 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CheckFormatSupport(ID3D11Device *i
}
flag_mapping[] =
{
@ -57,29 +43,11 @@ index e84c3655e08..4e7d988075e 100644
{
WARN("Invalid format %#x.\n", format);
*format_support = 0;
@@ -5550,10 +5557,15 @@ static HRESULT STDMETHODCALLTYPE d3d10_device_CreateCounter(ID3D10Device1 *iface
static HRESULT STDMETHODCALLTYPE d3d10_device_CheckFormatSupport(ID3D10Device1 *iface,
DXGI_FORMAT format, UINT *format_support)
{
- FIXME("iface %p, format %s, format_support %p stub!\n",
+ struct d3d_device *device = impl_from_ID3D10Device(iface);
+ HRESULT hr;
+
+ TRACE("iface %p, format %s, format_support %p.\n",
iface, debug_dxgi_format(format), format_support);
- return E_NOTIMPL;
+ hr = d3d11_device_CheckFormatSupport(&device->ID3D11Device_iface, format, format_support);
+ if (SUCCEEDED(hr)) *format_support &= 0x8ffffff;
+ return hr;
}
static HRESULT STDMETHODCALLTYPE d3d10_device_CheckMultisampleQualityLevels(ID3D10Device1 *iface,
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
index 84ffe4e31a2..d64d8ef7acc 100644
index e0769a7..af6c9cf 100644
--- a/dlls/d3d11/tests/d3d11.c
+++ b/dlls/d3d11/tests/d3d11.c
@@ -14046,7 +14046,8 @@ static void check_format_support(const unsigned int *format_support, D3D_FEATURE
@@ -16027,7 +16027,8 @@ static void check_format_support(const unsigned int *format_support, D3D_FEATURE
if (formats[i].fl_required <= feature_level)
{
@ -89,7 +57,7 @@ index 84ffe4e31a2..d64d8ef7acc 100644
format, feature_name, feature_level, format_support[format]);
continue;
}
@@ -14059,6 +14060,9 @@ static void check_format_support(const unsigned int *format_support, D3D_FEATURE
@@ -16040,6 +16041,9 @@ static void check_format_support(const unsigned int *format_support, D3D_FEATURE
continue;
}
@ -99,7 +67,7 @@ index 84ffe4e31a2..d64d8ef7acc 100644
ok(!supported, "Format %#x - %s supported, feature level %#x, format support %#x.\n",
format, feature_name, feature_level, format_support[format]);
}
@@ -14066,6 +14070,15 @@ static void check_format_support(const unsigned int *format_support, D3D_FEATURE
@@ -16047,6 +16051,15 @@ static void check_format_support(const unsigned int *format_support, D3D_FEATURE
static void test_required_format_support(const D3D_FEATURE_LEVEL feature_level)
{
@ -115,7 +83,7 @@ index 84ffe4e31a2..d64d8ef7acc 100644
unsigned int format_support[DXGI_FORMAT_B4G4R4A4_UNORM + 1];
struct device_desc device_desc;
ID3D11Device *device;
@@ -14093,6 +14106,24 @@ static void test_required_format_support(const D3D_FEATURE_LEVEL feature_level)
@@ -16074,6 +16087,24 @@ static void test_required_format_support(const D3D_FEATURE_LEVEL feature_level)
ok(hr == E_FAIL, "Got unexpected hr %#x.\n", hr);
ok(!support, "Got unexpected format support %#x.\n", support);
@ -141,10 +109,10 @@ index 84ffe4e31a2..d64d8ef7acc 100644
for (format = DXGI_FORMAT_UNKNOWN; format <= DXGI_FORMAT_B4G4R4A4_UNORM; ++format)
{
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 9614e16d9dc..6fe22003489 100644
index 924cc72..a0feb45 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -5254,10 +5254,23 @@ HRESULT CDECL wined3d_check_device_format(const struct wined3d *wined3d, UINT ad
@@ -5317,10 +5317,23 @@ HRESULT CDECL wined3d_check_device_format(const struct wined3d *wined3d, UINT ad
case WINED3D_RTYPE_NONE:
allowed_usage = WINED3DUSAGE_DEPTHSTENCIL
| WINED3DUSAGE_RENDERTARGET;
@ -169,7 +137,7 @@ index 9614e16d9dc..6fe22003489 100644
case WINED3D_RTYPE_TEXTURE_2D:
allowed_usage = WINED3DUSAGE_DEPTHSTENCIL
| WINED3DUSAGE_RENDERTARGET
@@ -5314,6 +5327,12 @@ HRESULT CDECL wined3d_check_device_format(const struct wined3d *wined3d, UINT ad
@@ -5377,6 +5390,12 @@ HRESULT CDECL wined3d_check_device_format(const struct wined3d *wined3d, UINT ad
gl_type = gl_type_end = WINED3D_GL_RES_TYPE_TEX_3D;
break;
@ -183,5 +151,5 @@ index 9614e16d9dc..6fe22003489 100644
FIXME("Unhandled resource type %s.\n", debug_d3dresourcetype(resource_type));
return WINED3DERR_NOTAVAILABLE;
--
2.13.0
1.9.1

View File

@ -1,8 +1,8 @@
From 9d41dd847845cf31ca0f194c1418b03eb164cf37 Mon Sep 17 00:00:00 2001
From 8615c6ef61159a6c5df1b9088c1de1f64410d233 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 7 Jul 2017 04:03:19 +0200
Subject: d3d11: Allow DXGI_FORMAT_UNKNOWN in CheckFormatSupport and improve
tests.
Subject: [PATCH 17/17] d3d11: Allow DXGI_FORMAT_UNKNOWN in CheckFormatSupport
and improve tests.
---
dlls/d3d11/device.c | 2 +-
@ -10,10 +10,10 @@ Subject: d3d11: Allow DXGI_FORMAT_UNKNOWN in CheckFormatSupport and improve
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 8642bf50fb1..3b7d55828a5 100644
index 43a940f..5ed5f4d 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -5567,7 +5567,7 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CheckFormatSupport(ID3D11Device *i
@@ -3241,7 +3241,7 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CheckFormatSupport(ID3D11Device *i
FIXME("iface %p, format %u, format_support %p partial-stub!\n", iface, format, format_support);
wined3d_format = wined3dformat_from_dxgi_format(format);
@ -23,10 +23,10 @@ index 8642bf50fb1..3b7d55828a5 100644
WARN("Invalid format %#x.\n", format);
*format_support = 0;
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
index c8c9037fced..241320d0a74 100644
index af6c9cf..935918e 100644
--- a/dlls/d3d11/tests/d3d11.c
+++ b/dlls/d3d11/tests/d3d11.c
@@ -14744,7 +14744,7 @@ static void check_format_support(const unsigned int *format_support, D3D_FEATURE
@@ -16051,7 +16051,7 @@ static void check_format_support(const unsigned int *format_support, D3D_FEATURE
static void test_required_format_support(const D3D_FEATURE_LEVEL feature_level)
{
@ -35,7 +35,7 @@ index c8c9037fced..241320d0a74 100644
D3D11_FORMAT_SUPPORT_TEXTURE1D | D3D11_FORMAT_SUPPORT_TEXTURE2D |
D3D11_FORMAT_SUPPORT_TEXTURE3D | D3D11_FORMAT_SUPPORT_TEXTURECUBE |
D3D11_FORMAT_SUPPORT_MIP | D3D11_FORMAT_SUPPORT_MIP_AUTOGEN |
@@ -14787,12 +14787,10 @@ static void test_required_format_support(const D3D_FEATURE_LEVEL feature_level)
@@ -16094,12 +16094,10 @@ static void test_required_format_support(const D3D_FEATURE_LEVEL feature_level)
ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %#x.\n", hr);
}
@ -50,5 +50,5 @@ index c8c9037fced..241320d0a74 100644
ok(hr == S_OK, "Expected S_OK, got %#x.\n", hr);
ok((support & expected) == expected, "Expected the following features to be supported: %#x.\n",
--
2.13.1
1.9.1