From 9739f8ff474899d79fc9398947581195636cc773 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Tue, 13 Mar 2018 22:31:07 -0500 Subject: [PATCH] Rebase against c21c8525f9e69cfd48906ecc33b909490bd82783. --- ...del-usercontext-l1-1-0-Add-dll-and-a.patch | 10 +- patches/bcrypt-Improvements/definition | 2 +- ...36-Add-stub-for-D3DXComputeNormalMap.patch | 315 ------------------ patches/d3dx9_36-D3DXStubs/definition | 1 - ...Fix-most-problems-with-CompareString.patch | 12 +- ...icebp-instruction-to-EXCEPTION_SINGL.patch | 42 --- ...handle-privileged-instructions-on-x8.patch | 113 ------- ...tdll-Handle-interrupt-0x2c-on-x86_64.patch | 26 -- .../definition | 2 +- patches/patchinstall.sh | 16 +- patches/windowscodecs-JPEG_Decoder/definition | 2 +- ...reate-dummy-1d-textures-and-surfaces.patch | 16 +- ...mplement-preparation-for-1d-textures.patch | 21 +- ...-Implement-uploading-for-1d-textures.patch | 16 +- ...t-downloading-from-s-rgb-1d-textures.patch | 14 +- .../wined3d-CSMT_Main/9999-IfDefined.patch | 44 +-- ...ned3d-Implement-dual-source-blending.patch | 40 +-- ...lement-all-8-d3d11-color-write-masks.patch | 41 ++- 18 files changed, 116 insertions(+), 617 deletions(-) delete mode 100644 patches/d3dx9_36-D3DXStubs/0001-d3dx9_36-Add-stub-for-D3DXComputeNormalMap.patch delete mode 100644 patches/ntdll-x86_64_ExceptionInformation/0003-ntdll-Translate-icebp-instruction-to-EXCEPTION_SINGL.patch delete mode 100644 patches/ntdll-x86_64_ExceptionInformation/0004-ntdll-Correctly-handle-privileged-instructions-on-x8.patch delete mode 100644 patches/ntdll-x86_64_ExceptionInformation/0005-ntdll-Handle-interrupt-0x2c-on-x86_64.patch diff --git a/patches/api-ms-win-Stub_DLLs/0010-ext-ms-win-appmodel-usercontext-l1-1-0-Add-dll-and-a.patch b/patches/api-ms-win-Stub_DLLs/0010-ext-ms-win-appmodel-usercontext-l1-1-0-Add-dll-and-a.patch index 45cd38db..9fe83558 100644 --- a/patches/api-ms-win-Stub_DLLs/0010-ext-ms-win-appmodel-usercontext-l1-1-0-Add-dll-and-a.patch +++ b/patches/api-ms-win-Stub_DLLs/0010-ext-ms-win-appmodel-usercontext-l1-1-0-Add-dll-and-a.patch @@ -1,4 +1,4 @@ -From 247c41da056d4a7da8506229e1cf7364297dd693 Mon Sep 17 00:00:00 2001 +From 65dda249fcbd5c1685fc89ede60e946b910508e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sun, 17 Jan 2016 17:12:45 +0100 Subject: [PATCH] ext-ms-win-appmodel-usercontext-l1-1-0: Add dll and add stub @@ -15,17 +15,17 @@ Subject: [PATCH] ext-ms-win-appmodel-usercontext-l1-1-0: Add dll and add stub create mode 100644 dlls/ext-ms-win-appmodel-usercontext-l1-1-0/main.c diff --git a/configure.ac b/configure.ac -index 4d7111a..6857372 100644 +index 53ddeea..4061187 100644 --- a/configure.ac +++ b/configure.ac -@@ -3229,6 +3229,7 @@ WINE_CONFIG_MAKEFILE(dlls/evr) +@@ -3238,6 +3238,7 @@ WINE_CONFIG_MAKEFILE(dlls/evr) WINE_CONFIG_MAKEFILE(dlls/evr/tests) WINE_CONFIG_MAKEFILE(dlls/explorerframe) WINE_CONFIG_MAKEFILE(dlls/explorerframe/tests) +WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-appmodel-usercontext-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-authz-context-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-domainjoin-netjoin-l1-1-0) - WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-dc-create-l1-1-1) + WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-dwmapi-ext-l1-1-0) diff --git a/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/Makefile.in b/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/Makefile.in new file mode 100644 index 0000000..16eee75 @@ -87,5 +87,5 @@ index 0000000..7a9e75f + return S_OK; +} -- -1.9.1 +2.7.4 diff --git a/patches/bcrypt-Improvements/definition b/patches/bcrypt-Improvements/definition index 89ddf158..b6639dfa 100644 --- a/patches/bcrypt-Improvements/definition +++ b/patches/bcrypt-Improvements/definition @@ -2,4 +2,4 @@ Fixes: Implement BCrypt AES provider # 40418 was originally here, but was apparently satisfied with less. Fixes: [42553] Implement BCrypt ECB chaining mode Fixes: [39582] Implement BCrypt RSA provider -Fixes: [44053] Implement BCryptImportKey and BCryptExportKey +Fixes: [43605] Implement elliptic curve (ECDSA) cryptography \ No newline at end of file diff --git a/patches/d3dx9_36-D3DXStubs/0001-d3dx9_36-Add-stub-for-D3DXComputeNormalMap.patch b/patches/d3dx9_36-D3DXStubs/0001-d3dx9_36-Add-stub-for-D3DXComputeNormalMap.patch deleted file mode 100644 index 1b883e04..00000000 --- a/patches/d3dx9_36-D3DXStubs/0001-d3dx9_36-Add-stub-for-D3DXComputeNormalMap.patch +++ /dev/null @@ -1,315 +0,0 @@ -From 56f22f460659c3b01e50bdb5b10a61c560bce724 Mon Sep 17 00:00:00 2001 -From: Christian Costa -Date: Wed, 31 Dec 2014 18:45:24 +0100 -Subject: d3dx9_36: Add stub for D3DXComputeNormalMap. - ---- - 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/mesh.c | 12 ++++++++++++ - 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 +- - 21 files changed, 32 insertions(+), 20 deletions(-) - -diff --git a/dlls/d3dx9_24/d3dx9_24.spec b/dlls/d3dx9_24/d3dx9_24.spec -index f182d7e..f07ef54 100644 ---- a/dlls/d3dx9_24/d3dx9_24.spec -+++ b/dlls/d3dx9_24/d3dx9_24.spec -@@ -18,7 +18,7 @@ - @ stdcall D3DXCompileShaderFromResourceW(ptr wstr ptr ptr str str long ptr ptr ptr) - @ stdcall D3DXComputeBoundingBox(ptr long long ptr ptr) - @ stdcall D3DXComputeBoundingSphere(ptr long long ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_25/d3dx9_25.spec b/dlls/d3dx9_25/d3dx9_25.spec -index 300dc1d..691f921 100644 ---- a/dlls/d3dx9_25/d3dx9_25.spec -+++ b/dlls/d3dx9_25/d3dx9_25.spec -@@ -18,7 +18,7 @@ - @ stdcall D3DXCompileShaderFromResourceW(ptr wstr ptr ptr str str long ptr ptr ptr) - @ stdcall D3DXComputeBoundingBox(ptr long long ptr ptr) - @ stdcall D3DXComputeBoundingSphere(ptr long long ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_26/d3dx9_26.spec b/dlls/d3dx9_26/d3dx9_26.spec -index 79e0a0c..151e6f8 100644 ---- a/dlls/d3dx9_26/d3dx9_26.spec -+++ b/dlls/d3dx9_26/d3dx9_26.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_27/d3dx9_27.spec b/dlls/d3dx9_27/d3dx9_27.spec -index 79e0a0c..151e6f8 100644 ---- a/dlls/d3dx9_27/d3dx9_27.spec -+++ b/dlls/d3dx9_27/d3dx9_27.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_28/d3dx9_28.spec b/dlls/d3dx9_28/d3dx9_28.spec -index abbfa94..10f7620 100644 ---- a/dlls/d3dx9_28/d3dx9_28.spec -+++ b/dlls/d3dx9_28/d3dx9_28.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_29/d3dx9_29.spec b/dlls/d3dx9_29/d3dx9_29.spec -index abbfa94..10f7620 100644 ---- a/dlls/d3dx9_29/d3dx9_29.spec -+++ b/dlls/d3dx9_29/d3dx9_29.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_30/d3dx9_30.spec b/dlls/d3dx9_30/d3dx9_30.spec -index 0269caa..65aaeb5 100644 ---- a/dlls/d3dx9_30/d3dx9_30.spec -+++ b/dlls/d3dx9_30/d3dx9_30.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_31/d3dx9_31.spec b/dlls/d3dx9_31/d3dx9_31.spec -index be37e8f..30d84a8 100644 ---- a/dlls/d3dx9_31/d3dx9_31.spec -+++ b/dlls/d3dx9_31/d3dx9_31.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_32/d3dx9_32.spec b/dlls/d3dx9_32/d3dx9_32.spec -index 6d9e244..1ff0f41 100644 ---- a/dlls/d3dx9_32/d3dx9_32.spec -+++ b/dlls/d3dx9_32/d3dx9_32.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_33/d3dx9_33.spec b/dlls/d3dx9_33/d3dx9_33.spec -index 6d9e244..1ff0f41 100644 ---- a/dlls/d3dx9_33/d3dx9_33.spec -+++ b/dlls/d3dx9_33/d3dx9_33.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_34/d3dx9_34.spec b/dlls/d3dx9_34/d3dx9_34.spec -index 6d9e244..1ff0f41 100644 ---- a/dlls/d3dx9_34/d3dx9_34.spec -+++ b/dlls/d3dx9_34/d3dx9_34.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_35/d3dx9_35.spec b/dlls/d3dx9_35/d3dx9_35.spec -index 6d9e244..1ff0f41 100644 ---- a/dlls/d3dx9_35/d3dx9_35.spec -+++ b/dlls/d3dx9_35/d3dx9_35.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec -index 2db0152..20571b1 100644 ---- a/dlls/d3dx9_36/d3dx9_36.spec -+++ b/dlls/d3dx9_36/d3dx9_36.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_36/mesh.c b/dlls/d3dx9_36/mesh.c -index 3204ea7..b0b9846 100644 ---- a/dlls/d3dx9_36/mesh.c -+++ b/dlls/d3dx9_36/mesh.c -@@ -7528,6 +7528,18 @@ HRESULT WINAPI D3DXComputeNormals(struct ID3DXBaseMesh *mesh, const DWORD *adjac - } - - /************************************************************************* -+ * D3DXComputeNormalMap (D3DX9_36.@) -+ */ -+HRESULT WINAPI D3DXComputeNormalMap(IDirect3DTexture9 *texture, IDirect3DTexture9 *src_texture, -+ const PALETTEENTRY *src_palette, DWORD flags, DWORD channel, FLOAT amplitude) -+{ -+ FIXME("texture %p, src_texture %p, src_palette %p, flags %#x, channel %u, amplitude %f stub.\n", -+ texture, src_texture, src_palette, flags, channel, amplitude); -+ -+ return D3D_OK; -+} -+ -+/************************************************************************* - * D3DXIntersect (D3DX9_36.@) - */ - HRESULT WINAPI D3DXIntersect(ID3DXBaseMesh *mesh, const D3DXVECTOR3 *ray_pos, const D3DXVECTOR3 *ray_dir, -diff --git a/dlls/d3dx9_37/d3dx9_37.spec b/dlls/d3dx9_37/d3dx9_37.spec -index 2db0152..20571b1 100644 ---- a/dlls/d3dx9_37/d3dx9_37.spec -+++ b/dlls/d3dx9_37/d3dx9_37.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_38/d3dx9_38.spec b/dlls/d3dx9_38/d3dx9_38.spec -index 2db0152..20571b1 100644 ---- a/dlls/d3dx9_38/d3dx9_38.spec -+++ b/dlls/d3dx9_38/d3dx9_38.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_39/d3dx9_39.spec b/dlls/d3dx9_39/d3dx9_39.spec -index 2db0152..20571b1 100644 ---- a/dlls/d3dx9_39/d3dx9_39.spec -+++ b/dlls/d3dx9_39/d3dx9_39.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_40/d3dx9_40.spec b/dlls/d3dx9_40/d3dx9_40.spec -index 2db0152..20571b1 100644 ---- a/dlls/d3dx9_40/d3dx9_40.spec -+++ b/dlls/d3dx9_40/d3dx9_40.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_41/d3dx9_41.spec b/dlls/d3dx9_41/d3dx9_41.spec -index 2db0152..20571b1 100644 ---- a/dlls/d3dx9_41/d3dx9_41.spec -+++ b/dlls/d3dx9_41/d3dx9_41.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_42/d3dx9_42.spec b/dlls/d3dx9_42/d3dx9_42.spec -index 9a69e76..0e888d7 100644 ---- a/dlls/d3dx9_42/d3dx9_42.spec -+++ b/dlls/d3dx9_42/d3dx9_42.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) -diff --git a/dlls/d3dx9_43/d3dx9_43.spec b/dlls/d3dx9_43/d3dx9_43.spec -index 9a69e76..0e888d7 100644 ---- a/dlls/d3dx9_43/d3dx9_43.spec -+++ b/dlls/d3dx9_43/d3dx9_43.spec -@@ -22,7 +22,7 @@ - @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) - @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) - @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) --@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) -+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) - @ stdcall D3DXComputeNormals(ptr ptr) - @ stub D3DXComputeTangent(ptr long long long long ptr) - @ stub D3DXComputeTangentFrame(ptr long) --- -2.9.0 - diff --git a/patches/d3dx9_36-D3DXStubs/definition b/patches/d3dx9_36-D3DXStubs/definition index 2dcd609b..9428440a 100644 --- a/patches/d3dx9_36-D3DXStubs/definition +++ b/patches/d3dx9_36-D3DXStubs/definition @@ -1,2 +1 @@ -Fixes: [38352] Add stub for D3DXComputeNormalMap Fixes: [41697] Add stub for D3DXComputeTangent diff --git a/patches/libs-Unicode_Collation/0001-libs-Fix-most-problems-with-CompareString.patch b/patches/libs-Unicode_Collation/0001-libs-Fix-most-problems-with-CompareString.patch index 95b9ee6f..8146ee8d 100644 --- a/patches/libs-Unicode_Collation/0001-libs-Fix-most-problems-with-CompareString.patch +++ b/patches/libs-Unicode_Collation/0001-libs-Fix-most-problems-with-CompareString.patch @@ -1,4 +1,4 @@ -From a34d16145d16d83aa3edc0d8cbf59dfd40268738 Mon Sep 17 00:00:00 2001 +From c16727fda95fe208bfa5730d6a36e82c6d8d52a2 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Mon, 28 Jul 2003 07:39:25 -0500 Subject: libs: Fix most problems with CompareString. @@ -9,10 +9,10 @@ Subject: libs: Fix most problems with CompareString. 2 files changed, 34 insertions(+), 35 deletions(-) diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c -index 07d6f8c..97ed611 100644 +index efb4231..cdb935e 100644 --- a/dlls/kernel32/tests/locale.c +++ b/dlls/kernel32/tests/locale.c -@@ -1956,13 +1956,13 @@ static void test_CompareStringA(void) +@@ -1959,13 +1959,13 @@ static void test_CompareStringA(void) todo_wine ok(ret != CSTR_EQUAL, "\\2 vs \\1 expected unequal\n"); ret = CompareStringA(lcid, NORM_IGNORECASE | LOCALE_USE_CP_ACP, "#", -1, ".", -1); @@ -29,10 +29,10 @@ index 07d6f8c..97ed611 100644 lcid = MAKELCID(MAKELANGID(LANG_POLISH, SUBLANG_DEFAULT), SORT_DEFAULT); -@@ -5302,6 +5302,5 @@ START_TEST(locale) - test_GetSystemPreferredUILanguages(); +@@ -5490,6 +5490,5 @@ START_TEST(locale) test_GetThreadPreferredUILanguages(); test_GetUserPreferredUILanguages(); + test_FindNLSStringEx(); - /* this requires collation table patch to make it MS compatible */ - if (0) test_sorting(); + test_sorting(); @@ -168,5 +168,5 @@ index 465d740..f354a75 100644 0x0a130121, 0x0a140121, 0x02370121, 0x02350121, 0x03a30121, 0x03a40121, 0x03a50121, 0x024e0121, 0x02a10121, 0x0a150161, 0x0a290151, 0x0a3d0161, 0x0a490161, 0x0a650161, 0x0a910161, 0x0a990161, -- -2.9.0 +2.7.4 diff --git a/patches/ntdll-x86_64_ExceptionInformation/0003-ntdll-Translate-icebp-instruction-to-EXCEPTION_SINGL.patch b/patches/ntdll-x86_64_ExceptionInformation/0003-ntdll-Translate-icebp-instruction-to-EXCEPTION_SINGL.patch deleted file mode 100644 index e622213b..00000000 --- a/patches/ntdll-x86_64_ExceptionInformation/0003-ntdll-Translate-icebp-instruction-to-EXCEPTION_SINGL.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 9c89b126ffe944150dd643009b24b0140758fab3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Mon, 11 Sep 2017 03:07:45 +0200 -Subject: ntdll: Translate icebp instruction to EXCEPTION_SINGLE_STEP on x64. - ---- - dlls/ntdll/signal_x86_64.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c -index f434775df00..2e1eac2d671 100644 ---- a/dlls/ntdll/signal_x86_64.c -+++ b/dlls/ntdll/signal_x86_64.c -@@ -2815,6 +2815,12 @@ static void segv_handler( int signal, siginfo_t *siginfo, void *sigcontext ) - } - } - -+static inline DWORD is_icebp_instr( CONTEXT *context ) -+{ -+ const BYTE *instr = (BYTE *)context->Rip - 1; -+ return (*instr == 0xf1) ? EXCEPTION_SINGLE_STEP : 0; -+} -+ - /********************************************************************** - * trap_handler - * -@@ -2831,8 +2837,12 @@ static void trap_handler( int signal, siginfo_t *siginfo, void *sigcontext ) - rec->ExceptionCode = EXCEPTION_SINGLE_STEP; - break; - case TRAP_BRKPT: /* Breakpoint exception */ -+ { -+ CONTEXT *win_context = get_exception_context( rec ); -+ if ((rec->ExceptionCode = is_icebp_instr( win_context ))) break; - rec->ExceptionAddress = (char *)rec->ExceptionAddress - 1; /* back up over the int3 instruction */ - /* fall through */ -+ } - default: - rec->ExceptionCode = EXCEPTION_BREAKPOINT; - rec->NumberParameters = 1; --- -2.14.1 - diff --git a/patches/ntdll-x86_64_ExceptionInformation/0004-ntdll-Correctly-handle-privileged-instructions-on-x8.patch b/patches/ntdll-x86_64_ExceptionInformation/0004-ntdll-Correctly-handle-privileged-instructions-on-x8.patch deleted file mode 100644 index c9d228f9..00000000 --- a/patches/ntdll-x86_64_ExceptionInformation/0004-ntdll-Correctly-handle-privileged-instructions-on-x8.patch +++ /dev/null @@ -1,113 +0,0 @@ -From 597a7781f843f3f23b91c17ce895150ff2c0aa81 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Wed, 4 Oct 2017 01:22:19 +0200 -Subject: ntdll: Correctly handle privileged instructions on x86_64. - ---- - dlls/ntdll/signal_x86_64.c | 82 +++++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 81 insertions(+), 1 deletion(-) - -diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c -index d35c3e6663c..996e5728e7e 100644 ---- a/dlls/ntdll/signal_x86_64.c -+++ b/dlls/ntdll/signal_x86_64.c -@@ -2718,6 +2718,86 @@ static void raise_generic_exception( EXCEPTION_RECORD *rec, CONTEXT *context ) - } - - -+/*********************************************************************** -+ * is_privileged_instr -+ * -+ * Check if the fault location is a privileged instruction. -+ */ -+static inline DWORD is_privileged_instr( CONTEXT *context ) -+{ -+ const BYTE *instr = (BYTE *)context->Rip; -+ unsigned int prefix_count = 0; -+ -+ for (;;) switch(*instr) -+ { -+ /* instruction prefixes */ -+ case 0x2e: /* %cs: */ -+ case 0x36: /* %ss: */ -+ case 0x3e: /* %ds: */ -+ case 0x26: /* %es: */ -+ case 0x40: /* rex */ -+ case 0x41: /* rex */ -+ case 0x42: /* rex */ -+ case 0x43: /* rex */ -+ case 0x44: /* rex */ -+ case 0x45: /* rex */ -+ case 0x46: /* rex */ -+ case 0x47: /* rex */ -+ case 0x48: /* rex */ -+ case 0x49: /* rex */ -+ case 0x4a: /* rex */ -+ case 0x4b: /* rex */ -+ case 0x4c: /* rex */ -+ case 0x4d: /* rex */ -+ case 0x4e: /* rex */ -+ case 0x4f: /* rex */ -+ case 0x64: /* %fs: */ -+ case 0x65: /* %gs: */ -+ case 0x66: /* opcode size */ -+ case 0x67: /* addr size */ -+ case 0xf0: /* lock */ -+ case 0xf2: /* repne */ -+ case 0xf3: /* repe */ -+ if (++prefix_count >= 15) return EXCEPTION_ILLEGAL_INSTRUCTION; -+ instr++; -+ continue; -+ -+ case 0x0f: /* extended instruction */ -+ switch(instr[1]) -+ { -+ case 0x06: /* clts */ -+ case 0x08: /* invd */ -+ case 0x09: /* wbinvd */ -+ case 0x20: /* mov crX, reg */ -+ case 0x21: /* mov drX, reg */ -+ case 0x22: /* mov reg, crX */ -+ case 0x23: /* mov reg drX */ -+ return EXCEPTION_PRIV_INSTRUCTION; -+ } -+ return 0; -+ case 0x6c: /* insb (%dx) */ -+ case 0x6d: /* insl (%dx) */ -+ case 0x6e: /* outsb (%dx) */ -+ case 0x6f: /* outsl (%dx) */ -+ case 0xcd: /* int $xx */ -+ case 0xe4: /* inb al,XX */ -+ case 0xe5: /* in (e)ax,XX */ -+ case 0xe6: /* outb XX,al */ -+ case 0xe7: /* out XX,(e)ax */ -+ case 0xec: /* inb (%dx),%al */ -+ case 0xed: /* inl (%dx),%eax */ -+ case 0xee: /* outb %al,(%dx) */ -+ case 0xef: /* outl %eax,(%dx) */ -+ case 0xf4: /* hlt */ -+ case 0xfa: /* cli */ -+ case 0xfb: /* sti */ -+ return EXCEPTION_PRIV_INSTRUCTION; -+ default: -+ return 0; -+ } -+} -+ -+ - /*********************************************************************** - * handle_interrupt - * -@@ -2791,8 +2871,8 @@ static void segv_handler( int signal, siginfo_t *siginfo, void *sigcontext ) - { - CONTEXT *win_context = get_exception_context( rec ); - WORD err = ERROR_sig(ucontext); -+ if (!err && (rec->ExceptionCode = is_privileged_instr( win_context ))) break; - if ((err & 7) == 2 && handle_interrupt( err >> 3, rec, win_context )) break; -- rec->ExceptionCode = err ? EXCEPTION_ACCESS_VIOLATION : EXCEPTION_PRIV_INSTRUCTION; - rec->ExceptionCode = EXCEPTION_ACCESS_VIOLATION; - } - break; --- -2.14.1 - diff --git a/patches/ntdll-x86_64_ExceptionInformation/0005-ntdll-Handle-interrupt-0x2c-on-x86_64.patch b/patches/ntdll-x86_64_ExceptionInformation/0005-ntdll-Handle-interrupt-0x2c-on-x86_64.patch deleted file mode 100644 index 0c9d16a3..00000000 --- a/patches/ntdll-x86_64_ExceptionInformation/0005-ntdll-Handle-interrupt-0x2c-on-x86_64.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 89fb55baee8ee0ae595f940fdcf7e69a339b0b54 Mon Sep 17 00:00:00 2001 -From: Andrew Wesie -Date: Wed, 4 Oct 2017 01:51:09 +0200 -Subject: ntdll: Handle interrupt 0x2c on x86_64. - ---- - dlls/ntdll/signal_x86_64.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c -index 28f6d926a43..34d748582ef 100644 ---- a/dlls/ntdll/signal_x86_64.c -+++ b/dlls/ntdll/signal_x86_64.c -@@ -2804,6 +2804,9 @@ static inline BOOL handle_interrupt( unsigned int interrupt, EXCEPTION_RECORD *r - { - switch(interrupt) - { -+ case 0x2c: -+ rec->ExceptionCode = STATUS_ASSERTION_FAILURE; -+ return TRUE; - case 0x2d: - context->Rip += 3; - rec->ExceptionCode = EXCEPTION_BREAKPOINT; --- -2.14.1 - diff --git a/patches/ntdll-x86_64_ExceptionInformation/definition b/patches/ntdll-x86_64_ExceptionInformation/definition index f63c7c0b..86abb0f9 100644 --- a/patches/ntdll-x86_64_ExceptionInformation/definition +++ b/patches/ntdll-x86_64_ExceptionInformation/definition @@ -1 +1 @@ -Fixes: Translate icebp instruction to EXCEPTION_SINGLE_STEP on x86_64 +# Originally separated from ntdll-Builtin_Prot, for unclear reasons. \ No newline at end of file diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 98b62d20..b7713a4c 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "dfae798d98bf7a8b45954e6d788928d067d0772e" + echo "c21c8525f9e69cfd48906ecc33b909490bd82783" } # Show version information @@ -3048,7 +3048,7 @@ fi # | This patchset fixes the following Wine bugs: # | * [#42553] Implement BCrypt ECB chaining mode # | * [#39582] Implement BCrypt RSA provider -# | * [#44053] Implement BCryptImportKey and BCryptExportKey +# | * [#43605] Implement elliptic curve (ECDSA) cryptography # | # | Modified files: # | * dlls/bcrypt/bcrypt.spec, dlls/bcrypt/bcrypt_main.c, dlls/bcrypt/tests/bcrypt.c, dlls/ncrypt/ncrypt.spec, @@ -3672,7 +3672,6 @@ fi # Patchset d3dx9_36-D3DXStubs # | # | This patchset fixes the following Wine bugs: -# | * [#38352] Add stub for D3DXComputeNormalMap # | * [#41697] Add stub for D3DXComputeTangent # | # | Modified files: @@ -3684,10 +3683,8 @@ fi # | dlls/d3dx9_43/d3dx9_43.spec # | if test "$enable_d3dx9_36_D3DXStubs" -eq 1; then - patch_apply d3dx9_36-D3DXStubs/0001-d3dx9_36-Add-stub-for-D3DXComputeNormalMap.patch patch_apply d3dx9_36-D3DXStubs/0003-d3dx9-Implement-D3DXComputeTangent.patch ( - printf '%s\n' '+ { "Christian Costa", "d3dx9_36: Add stub for D3DXComputeNormalMap.", 1 },'; printf '%s\n' '+ { "Alistair Leslie-Hughes", "d3dx9: Implement D3DXComputeTangent.", 1 },'; ) >> "$patchlist" fi @@ -5386,14 +5383,8 @@ fi # | if test "$enable_ntdll_x86_64_ExceptionInformation" -eq 1; then patch_apply ntdll-x86_64_ExceptionInformation/0001-ntdll-Set-proper-ExceptionInformation-0-for-x86_64-e.patch - patch_apply ntdll-x86_64_ExceptionInformation/0003-ntdll-Translate-icebp-instruction-to-EXCEPTION_SINGL.patch - patch_apply ntdll-x86_64_ExceptionInformation/0004-ntdll-Correctly-handle-privileged-instructions-on-x8.patch - patch_apply ntdll-x86_64_ExceptionInformation/0005-ntdll-Handle-interrupt-0x2c-on-x86_64.patch ( printf '%s\n' '+ { "Sebastian Lackner", "ntdll: Set proper ExceptionInformation[0] for x86_64 exceptions.", 1 },'; - printf '%s\n' '+ { "Michael Müller", "ntdll: Translate icebp instruction to EXCEPTION_SINGLE_STEP on x64.", 1 },'; - printf '%s\n' '+ { "Sebastian Lackner", "ntdll: Correctly handle privileged instructions on x86_64.", 1 },'; - printf '%s\n' '+ { "Andrew Wesie", "ntdll: Handle interrupt 0x2c on x86_64.", 1 },'; ) >> "$patchlist" fi @@ -8127,9 +8118,6 @@ fi # Patchset windowscodecs-JPEG_Decoder # | -# | This patchset fixes the following Wine bugs: -# | * [#43520] Fix JPEG decoder and implement support for CMYK to BGR conversion -# | # | Modified files: # | * dlls/windowscodecs/converter.c, dlls/windowscodecs/jpegformat.c # | diff --git a/patches/windowscodecs-JPEG_Decoder/definition b/patches/windowscodecs-JPEG_Decoder/definition index 3014ef11..b47c5ecf 100644 --- a/patches/windowscodecs-JPEG_Decoder/definition +++ b/patches/windowscodecs-JPEG_Decoder/definition @@ -1 +1 @@ -Fixes: [43520] Fix JPEG decoder and implement support for CMYK to BGR conversion +Fixes: Implement support for CMYK to BGR conversion in JPEG decoder diff --git a/patches/wined3d-1DTextures/0004-wined3d-Create-dummy-1d-textures-and-surfaces.patch b/patches/wined3d-1DTextures/0004-wined3d-Create-dummy-1d-textures-and-surfaces.patch index 3d6b25a9..848a11b3 100644 --- a/patches/wined3d-1DTextures/0004-wined3d-Create-dummy-1d-textures-and-surfaces.patch +++ b/patches/wined3d-1DTextures/0004-wined3d-Create-dummy-1d-textures-and-surfaces.patch @@ -1,12 +1,12 @@ -From 18a3c7cf10114b82a8bc90b86a60633d49c7b3f2 Mon Sep 17 00:00:00 2001 +From e9f05f59ca4858a809dc21dee963ca8835515a4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 25 Aug 2016 19:24:47 +0200 Subject: [PATCH] wined3d: Create dummy 1d textures and surfaces. --- dlls/wined3d/resource.c | 1 + - dlls/wined3d/texture.c | 165 ++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 166 insertions(+) + dlls/wined3d/texture.c | 163 ++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 164 insertions(+) diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c index 97f7aec..f340217 100644 @@ -21,10 +21,10 @@ index 97f7aec..f340217 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 37a6b06..768b7fd 100644 +index c520995..e901c32 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c -@@ -1764,6 +1764,45 @@ void wined3d_texture_upload_data(struct wined3d_texture *texture, unsigned int s +@@ -1776,6 +1776,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 37a6b06..768b7fd 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) -@@ -2166,6 +2205,128 @@ static const struct wined3d_resource_ops texture_resource_ops = +@@ -2182,6 +2221,126 @@ static const struct wined3d_resource_ops texture_resource_ops = texture_resource_sub_resource_unmap, }; @@ -171,8 +171,6 @@ index 37a6b06..768b7fd 100644 + + surface = &surfaces[idx]; + surface->container = texture; -+ surface->texture_level = i; -+ surface->texture_layer = j; + + sub_resource = &texture->sub_resources[idx]; + sub_resource->locations = WINED3D_LOCATION_DISCARDED; @@ -199,7 +197,7 @@ index 37a6b06..768b7fd 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) -@@ -3074,6 +3235,10 @@ HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct +@@ -3090,6 +3249,10 @@ HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct switch (desc->resource_type) { diff --git a/patches/wined3d-1DTextures/0005-wined3d-Implement-preparation-for-1d-textures.patch b/patches/wined3d-1DTextures/0005-wined3d-Implement-preparation-for-1d-textures.patch index 8156f949..a947d8ec 100644 --- a/patches/wined3d-1DTextures/0005-wined3d-Implement-preparation-for-1d-textures.patch +++ b/patches/wined3d-1DTextures/0005-wined3d-Implement-preparation-for-1d-textures.patch @@ -1,17 +1,17 @@ -From 451b07b05e97bbd1f198ee0dadbf6860e82bce59 Mon Sep 17 00:00:00 2001 +From 678e1311567041e679e9cd56e22eb2345cca62b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sat, 27 Aug 2016 22:22:26 +0200 Subject: [PATCH] wined3d: Implement preparation for 1d textures. --- - dlls/wined3d/texture.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 56 insertions(+), 1 deletion(-) + dlls/wined3d/texture.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c -index ead97c8..9e9ab32 100644 +index e901c32..5472aea 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c -@@ -1660,7 +1660,62 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in +@@ -1800,7 +1800,63 @@ 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) { @@ -54,19 +54,20 @@ index ead97c8..9e9ab32 100644 + for (i = 0; i < sub_count; ++i) + { + GLenum target; -+ struct wined3d_surface *surface = texture->sub_resources[i].u.surface; -+ width = wined3d_texture_get_level_width(texture, surface->texture_level); ++ unsigned int level = i % texture->level_count; ++ ++ width = wined3d_texture_get_level_width(texture, level); + target = wined3d_texture_get_sub_resource_target(texture, i); + + if (texture->target == GL_TEXTURE_1D_ARRAY) + { -+ gl_info->gl_ops.gl.p_glTexImage2D(target, surface->texture_level, ++ gl_info->gl_ops.gl.p_glTexImage2D(target, level, + internal, width, texture->layer_count, 0, format->glFormat, format->glType, NULL); + checkGLcall("glTexImage2D"); + } + else + { -+ gl_info->gl_ops.gl.p_glTexImage1D(target, surface->texture_level, ++ gl_info->gl_ops.gl.p_glTexImage1D(target, level, + internal, width, 0, format->glFormat, format->glType, NULL); + checkGLcall("glTexImage1D"); + } @@ -76,5 +77,5 @@ index ead97c8..9e9ab32 100644 static void texture1d_cleanup_sub_resources(struct wined3d_texture *texture) -- -1.9.1 +2.7.4 diff --git a/patches/wined3d-1DTextures/0006-wined3d-Implement-uploading-for-1d-textures.patch b/patches/wined3d-1DTextures/0006-wined3d-Implement-uploading-for-1d-textures.patch index c3988421..269d547b 100644 --- a/patches/wined3d-1DTextures/0006-wined3d-Implement-uploading-for-1d-textures.patch +++ b/patches/wined3d-1DTextures/0006-wined3d-Implement-uploading-for-1d-textures.patch @@ -1,4 +1,4 @@ -From a8eaed59c46311213da87a7bdf955be7516e3a1a Mon Sep 17 00:00:00 2001 +From 4675a6d20ed96591a5f0bcbf3c6e5330aa057102 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sat, 27 Aug 2016 22:25:20 +0200 Subject: [PATCH] wined3d: Implement uploading for 1d textures. @@ -9,10 +9,10 @@ Subject: [PATCH] wined3d: Implement uploading for 1d textures. 2 files changed, 71 insertions(+), 2 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index 1662604..352d2e7 100644 +index 2962aa1..0177488 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c -@@ -4268,7 +4268,8 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str +@@ -4263,7 +4263,8 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str height = 1; depth = 1; } @@ -23,17 +23,17 @@ index 1662604..352d2e7 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 9e9ab32..63658a8 100644 +index 5472aea..4ccf3d6 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c -@@ -1644,8 +1644,76 @@ static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int +@@ -1784,8 +1784,76 @@ 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) { - FIXME("texture %p, sub_resource_idx %u, context %p, box %p, data {%#x:%p}, row_pitch %#x, slice_pitch %#x: stub.\n", -+ struct wined3d_surface *surface = texture->sub_resources[sub_resource_idx].u.surface; + const struct wined3d_format *format = texture->resource.format; + unsigned int level = sub_resource_idx % texture->level_count; ++ unsigned int layer = sub_resource_idx / texture->level_count; + const struct wined3d_gl_info *gl_info = context->gl_info; + const void *mem = data->addr; + void *converted_mem = NULL; @@ -83,7 +83,7 @@ index 9e9ab32..63658a8 100644 + { + gl_info->gl_ops.gl.p_glPixelStorei(GL_UNPACK_ROW_LENGTH, row_pitch / format->byte_count); + -+ gl_info->gl_ops.gl.p_glTexSubImage2D(target, level, x, surface->texture_layer, update_w, 1, format->glFormat, format->glType, mem); ++ gl_info->gl_ops.gl.p_glTexSubImage2D(target, level, x, layer, update_w, 1, format->glFormat, format->glType, mem); + checkGLcall("glTexSubImage2D"); + + gl_info->gl_ops.gl.p_glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); @@ -105,5 +105,5 @@ index 9e9ab32..63658a8 100644 /* Context activation is done by the caller. */ -- -1.9.1 +2.7.4 diff --git a/patches/wined3d-1DTextures/0008-wined3d-Implement-downloading-from-s-rgb-1d-textures.patch b/patches/wined3d-1DTextures/0008-wined3d-Implement-downloading-from-s-rgb-1d-textures.patch index cd4e14f0..1dca0016 100644 --- a/patches/wined3d-1DTextures/0008-wined3d-Implement-downloading-from-s-rgb-1d-textures.patch +++ b/patches/wined3d-1DTextures/0008-wined3d-Implement-downloading-from-s-rgb-1d-textures.patch @@ -1,4 +1,4 @@ -From b4b46e405c719c895276f10c68ddab7deeab6606 Mon Sep 17 00:00:00 2001 +From 7413752707a47be44e0aa11c670b5f7993ac8b91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sat, 27 Aug 2016 22:41:05 +0200 Subject: [PATCH] wined3d: Implement downloading from (s)rgb 1d textures to @@ -9,18 +9,18 @@ Subject: [PATCH] wined3d: Implement downloading from (s)rgb 1d textures to 1 file changed, 114 insertions(+) diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c -index 82ba0d4..da0e7d3a 100644 +index af97b38..7018343 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c -@@ -1717,6 +1717,78 @@ static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int +@@ -1857,6 +1857,78 @@ static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int } /* Context activation is done by the caller. */ +static void texture1d_download_data(struct wined3d_texture *texture, unsigned int sub_resource_idx, + const struct wined3d_context *context, const struct wined3d_bo_address *data) +{ -+ struct wined3d_surface *surface = texture->sub_resources[sub_resource_idx].u.surface; + const struct wined3d_format *format = texture->resource.format; ++ unsigned int layer = sub_resource_idx / texture->level_count; + const struct wined3d_gl_info *gl_info = context->gl_info; + struct wined3d_texture_sub_resource *sub_resource; + BYTE *temporary_mem = NULL; @@ -64,7 +64,7 @@ index 82ba0d4..da0e7d3a 100644 + + if (temporary_mem) + { -+ void *src_data = temporary_mem + surface->texture_layer * sub_resource->size; ++ void *src_data = temporary_mem + layer * sub_resource->size; + if (data->buffer_object) + { + GL_EXTCALL(glBindBuffer(GL_PIXEL_PACK_BUFFER, data->buffer_object)); @@ -91,7 +91,7 @@ index 82ba0d4..da0e7d3a 100644 static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, struct wined3d_context *context, DWORD location) { -@@ -1779,6 +1851,48 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in +@@ -1919,6 +1991,48 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in } break; @@ -141,5 +141,5 @@ index 82ba0d4..da0e7d3a 100644 FIXME("Implement %s loading from %s.\n", wined3d_debug_location(location), wined3d_debug_location(sub_resource->locations)); -- -1.9.1 +2.7.4 diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index 80f59114..9a1abf1f 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -19,7 +19,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c }; struct wined3d_cs_add_dirty_texture_region -@@ -2256,6 +2259,53 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r +@@ -2249,6 +2252,53 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r unsigned int slice_pitch) { struct wined3d_cs_update_sub_resource *op; @@ -73,7 +73,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op = cs->ops->require_space(cs, sizeof(*op), WINED3D_CS_QUEUE_MAP); op->opcode = WINED3D_CS_OP_UPDATE_SUB_RESOURCE; -@@ -2269,8 +2319,10 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r +@@ -2262,8 +2312,10 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r wined3d_resource_acquire(resource); cs->ops->submit(cs, WINED3D_CS_QUEUE_MAP); @@ -84,7 +84,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c cs->ops->finish(cs, WINED3D_CS_QUEUE_MAP); } -@@ -2453,6 +2505,13 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void +@@ -2446,6 +2498,13 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void /* WINED3D_CS_OP_GENERATE_MIPMAPS */ wined3d_cs_exec_generate_mipmaps, }; @@ -98,7 +98,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size, enum wined3d_cs_queue_id queue_id) { if (size > (cs->data_size - cs->end)) -@@ -2506,6 +2565,9 @@ static void wined3d_cs_st_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id +@@ -2499,6 +2558,9 @@ static void wined3d_cs_st_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id static const struct wined3d_cs_ops wined3d_cs_st_ops = { @@ -108,7 +108,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c wined3d_cs_st_require_space, wined3d_cs_st_submit, wined3d_cs_st_finish, -@@ -2539,6 +2601,21 @@ static void wined3d_cs_mt_submit(struct wined3d_cs *cs, enum wined3d_cs_queue_id +@@ -2532,6 +2594,21 @@ static void wined3d_cs_mt_submit(struct wined3d_cs *cs, enum wined3d_cs_queue_id wined3d_cs_queue_submit(&cs->queue[queue_id], cs); } @@ -130,7 +130,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c static void *wined3d_cs_queue_require_space(struct wined3d_cs_queue *queue, size_t size, struct wined3d_cs *cs) { size_t queue_size = ARRAY_SIZE(queue->data); -@@ -2600,6 +2677,16 @@ static void *wined3d_cs_queue_require_space(struct wined3d_cs_queue *queue, size +@@ -2593,6 +2670,16 @@ static void *wined3d_cs_queue_require_space(struct wined3d_cs_queue *queue, size return packet->data; } @@ -147,7 +147,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, enum wined3d_cs_queue_id queue_id) { if (cs->thread_id == GetCurrentThreadId()) -@@ -2619,6 +2706,9 @@ static void wined3d_cs_mt_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id +@@ -2612,6 +2699,9 @@ static void wined3d_cs_mt_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id static const struct wined3d_cs_ops wined3d_cs_mt_ops = { @@ -271,7 +271,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c -@@ -2406,7 +2406,11 @@ BOOL texture2d_load_texture(struct wined3d_texture *texture, unsigned int sub_re +@@ -2393,7 +2393,11 @@ BOOL texture2d_load_texture(struct wined3d_texture *texture, unsigned int sub_re /* Don't use PBOs for converted surfaces. During PBO conversion we look at * WINED3D_TEXTURE_CONVERTED but it isn't set (yet) in all cases it is * getting called. */ @@ -286,7 +286,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c --- a/dlls/wined3d/swapchain.c +++ b/dlls/wined3d/swapchain.c -@@ -476,7 +476,11 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, +@@ -475,7 +475,11 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, if (swapchain->render_to_fbo) swapchain_blit(swapchain, context, src_rect, dst_rect); @@ -395,7 +395,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } if (!context && !list_empty(&texture->renderbuffers)) -@@ -1583,11 +1621,16 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT +@@ -1595,11 +1633,16 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT /* Context activation is done by the caller. */ static void wined3d_texture_prepare_buffer_object(struct wined3d_texture *texture, @@ -412,7 +412,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (sub_resource->buffer_object) return; -@@ -1599,6 +1642,16 @@ static void wined3d_texture_prepare_buffer_object(struct wined3d_texture *textur +@@ -1611,6 +1654,16 @@ static void wined3d_texture_prepare_buffer_object(struct wined3d_texture *textur TRACE("Created buffer object %u for texture %p, sub-resource %u.\n", sub_resource->buffer_object, texture, sub_resource_idx); @@ -429,7 +429,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } static void wined3d_texture_force_reload(struct wined3d_texture *texture) -@@ -1697,7 +1750,11 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned +@@ -1709,7 +1762,11 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned return TRUE; case WINED3D_LOCATION_BUFFER: @@ -441,7 +441,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c return TRUE; case WINED3D_LOCATION_TEXTURE_RGB: -@@ -1996,7 +2053,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in +@@ -2008,7 +2065,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in } else if (sub_resource->locations & WINED3D_LOCATION_BUFFER) { @@ -453,7 +453,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c wined3d_texture_bind_and_dirtify(texture, context, location == WINED3D_LOCATION_TEXTURE_SRGB); 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); -@@ -2041,7 +2102,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in +@@ -2053,7 +2114,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in case WINED3D_LOCATION_BUFFER: if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB)) { @@ -465,7 +465,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB) wined3d_texture_bind_and_dirtify(texture, context, FALSE); -@@ -2339,8 +2404,13 @@ static void wined3d_texture_unload(struct wined3d_resource *resource) +@@ -2356,8 +2421,13 @@ static void wined3d_texture_unload(struct wined3d_resource *resource) wined3d_texture_invalidate_location(texture, i, ~WINED3D_LOCATION_DISCARDED); } @@ -479,7 +479,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } LIST_FOR_EACH_ENTRY_SAFE(entry, entry2, &texture->renderbuffers, struct wined3d_renderbuffer_entry, entry) -@@ -3095,7 +3165,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in +@@ -3110,7 +3180,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in } else if (sub_resource->locations & WINED3D_LOCATION_BUFFER) { @@ -491,7 +491,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c wined3d_texture_bind_and_dirtify(texture, context, location == WINED3D_LOCATION_TEXTURE_SRGB); wined3d_texture_get_pitch(texture, sub_resource_idx, &row_pitch, &slice_pitch); -@@ -3141,7 +3215,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in +@@ -3156,7 +3230,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in case WINED3D_LOCATION_BUFFER: if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB)) { @@ -503,7 +503,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB) wined3d_texture_bind_and_dirtify(texture, context, FALSE); -@@ -3344,8 +3422,19 @@ HRESULT CDECL wined3d_texture_blt(struct wined3d_texture *dst_texture, unsigned +@@ -3359,8 +3437,19 @@ HRESULT CDECL wined3d_texture_blt(struct wined3d_texture *dst_texture, unsigned if (dst_texture->sub_resources[dst_sub_resource_idx].map_count || src_texture->sub_resources[src_sub_resource_idx].map_count) { @@ -571,7 +571,7 @@ diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -2898,6 +2898,16 @@ struct wined3d_dummy_textures +@@ -2906,6 +2906,16 @@ struct wined3d_dummy_textures GLuint tex_2d_ms_array; }; @@ -588,7 +588,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h #define WINED3D_UNMAPPED_STAGE ~0u /* Multithreaded flag. Removed from the public header to signal that -@@ -2998,6 +3008,12 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL +@@ -3006,6 +3016,12 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL void device_resource_add(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN; void device_resource_released(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN; void device_invalidate_state(const struct wined3d_device *device, DWORD state) DECLSPEC_HIDDEN; @@ -601,7 +601,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state) { -@@ -3200,7 +3216,11 @@ struct wined3d_texture +@@ -3208,7 +3224,11 @@ struct wined3d_texture unsigned int map_count; DWORD locations; @@ -613,7 +613,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h } sub_resources[1]; }; -@@ -3531,6 +3551,9 @@ struct wined3d_cs_queue +@@ -3527,6 +3547,9 @@ struct wined3d_cs_queue struct wined3d_cs_ops { diff --git a/patches/wined3d-Dual_Source_Blending/0003-wined3d-Implement-dual-source-blending.patch b/patches/wined3d-Dual_Source_Blending/0003-wined3d-Implement-dual-source-blending.patch index ba419b42..742cd5df 100644 --- a/patches/wined3d-Dual_Source_Blending/0003-wined3d-Implement-dual-source-blending.patch +++ b/patches/wined3d-Dual_Source_Blending/0003-wined3d-Implement-dual-source-blending.patch @@ -1,4 +1,4 @@ -From 6a156acdcf5ef4f39472d736878f860fe9fa8aa0 Mon Sep 17 00:00:00 2001 +From 248a96ea17ba5998b1b2f759fec5736f43cf86ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Fri, 18 Aug 2017 23:51:59 +0200 Subject: [PATCH] wined3d: Implement dual source blending. @@ -14,10 +14,10 @@ Subject: [PATCH] wined3d: Implement dual source blending. 7 files changed, 92 insertions(+), 16 deletions(-) diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c -index 1a9053e50d..77dbdb5f80 100644 +index 3732fbf..15c8abd 100644 --- a/dlls/d3d11/tests/d3d11.c +++ b/dlls/d3d11/tests/d3d11.c -@@ -26215,7 +26215,7 @@ static void test_dual_blending(void) +@@ -25560,7 +25560,7 @@ static void test_dual_blending(void) ID3D11DeviceContext_ClearRenderTargetView(context, rtv[1], white); ID3D11DeviceContext_Draw(context, 3, 0); @@ -27,10 +27,10 @@ index 1a9053e50d..77dbdb5f80 100644 ID3D11BlendState_Release(blend_state); diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c -index f51ad59c92..f72ac415cb 100644 +index 73327bd..384266b 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c -@@ -3154,10 +3154,19 @@ static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const +@@ -3131,10 +3131,19 @@ static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const else if (!context->render_offscreen) return context_generate_rt_mask_from_resource(rts[0]->resource); @@ -52,10 +52,10 @@ index f51ad59c92..f72ac415cb 100644 { i = wined3d_bit_scan(&mask); diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c -index a75be3039c..bd2bc5b410 100644 +index 7c3a07c..cc45ed7 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c -@@ -3541,6 +3541,12 @@ static void wined3d_adapter_init_limits(struct wined3d_gl_info *gl_info) +@@ -3545,6 +3545,12 @@ static void wined3d_adapter_init_limits(struct wined3d_gl_info *gl_info) gl_info->limits.buffers = min(MAX_RENDER_TARGET_VIEWS, gl_max); TRACE("Max draw buffers: %u.\n", gl_max); } @@ -68,7 +68,7 @@ index a75be3039c..bd2bc5b410 100644 if (gl_info->supported[ARB_MULTITEXTURE]) { if (gl_info->supported[WINED3D_GL_LEGACY_CONTEXT]) -@@ -4323,6 +4329,10 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter, +@@ -4340,6 +4346,10 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter, for (i = 0; i < gl_info->limits.buffers; ++i) adapter->d3d_info.valid_rt_mask |= (1u << i); @@ -80,7 +80,7 @@ index a75be3039c..bd2bc5b410 100644 { /* We do not want to deal with re-creating immutable texture storage for color keying emulation. */ diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c -index a571405816..670a50e992 100644 +index 7edec82..7f7ad3f 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -3008,6 +3008,7 @@ static void shader_glsl_get_register_name(const struct wined3d_shader_register * @@ -152,7 +152,7 @@ index a571405816..670a50e992 100644 } } diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c -index 66e1bbf882..0513c9e205 100644 +index 66e1bbf..0513c9e 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c @@ -4011,6 +4011,8 @@ void find_ps_compile_args(const struct wined3d_state *state, const struct wined3 @@ -165,7 +165,7 @@ index 66e1bbf882..0513c9e205 100644 static HRESULT pixel_shader_init(struct wined3d_shader *shader, struct wined3d_device *device, diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c -index ace6f3e566..2ce8c6fd7e 100644 +index 486d22a..4ecd336 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -534,12 +534,14 @@ static void state_blend(struct wined3d_context *context, const struct wined3d_st @@ -208,7 +208,7 @@ index ace6f3e566..2ce8c6fd7e 100644 state->render_states[WINED3D_RS_SRCBLEND], state->render_states[WINED3D_RS_DESTBLEND], rt_format); diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index 5c413549aa..cb76e0faf5 100644 +index c008124..098be97 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -194,6 +194,7 @@ struct wined3d_d3d_info @@ -229,17 +229,17 @@ index 5c413549aa..cb76e0faf5 100644 }; enum fog_src_type -@@ -1911,7 +1913,8 @@ struct wined3d_context - DWORD transform_feedback_paused : 1; +@@ -1912,7 +1914,8 @@ struct wined3d_context DWORD shader_update_mask : 6; /* WINED3D_SHADER_TYPE_COUNT, 6 */ DWORD clip_distance_mask : 8; /* MAX_CLIP_DISTANCES, 8 */ -- DWORD padding : 9; + DWORD last_was_ffp_blit : 1; +- DWORD padding : 8; + DWORD last_was_dual_blend : 1; -+ DWORD padding : 8; ++ DWORD padding : 7; + DWORD constant_update_mask; DWORD numbered_array_mask; - GLenum tracking_parm; /* Which source is tracking current colour */ -@@ -2512,6 +2515,7 @@ struct wined3d_fbo_ops +@@ -2521,6 +2524,7 @@ struct wined3d_fbo_ops struct wined3d_gl_limits { UINT buffers; @@ -247,7 +247,7 @@ index 5c413549aa..cb76e0faf5 100644 UINT lights; UINT textures; UINT texture_coords; -@@ -2855,6 +2859,22 @@ struct wined3d_state +@@ -2867,6 +2871,22 @@ struct wined3d_state struct wined3d_rasterizer_state *rasterizer_state; }; @@ -271,5 +271,5 @@ index 5c413549aa..cb76e0faf5 100644 { GLuint tex_2d; -- -2.16.1 +2.7.4 diff --git a/patches/wined3d-WINED3D_RS_COLORWRITEENABLE/0001-wined3d-Implement-all-8-d3d11-color-write-masks.patch b/patches/wined3d-WINED3D_RS_COLORWRITEENABLE/0001-wined3d-Implement-all-8-d3d11-color-write-masks.patch index c432039b..8ec2acd0 100644 --- a/patches/wined3d-WINED3D_RS_COLORWRITEENABLE/0001-wined3d-Implement-all-8-d3d11-color-write-masks.patch +++ b/patches/wined3d-WINED3D_RS_COLORWRITEENABLE/0001-wined3d-Implement-all-8-d3d11-color-write-masks.patch @@ -1,4 +1,4 @@ -From 2ed127d65bdd85581d8d7fb50bde99a8c1354268 Mon Sep 17 00:00:00 2001 +From 40043e895e7e66e43589ac25efc7dade42690656 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 20 Jul 2017 13:50:07 +0200 Subject: [PATCH] wined3d: Implement all 8 d3d11 color write masks. @@ -6,7 +6,7 @@ Subject: [PATCH] wined3d: Implement all 8 d3d11 color write masks. --- dlls/d3d11/device.c | 29 ++++++++++----------- dlls/d3d11/state.c | 4 --- - dlls/wined3d/context.c | 8 +++--- + dlls/wined3d/context.c | 10 +++----- dlls/wined3d/device.c | 6 ++--- dlls/wined3d/state.c | 57 +++++++++++++++++++----------------------- dlls/wined3d/stateblock.c | 10 +++++--- @@ -14,7 +14,7 @@ Subject: [PATCH] wined3d: Implement all 8 d3d11 color write masks. dlls/wined3d/utils.c | 6 ++++- dlls/wined3d/wined3d_private.h | 1 + include/wine/wined3d.h | 14 ++++++++++- - 10 files changed, 72 insertions(+), 70 deletions(-) + 10 files changed, 73 insertions(+), 71 deletions(-) diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c index 835ea8b..2ef9b46 100644 @@ -86,23 +86,32 @@ index a14c9d3..2bec92e 100644 /* glEnableIndexedEXT(GL_BLEND, ...) */ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c -index 60bf52b..15981ea 100644 +index 6530b6f..15eb449 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c -@@ -2587,10 +2587,8 @@ static void SetupForBlit(const struct wined3d_device *device, struct wined3d_con +@@ -2733,7 +2733,7 @@ void context_apply_blit_state(struct wined3d_context *context, const struct wine + const struct wined3d_gl_info *gl_info = context->gl_info; + struct wined3d_texture *rt = context->current_rt.texture; + DWORD rt_mask, *cur_mask; +- unsigned int sampler; ++ unsigned int i, sampler; + SIZE rt_size; + + TRACE("Setting up context %p for blitting.\n", context); +@@ -2832,10 +2832,8 @@ void context_apply_blit_state(struct wined3d_context *context, const struct wine + context_invalidate_state(context, STATE_RENDER(WINED3D_RS_POINTSPRITEENABLE)); } - gl_info->gl_ops.gl.p_glColorMask(GL_TRUE, GL_TRUE,GL_TRUE,GL_TRUE); - checkGLcall("glColorMask"); + gl_info->gl_ops.gl.p_glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); - context_invalidate_state(context, STATE_RENDER(WINED3D_RS_COLORWRITEENABLE)); - context_invalidate_state(context, STATE_RENDER(WINED3D_RS_COLORWRITEENABLE1)); - context_invalidate_state(context, STATE_RENDER(WINED3D_RS_COLORWRITEENABLE2)); - context_invalidate_state(context, STATE_RENDER(WINED3D_RS_COLORWRITEENABLE3)); + for (i = 0; i < MAX_RENDER_TARGETS; ++i) + context_invalidate_state(context, STATE_RENDER(WINED3D_RS_COLORWRITE(i))); - if (gl_info->supported[EXT_SECONDARY_COLOR]) - { - gl_info->gl_ops.gl.p_glDisable(GL_COLOR_SUM_EXT); -@@ -4829,7 +4827,7 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s + + context->last_was_rhw = TRUE; + context_invalidate_state(context, STATE_VDECL); /* because of last_was_rhw = TRUE */ +@@ -4812,7 +4810,7 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s if (!(rtv = fb->render_targets[i]) || rtv->format->id == WINED3DFMT_NULL) continue; @@ -269,10 +278,10 @@ index b9efcec..c9b3527 100644 /* Texture Stage States - Put directly into state block, we will call function below */ for (i = 0; i < MAX_TEXTURES; ++i) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index fa25b03..c46b9b1 100644 +index b0ccfb8..47275e5 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c -@@ -378,6 +378,7 @@ static void texture2d_blt_fbo(const struct wined3d_device *device, struct wined3 +@@ -365,6 +365,7 @@ static void texture2d_blt_fbo(const struct wined3d_device *device, struct wined3 GLenum gl_filter; GLenum buffer; RECT s, d; @@ -280,7 +289,7 @@ index fa25b03..c46b9b1 100644 TRACE("device %p, context %p, filter %s, src_texture %p, src_sub_resource_idx %u, src_location %s, " "src_rect %s, dst_texture %p, dst_sub_resource_idx %u, dst_location %s, dst_rect %s.\n", -@@ -490,10 +491,8 @@ static void texture2d_blt_fbo(const struct wined3d_device *device, struct wined3 +@@ -477,10 +478,8 @@ static void texture2d_blt_fbo(const struct wined3d_device *device, struct wined3 context_invalidate_state(context, STATE_FRAMEBUFFER); gl_info->gl_ops.gl.p_glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); @@ -321,7 +330,7 @@ index 304214f..7cb2007 100644 D3DSTATE_TO_STR(WINED3D_RS_SRGBWRITEENABLE); D3DSTATE_TO_STR(WINED3D_RS_DEPTHBIAS); diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index e3d669a..45a7903 100644 +index 4f02ae4..628da26 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -276,6 +276,7 @@ static inline enum complex_fixup get_complex_fixup(struct color_fixup_desc fixup @@ -333,7 +342,7 @@ index e3d669a..45a7903 100644 struct min_lookup { diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h -index 8864965..58da08c 100644 +index 23fffdf..e47eeb6 100644 --- a/include/wine/wined3d.h +++ b/include/wine/wined3d.h @@ -388,8 +388,20 @@ enum wined3d_render_state