Compare commits

...

76 Commits
v8.5 ... v8.12

Author SHA1 Message Date
Alistair Leslie-Hughes
d745d08cd7 Release v8.12 2023-07-09 12:16:45 +10:00
Alistair Leslie-Hughes
a6448966cf Added dinput-scancode patchset 2023-07-08 15:20:31 +10:00
Alistair Leslie-Hughes
01fbf6d356 Rebase against aaf304f2441ebe52834fdda2b8a02a5349d2ca43. 2023-07-08 10:49:44 +10:00
Alistair Leslie-Hughes
e57244a59e Updated vkd3d-latest patchset
Added missed files to patch.
2023-07-07 17:34:56 +10:00
Alistair Leslie-Hughes
fe6a869e0b Updated vkd3d patchset 2023-07-07 16:26:35 +10:00
Alistair Leslie-Hughes
a45cfa1ee2 Rebase against 9617c784b9d7ffa88182c24aa2f110a6867aa67d. 2023-07-07 14:27:32 +10:00
Alistair Leslie-Hughes
abbfbb8e15 Disbale ntdll-Syscall_Emulation patchset
Causing issues with Steam loading.
2023-07-05 13:45:56 +10:00
Alistair Leslie-Hughes
6882ba5e7b Rebase against f4a8ad89d43646a8d109da5747dfb1a92a6d8cd1. 2023-07-05 13:05:46 +10:00
Alistair Leslie-Hughes
b97718a0a9 Rebase against 3d28f9d362e6d9871747231b210c559536bb6dd4. 2023-06-30 08:35:45 +10:00
Alistair Leslie-Hughes
1fe536ee75 Rebase against fca833678f3b2588cc539d04693e7f9d8bca3278. 2023-06-29 08:52:05 +10:00
Alistair Leslie-Hughes
2d8c5f88c3 Updated vkd3d-latest patchset 2023-06-28 16:29:02 +10:00
Alistair Leslie-Hughes
ef85449de2 Rebase against 98b73b5c32fa82218081f0e7668f9836ffe1b55d. 2023-06-28 08:27:58 +10:00
Alistair Leslie-Hughes
d94c192f10 Rebase against 1d281c620d3062c2f30cdf533fe4ac06905a07b8. 2023-06-27 09:25:02 +10:00
Alistair Leslie-Hughes
fcff74d6c6 Release v8.11 2023-06-25 10:25:00 +10:00
Alistair Leslie-Hughes
22ba0ef2a3 Added ntdll_reg_flush patchset 2023-06-24 10:47:34 +10:00
Alistair Leslie-Hughes
95679a2f40 Added winemenubuilder-associations patchset 2023-06-24 09:47:29 +10:00
Alistair Leslie-Hughes
a7a75d0d06 Updated vkd3d-latest to 1.8 2023-06-23 14:16:58 +10:00
Alistair Leslie-Hughes
e930be3974 Rebase against 9285aa5bb1338d8e2c1ac6b95974182b3f4881a9. 2023-06-23 14:14:59 +10:00
Alistair Leslie-Hughes
d7080ec990 Rebase against 81859c9af70aa5ed6da3060488d1815a3607c291. 2023-06-22 14:19:23 +10:00
Alistair Leslie-Hughes
22d9eec489 Rebase against 5da3827d863ae43f8367cdafbeba73cec7cdee3d. 2023-06-21 08:23:37 +10:00
Alistair Leslie-Hughes
eb5a19f4fd Rebase against 272f712b605174e946da1dc65f927a23ee92a572. 2023-06-16 08:55:47 +10:00
Alistair Leslie-Hughes
db6b479557 Rebase against 766448f8ffe51b83105bd0795a5cbc7b8f7c8894. 2023-06-14 10:59:42 +10:00
Alistair Leslie-Hughes
f14d68c258 Drop winemenubuilder-Desktop_Icon_Path patchset 2023-06-13 14:04:26 +10:00
Alistair Leslie-Hughes
117d2b2107 Rebase against c7431990d815e664cf22267142b76cc59f21d192. 2023-06-13 14:03:24 +10:00
Dmitry Timoshkov
8273be2218 Updated gdiplus-Performance-Improvements patchset. 2023-06-13 07:55:27 +10:00
Alistair Leslie-Hughes
adda594159 Release v8.10 2023-06-10 15:46:29 +10:00
Alistair Leslie-Hughes
710e29cc68 Updated vkd3d-latest patchset 2023-06-10 10:59:31 +10:00
Alistair Leslie-Hughes
6c167535e3 Added dnsapi_dns_records patchset 2023-06-09 14:43:49 +10:00
Aida JonikenÄ—
e9b0c33d65 msxml3-FreeThreadedXMLHTTP60: Initialize request_body_size when creating the XML HTTP request.
This fixes a crash in TeamTalk 5.
2023-06-08 12:35:13 -05:00
Alistair Leslie-Hughes
d44a516142 Updated vkd3d-latest patchset 2023-06-08 14:12:14 +10:00
Alistair Leslie-Hughes
453c5cda07 Added oleaut32-default-pic-size patchset 2023-06-08 13:27:09 +10:00
Alistair Leslie-Hughes
d3d87f1a2c Rebase against 07d0f1f0c0bbd744f5f107f82b702a891e41c2eb. 2023-06-08 09:21:24 +10:00
Alistair Leslie-Hughes
42e2a72d37 Added d3dx9-sprite-state patchset 2023-06-07 08:26:53 +10:00
Alistair Leslie-Hughes
d7bbcc7ad9 Updated vkd3d-latest 2023-06-07 08:13:06 +10:00
Alistair Leslie-Hughes
4625289771 Updated vkd3d-latest patchset 2023-06-02 10:31:36 +10:00
Alistair Leslie-Hughes
cda4a1e125 Updated winex11-_NET_ACTIVE_WINDOW patchset 2023-06-02 09:14:30 +10:00
Alistair Leslie-Hughes
1039d808e2 Rebase against 6b0836e3f157318b00effc1de563da4d4b0d16b8. 2023-06-01 14:58:39 +10:00
Alistair Leslie-Hughes
6173bd8b0d Rebase against 7ed63c30e8dee3509c52e11230470be2dcfe6cf5. 2023-05-31 11:01:58 +10:00
Zebediah Figura
ba6e2398d7 Rebase against d0d472bb3e8680e286e404a73fceb29cebe85b73. 2023-05-29 16:33:43 -05:00
Alistair Leslie-Hughes
2dcacd0dbf Release v8.9.1 2023-05-29 07:26:53 +10:00
Alistair Leslie-Hughes
1039396c8e Updated vkd3d-latest patchset
Fix the mingw mac build.
2023-05-28 21:36:15 +10:00
Alistair Leslie-Hughes
f8cc3baab3 Release v8.9 2023-05-28 14:38:27 +10:00
Alistair Leslie-Hughes
7665942477 Added vkd3d-latest patchset 2023-05-28 11:14:22 +10:00
Alistair Leslie-Hughes
0cd181d0ce Rebase against c293cd781fb4b330b7d93171501134f86a5138b8. 2023-05-26 09:22:33 +10:00
Alistair Leslie-Hughes
a580edefe1 Rebase against e10da7ab2e3d151c8347802600862aa608672f6f. 2023-05-25 10:07:30 +10:00
Alistair Leslie-Hughes
fe6cfefe64 Add release script 2023-05-24 12:07:27 +10:00
Alistair Leslie-Hughes
6900845545 Rebase against f266dc094a9b4fbe95792ed706891609901834e3. 2023-05-24 12:06:20 +10:00
Paul Gofman
3e3ebf5cfc Update and reenable ntdll-ForceBottomUpAlloc. 2023-05-19 13:48:16 -06:00
Paul Gofman
f48794a9ce Update and reenable ntdll-Placeholders. 2023-05-19 13:45:49 -06:00
Alistair Leslie-Hughes
27397d1764 Rebase against d54e7cd51db7d3def7dab549a547b1b6bf7573e2. 2023-05-16 10:07:12 +10:00
Alistair Leslie-Hughes
ca7fc8fb51 Release v8.8 2023-05-15 07:49:40 +10:00
Alistair Leslie-Hughes
cc0df4cd1b Rebase against 5662d85e0e95a2715ab3b81c25c89121fc8db34d. 2023-05-13 12:38:27 +10:00
Alistair Leslie-Hughes
8791ceb20d Rebase against 19eab9c0e59201277f359d55ee5747383e014e87. 2023-05-13 07:41:59 +10:00
Alistair Leslie-Hughes
09808df495 Rebase against d2789ef0678619d7c56a9e0c1aaa06f582a41ee3. 2023-05-11 09:29:15 +10:00
Alistair Leslie-Hughes
9c995c8d8e Rebase against de034b36b7fbad0edae0a2700376273c74e48ac6. 2023-05-10 09:48:48 +10:00
Alistair Leslie-Hughes
b72829659d Rebase against 222d20a585c454cb591e3dc539f3bd52427ea30c. 2023-05-07 10:32:15 +10:00
Alistair Leslie-Hughes
88ffa2bda8 Rebase against bd89ab3040e30c11b34a95072d88f635ade03bdc. 2023-05-04 09:58:31 +10:00
Zebediah Figura
2524bc48fe Rebase against 0b9620266f08d57c2db41b934a77b6ce4a94aeda. 2023-05-02 18:03:24 -05:00
Alistair Leslie-Hughes
00ec1171cc Release v8.7 2023-04-29 18:38:56 +10:00
Alistair Leslie-Hughes
277ed0c6fb Rebase against 619e34500fc43f1103fddd91e86d581660d2ae4b. 2023-04-27 09:40:06 +10:00
Alistair Leslie-Hughes
0c2c469c7b Rebase against a500bb72f05058c985511ff35f191565f45cd6c0. 2023-04-26 11:01:51 +10:00
Alistair Leslie-Hughes
7f36a96808 Updated wined3d-WINED3DFMT_B8G8R8X8_UNORM patchset
Fixes: https://bugs.winehq.org/show_bug.cgi?id=54868
2023-04-20 07:28:44 +10:00
Zebediah Figura
566a2bcdfd Rebase against 9e99c6f66d236101a084b6a3a24c98b5c8677fe5. 2023-04-18 17:32:53 -05:00
Zebediah Figura
4eb322dc41 riched20-IText_Interface: Remove patch 0010 silencing FIXMEs.
If this is desired, it can be easily rewritten and submitted upstream.
2023-04-16 16:19:00 -05:00
Zebediah Figura
182d6c76e3 wined3d-Silence_FIXMEs: Remove patch set.
This would be desirable if we had a known application that needed it, but we don't. If the application ever resurfaces, it will be easy to rewrite and fix upstream.
2023-04-16 16:17:30 -05:00
Zebediah Figura
3e931ce80f ddraw-Silence_FIXMEs: Remove patch set.
This would be desirable if we had a known application that needed it, but we don't. If the application ever resurfaces, it will be easy to rewrite and fix upstream.
2023-04-16 16:17:14 -05:00
Zebediah Figura
716e192182 Release v8.6.1 2023-04-16 12:59:31 -05:00
Zebediah Figura
fba1e773c7 mfplat-streaming-support: Fix rebase. 2023-04-16 12:59:09 -05:00
Zebediah Figura
26a1ee0ee9 Release v8.6 2023-04-15 22:16:28 -05:00
Zebediah Figura
9d65092519 Rebase against 4d610717bbc21d65e41a29f9fe9ab5f2963cf16d. 2023-04-15 18:33:17 -05:00
Zebediah Figura
49dcc78363 Rebase against f512b3c08ccfc9b9c235964002e644e2cbd657cf. 2023-04-12 17:10:01 -05:00
Alistair Leslie-Hughes
64774ec3e5 Rebase against 1546ef3015999ee27066b317773050a5641c2023. 2023-04-12 08:17:52 +10:00
Alistair Leslie-Hughes
4211bac798 Rebase against 9909631f23c037e90fe3ef1ccfeebfff2804d7ed. 2023-04-08 14:18:34 +10:00
Alistair Leslie-Hughes
aaa21bda9c Rebase against e658a30a917b0403a1e8f7ed86a8fc0138d990a8. 2023-04-07 08:28:31 +10:00
Alistair Leslie-Hughes
9d5115a9ee Rebase against b5bc026798c127d5bb4c471d94f7fb5e32b4861c. 2023-04-06 09:14:54 +10:00
Alistair Leslie-Hughes
9cb0330037 Rebase against 64cca153292833151d1adeb185252ca57e2d1625. 2023-04-04 10:40:07 +10:00
154 changed files with 40541 additions and 4917 deletions

View File

@@ -0,0 +1,127 @@
From cf47173eec41f4427248796a781e3aa4463a79db Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C5=82=20Mu=C5=BCy=C5=82o?= <galtgendo@o2.pl>
Date: Wed, 7 Jun 2023 08:17:59 +1000
Subject: [PATCH] d3dx9: Improve handling of Sprite render states
---
dlls/d3dx9_36/sprite.c | 76 +++++++++++++++++++++++-------------------
1 file changed, 41 insertions(+), 35 deletions(-)
diff --git a/dlls/d3dx9_36/sprite.c b/dlls/d3dx9_36/sprite.c
index 1a072e52cda..0ce2ab977f3 100644
--- a/dlls/d3dx9_36/sprite.c
+++ b/dlls/d3dx9_36/sprite.c
@@ -193,7 +193,7 @@ static HRESULT WINAPI d3dx9_sprite_SetWorldViewLH(ID3DXSprite *iface,
}
/* Helper function */
-static void set_states(struct d3dx9_sprite *object)
+static void set_states(struct d3dx9_sprite *object, DWORD flags)
{
D3DXMATRIX mat;
D3DVIEWPORT9 vp;
@@ -204,32 +204,35 @@ static void set_states(struct d3dx9_sprite *object)
IDirect3DDevice9_SetNPatchMode(object->device, 0.0f);
/* Render states */
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_ALPHABLENDENABLE, TRUE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_ALPHAFUNC, D3DCMP_GREATER);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_ALPHAREF, 0x00);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_ALPHATESTENABLE, object->alphacmp_caps);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_BLENDOP, D3DBLENDOP_ADD);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_CLIPPING, TRUE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_CLIPPLANEENABLE, 0);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_ALPHA | D3DCOLORWRITEENABLE_BLUE |
- D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_RED);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_CULLMODE, D3DCULL_NONE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_COLOR1);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_ENABLEADAPTIVETESSELLATION, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_FILLMODE, D3DFILL_SOLID);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_FOGENABLE, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_INDEXEDVERTEXBLENDENABLE, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_LIGHTING, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_RANGEFOGENABLE, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_SEPARATEALPHABLENDENABLE, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_SHADEMODE, D3DSHADE_GOURAUD);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_SPECULARENABLE, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_SRGBWRITEENABLE, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_STENCILENABLE, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_VERTEXBLEND, FALSE);
- IDirect3DDevice9_SetRenderState(object->device, D3DRS_WRAP0, 0);
+ if (!(flags & D3DXSPRITE_DONOTMODIFY_RENDERSTATE))
+ {
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_ALPHABLENDENABLE, TRUE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_ALPHAFUNC, D3DCMP_GREATER);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_ALPHAREF, 0x00);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_ALPHATESTENABLE, object->alphacmp_caps);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_BLENDOP, D3DBLENDOP_ADD);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_CLIPPING, TRUE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_CLIPPLANEENABLE, 0);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_ALPHA | D3DCOLORWRITEENABLE_BLUE |
+ D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_RED);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_CULLMODE, D3DCULL_NONE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_COLOR1);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_ENABLEADAPTIVETESSELLATION, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_FILLMODE, D3DFILL_SOLID);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_FOGENABLE, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_INDEXEDVERTEXBLENDENABLE, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_LIGHTING, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_RANGEFOGENABLE, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_SEPARATEALPHABLENDENABLE, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_SHADEMODE, D3DSHADE_GOURAUD);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_SPECULARENABLE, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_SRGBWRITEENABLE, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_STENCILENABLE, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_VERTEXBLEND, FALSE);
+ IDirect3DDevice9_SetRenderState(object->device, D3DRS_WRAP0, 0);
+ }
/* Texture stage states */
IDirect3DDevice9_SetTextureStageState(object->device, 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
@@ -266,12 +269,15 @@ static void set_states(struct d3dx9_sprite *object)
IDirect3DDevice9_SetSamplerState(object->device, 0, D3DSAMP_SRGBTEXTURE, 0);
/* Matrices */
- D3DXMatrixIdentity(&mat);
- IDirect3DDevice9_SetTransform(object->device, D3DTS_WORLD, &mat);
- IDirect3DDevice9_SetTransform(object->device, D3DTS_VIEW, &object->view);
- IDirect3DDevice9_GetViewport(object->device, &vp);
- D3DXMatrixOrthoOffCenterLH(&mat, vp.X+0.5f, (float)vp.Width+vp.X+0.5f, (float)vp.Height+vp.Y+0.5f, vp.Y+0.5f, vp.MinZ, vp.MaxZ);
- IDirect3DDevice9_SetTransform(object->device, D3DTS_PROJECTION, &mat);
+ if (!(flags & D3DXSPRITE_OBJECTSPACE))
+ {
+ D3DXMatrixIdentity(&mat);
+ IDirect3DDevice9_SetTransform(object->device, D3DTS_WORLD, &mat);
+ IDirect3DDevice9_SetTransform(object->device, D3DTS_VIEW, &object->view);
+ IDirect3DDevice9_GetViewport(object->device, &vp);
+ D3DXMatrixOrthoOffCenterLH(&mat, vp.X+0.5f, (float)vp.Width+vp.X+0.5f, (float)vp.Height+vp.Y+0.5f, vp.Y+0.5f, vp.MinZ, vp.MaxZ);
+ IDirect3DDevice9_SetTransform(object->device, D3DTS_PROJECTION, &mat);
+ }
}
static HRESULT WINAPI d3dx9_sprite_Begin(ID3DXSprite *iface, DWORD flags)
@@ -317,7 +323,7 @@ D3DXSPRITE_SORT_TEXTURE: sort by texture (so that it doesn't change too often)
hr=IDirect3DDevice9_BeginStateBlock(This->device);
if(hr!=D3D_OK) return hr;
- set_states(This);
+ set_states(This, flags);
IDirect3DDevice9_SetVertexDeclaration(This->device, This->vdecl);
IDirect3DDevice9_SetStreamSource(This->device, 0, NULL, 0, sizeof(struct sprite_vertex));
@@ -330,7 +336,7 @@ D3DXSPRITE_SORT_TEXTURE: sort by texture (so that it doesn't change too often)
}
/* Apply device state */
- set_states(This);
+ set_states(This, flags);
This->flags=flags;
This->ready=TRUE;
--
2.40.1

View File

@@ -0,0 +1 @@
Fixes: [54034] d3dx9: Improve sprite rendering state handling.

View File

@@ -1,4 +1,4 @@
From f78fc333748a6c4f664bb10ee2115c86690b3b16 Mon Sep 17 00:00:00 2001
From e9f5c886b6b40ca77eb1dd7f0d21bbdc483b7a95 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Mon, 6 Oct 2014 05:06:06 +0200
Subject: [PATCH] dbghelp: Always check for debug symbols in BINDIR.
@@ -9,12 +9,12 @@ Subject: [PATCH] dbghelp: Always check for debug symbols in BINDIR.
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/dbghelp/Makefile.in b/dlls/dbghelp/Makefile.in
index 22be2612eeb..2e11bb2b62d 100644
index 74647820126..9f0aad2fc4f 100644
--- a/dlls/dbghelp/Makefile.in
+++ b/dlls/dbghelp/Makefile.in
@@ -2,7 +2,7 @@ MODULE = dbghelp.dll
IMPORTLIB = dbghelp
IMPORTS = $(ZLIB_PE_LIBS)
IMPORTS = kernelbase $(ZLIB_PE_LIBS)
EXTRAINCL = $(ZLIB_PE_CFLAGS)
-EXTRADEFS = -D_IMAGEHLP_SOURCE_
+EXTRADEFS = -D_IMAGEHLP_SOURCE_ -DBINDIR="L\"${bindir}\""
@@ -22,10 +22,10 @@ index 22be2612eeb..2e11bb2b62d 100644
C_SRCS = \
diff --git a/dlls/dbghelp/elf_module.c b/dlls/dbghelp/elf_module.c
index 3c1e225e195..4468f7fa4ed 100644
index a2a60752a68..a2bca11048f 100644
--- a/dlls/dbghelp/elf_module.c
+++ b/dlls/dbghelp/elf_module.c
@@ -1445,6 +1445,7 @@ static BOOL elf_search_and_load_file(struct process* pcs, const WCHAR* filename,
@@ -1457,6 +1457,7 @@ static BOOL elf_search_and_load_file(struct process* pcs, const WCHAR* filename,
load_elf.elf_info = elf_info;
ret = search_unix_path(filename, process_getenv(pcs, L"LD_LIBRARY_PATH"), elf_load_file_cb, &load_elf)
@@ -34,5 +34,5 @@ index 3c1e225e195..4468f7fa4ed 100644
}
--
2.39.1
2.40.1

View File

@@ -1,29 +0,0 @@
From ff117878cb3a0c74a50355ca64ac36c5fe6cee67 Mon Sep 17 00:00:00 2001
From: Christian Costa <titan.costa@gmail.com>
Date: Fri, 10 Mar 2017 22:07:37 +0100
Subject: ddraw: Silence noisy FIXME about unimplemented
D3DPROCESSVERTICES_UPDATEEXTENTS.
---
dlls/ddraw/executebuffer.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/ddraw/executebuffer.c b/dlls/ddraw/executebuffer.c
index 393c52c1e2..9b64c687d3 100644
--- a/dlls/ddraw/executebuffer.c
+++ b/dlls/ddraw/executebuffer.c
@@ -302,7 +302,10 @@ HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *buffer,
ci->wStart, ci->wDest, ci->dwCount, ci->dwFlags);
if (ci->dwFlags & D3DPROCESSVERTICES_UPDATEEXTENTS)
- FIXME("D3DPROCESSVERTICES_UPDATEEXTENTS not implemented.\n");
+ {
+ static int once;
+ if (!once++) FIXME("D3DPROCESSVERTICES_UPDATEEXTENTS not implemented.\n");
+ }
if (ci->dwFlags & D3DPROCESSVERTICES_NOCOLOR)
FIXME("D3DPROCESSVERTICES_NOCOLOR not implemented.\n");
--
2.11.0

View File

@@ -0,0 +1,34 @@
From b2764b3d21a64c3c194b29b9cb71379456e03b06 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Fri, 7 Jul 2023 12:44:26 +0200
Subject: [PATCH] dinput: Avoid duplicated objects in keyboard devices.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55205
---
dlls/dinput/keyboard.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/dinput/keyboard.c b/dlls/dinput/keyboard.c
index cbcbf94f0f6..3fd75bb10e6 100644
--- a/dlls/dinput/keyboard.c
+++ b/dlls/dinput/keyboard.c
@@ -265,13 +265,15 @@ static HRESULT keyboard_enum_objects( IDirectInputDevice8W *iface, const DIPROPH
.dwOfs = DIK_ESCAPE,
.dwType = DIDFT_PSHBUTTON | DIDFT_MAKEINSTANCE( DIK_ESCAPE ),
};
+ BOOL ret, mapped[0x100] = {0};
DWORD index, i, dik;
- BOOL ret;
for (i = 0, index = 0; i < 512; ++i)
{
if (!GetKeyNameTextW( i << 16, instance.tszName, ARRAY_SIZE(instance.tszName) )) continue;
if (!(dik = map_dik_code( i, 0, subtype, impl->base.dinput->dwVersion ))) continue;
+ if (mapped[dik]) continue;
+ mapped[dik] = TRUE;
instance.dwOfs = dik;
instance.dwType = DIDFT_PSHBUTTON | DIDFT_MAKEINSTANCE( dik );
ret = try_enum_object( &impl->base, filter, flags, callback, index++, &instance, context );
--
2.40.1

View File

@@ -0,0 +1,64 @@
From bdf952bf0711a7cf22fee840197234bd413ae611 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Fri, 7 Jul 2023 12:45:04 +0200
Subject: [PATCH] dinput: Enumerate lower keyboard scancodes values first.
Windows usually doesn't have scancodes higher than 0x7f, or extended
scancodes higher than 0x17f, but X11 does for several XF86 keys.
We want to enumerate the basic keys first including in the extended
scancode range, so they appear before the XF86 keys in the dinput
device object list.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55205
---
dlls/dinput/keyboard.c | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/dlls/dinput/keyboard.c b/dlls/dinput/keyboard.c
index 3fd75bb10e6..1f1db883b80 100644
--- a/dlls/dinput/keyboard.c
+++ b/dlls/dinput/keyboard.c
@@ -256,6 +256,7 @@ static BOOL try_enum_object( struct dinput_device *impl, const DIPROPHEADER *fil
static HRESULT keyboard_enum_objects( IDirectInputDevice8W *iface, const DIPROPHEADER *filter,
DWORD flags, enum_object_callback callback, void *context )
{
+ static const UINT vsc_base[] = {0, 0x100, 0x80, 0x180};
struct keyboard *impl = impl_from_IDirectInputDevice8W( iface );
BYTE subtype = GET_DIDEVICE_SUBTYPE( impl->base.instance.dwDevType );
DIDEVICEOBJECTINSTANCEW instance =
@@ -266,18 +267,21 @@ static HRESULT keyboard_enum_objects( IDirectInputDevice8W *iface, const DIPROPH
.dwType = DIDFT_PSHBUTTON | DIDFT_MAKEINSTANCE( DIK_ESCAPE ),
};
BOOL ret, mapped[0x100] = {0};
- DWORD index, i, dik;
+ DWORD index, i, dik, vsc;
- for (i = 0, index = 0; i < 512; ++i)
+ for (i = 0, index = 0; i < ARRAY_SIZE(vsc_base); ++i)
{
- if (!GetKeyNameTextW( i << 16, instance.tszName, ARRAY_SIZE(instance.tszName) )) continue;
- if (!(dik = map_dik_code( i, 0, subtype, impl->base.dinput->dwVersion ))) continue;
- if (mapped[dik]) continue;
- mapped[dik] = TRUE;
- instance.dwOfs = dik;
- instance.dwType = DIDFT_PSHBUTTON | DIDFT_MAKEINSTANCE( dik );
- ret = try_enum_object( &impl->base, filter, flags, callback, index++, &instance, context );
- if (ret != DIENUM_CONTINUE) return DIENUM_STOP;
+ for (vsc = vsc_base[i]; vsc < vsc_base[i] + 0x80; vsc++)
+ {
+ if (!GetKeyNameTextW( vsc << 16, instance.tszName, ARRAY_SIZE(instance.tszName) )) continue;
+ if (!(dik = map_dik_code( vsc, 0, subtype, impl->base.dinput->dwVersion ))) continue;
+ if (mapped[dik]) continue;
+ mapped[dik] = TRUE;
+ instance.dwOfs = dik;
+ instance.dwType = DIDFT_PSHBUTTON | DIDFT_MAKEINSTANCE( dik );
+ ret = try_enum_object( &impl->base, filter, flags, callback, index++, &instance, context );
+ if (ret != DIENUM_CONTINUE) return DIENUM_STOP;
+ }
}
return DIENUM_CONTINUE;
--
2.40.1

View File

@@ -0,0 +1,2 @@
Fixes: [55205] dinput: Improve keyboard devices scancode support.
# PR 3264

View File

@@ -1,4 +1,4 @@
From f58dbcdfedf4d5d78d586d54f507c647e58379c8 Mon Sep 17 00:00:00 2001
From 9eccf33cb881c2e847a22a72f1c8d8b10886d531 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 2 Dec 2022 14:41:30 +1100
Subject: [PATCH] dmime: Implement IDirectMusicSegment8 Download
@@ -10,14 +10,14 @@ Subject: [PATCH] dmime: Implement IDirectMusicSegment8 Download
3 files changed, 93 insertions(+), 3 deletions(-)
diff --git a/dlls/dmime/dmime_private.h b/dlls/dmime/dmime_private.h
index 4159abffa99..030aab50094 100644
index 7cdc1534866..39f6cdce790 100644
--- a/dlls/dmime/dmime_private.h
+++ b/dlls/dmime/dmime_private.h
@@ -71,6 +71,8 @@ extern void set_audiopath_perf_pointer(IDirectMusicAudioPath*,IDirectMusicPerfor
extern void set_audiopath_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffer*) DECLSPEC_HIDDEN;
extern void set_audiopath_primary_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffer*) DECLSPEC_HIDDEN;
extern void set_audiopath_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffer*);
extern void set_audiopath_primary_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffer*);
+extern IDirectSound *get_dsound_interface(IDirectMusicPerformance8*) DECLSPEC_HIDDEN;
+extern IDirectSound *get_dsound_interface(IDirectMusicPerformance8*);
+
/*****************************************************************************
* Auxiliary definitions
@@ -153,5 +153,5 @@ index 6bf9f3abf0c..0ea0c15c5e0 100644
static HRESULT WINAPI IDirectMusicSegment8Impl_Unload(IDirectMusicSegment8 *iface,
--
2.39.1
2.40.1

View File

@@ -1,8 +1,7 @@
From 8ef2197cd4c77bf562ab5b83f2a137ae565bc22d Mon Sep 17 00:00:00 2001
From 8f92585ece53fbcd940fe028dd7ee24d6b854ec3 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 12 Dec 2022 15:20:10 +1100
Subject: [PATCH 3/3] dmime: Play a sound in IDirectMusicPerformance8
PlaySegmentEx
Subject: [PATCH] dmime: Play a sound in IDirectMusicPerformance8 PlaySegmentEx
---
dlls/dmime/dmime_private.h | 1 +
@@ -11,14 +10,14 @@ Subject: [PATCH 3/3] dmime: Play a sound in IDirectMusicPerformance8
3 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/dlls/dmime/dmime_private.h b/dlls/dmime/dmime_private.h
index 030aab50094..d09aba02a5c 100644
index 39f6cdce790..6cd45697e2f 100644
--- a/dlls/dmime/dmime_private.h
+++ b/dlls/dmime/dmime_private.h
@@ -72,6 +72,7 @@ extern void set_audiopath_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffe
extern void set_audiopath_primary_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffer*) DECLSPEC_HIDDEN;
extern void set_audiopath_primary_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffer*);
extern IDirectSound *get_dsound_interface(IDirectMusicPerformance8*) DECLSPEC_HIDDEN;
+extern IDirectSoundBuffer *get_segment_buffer(IDirectMusicSegment8 *iface) DECLSPEC_HIDDEN;
extern IDirectSound *get_dsound_interface(IDirectMusicPerformance8*);
+extern IDirectSoundBuffer *get_segment_buffer(IDirectMusicSegment8 *iface);
/*****************************************************************************
* Auxiliary definitions
@@ -60,10 +59,10 @@ index 5578c3e523b..03e59e95af3 100644
static HRESULT WINAPI IDirectMusicPerformance8Impl_StopEx(IDirectMusicPerformance8 *iface,
diff --git a/dlls/dmime/segment.c b/dlls/dmime/segment.c
index dbf2f8203d8..9213fbf4a4c 100644
index 0ea0c15c5e0..b21f93bbfc6 100644
--- a/dlls/dmime/segment.c
+++ b/dlls/dmime/segment.c
@@ -45,6 +45,12 @@ static inline IDirectMusicSegment8Impl *impl_from_IDirectMusicSegment8(IDirectMu
@@ -47,6 +47,12 @@ static inline IDirectMusicSegment8Impl *impl_from_IDirectMusicSegment8(IDirectMu
return CONTAINING_RECORD(iface, IDirectMusicSegment8Impl, IDirectMusicSegment8_iface);
}
@@ -77,5 +76,5 @@ index dbf2f8203d8..9213fbf4a4c 100644
REFIID riid, void **ret_iface)
{
--
2.38.1
2.40.1

View File

@@ -0,0 +1,96 @@
From fcf816014b4f7ce60b544f5a50a5a88ade3b055b Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Thu, 1 Jun 2023 14:30:10 +0300
Subject: [PATCH] dnsapi/tests: Add some tests for DNS_TYPE_SRV messages.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
---
dlls/dnsapi/tests/record.c | 65 ++++++++++++++++++++++++++++++++++++++
1 file changed, 65 insertions(+)
diff --git a/dlls/dnsapi/tests/record.c b/dlls/dnsapi/tests/record.c
index 20738de3618..8abcdadaacc 100644
--- a/dlls/dnsapi/tests/record.c
+++ b/dlls/dnsapi/tests/record.c
@@ -193,6 +193,28 @@ static BYTE msg_types[] = /* various record types */
/* KEY */ 0xc0, 0x0c, 0x00, 0x19, 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x00, 0x06, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66,
/* TXT */ 0x01, 't', 0x01, 'x', 0x00, 0x00, 0x10, 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x00, 0x09, 0x02, 'z', 'y', 0x00, 0x04, 'X', 'Y', 0xc3, 0xa9
};
+static BYTE msg_question_srv[] = /* SRV question only */
+{
+ 0x12, 0x34, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 5,'_','l','d','a','p',4,'_','t','c','p',2,'d','c',6,'_','m','s','d','c','s',6,'w','i','n','e','h','q',3,'o','r','g',0x00,0x00,0x00,0x21,0x00
+};
+static BYTE msg_answer_srv[] = /* SRV answer only */
+{
+ 0x12, 0x34, 0x81, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 5,'_','l','d','a','p',4,'_','t','c','p',2,'d','c',6,'_','m','s','d','c','s',6,'w','i','n','e','h','q',3,'o','r','g',0x00,
+ 0x00,0x21,0x00,0x01,0x04,0x05,0x06,0x07,
+ 0x00,0x15,0x00,0x00,0x00,0x00,0x01,0x85,
+ 2,'d','c',6,'w','i','n','e','h','q',3,'o','r','g',0x00
+};
+static BYTE msg_full_srv[] = /* SRV question + answer */
+{
+ 0x12, 0x34, 0x81, 0x80, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 5,'_','l','d','a','p',4,'_','t','c','p',2,'d','c',6,'_','m','s','d','c','s',6,'w','i','n','e','h','q',3,'o','r','g',0x00,
+ 0x00,0x21,0x00,0x01,
+ 0xc0,0x0c,0x00,0x21,0x00,0x01,0x04,0x05,0x06,0x07,
+ 0x00,0x15,0x00,0x00,0x00,0x00,0x01,0x85,
+ 2,'d','c',6,'w','i','n','e','h','q',3,'o','r','g',0x00
+};
static void test_DnsExtractRecordsFromMessage(void)
{
@@ -200,6 +222,49 @@ static void test_DnsExtractRecordsFromMessage(void)
DNS_RECORDA *rec, *r;
DNS_RECORDW *recW, *rW;
+ rec = NULL;
+ ret = DnsExtractRecordsFromMessage_UTF8( (DNS_MESSAGE_BUFFER *)msg_full_srv, sizeof(msg_full_srv), &rec );
+ todo_wine
+ ok( !ret, "failed %ld\n", ret );
+ todo_wine
+ ok( rec != NULL, "record not set\n" );
+ if (!rec) goto next;
+ ok( !strcmp( rec->pName, "_ldap._tcp.dc._msdcs.winehq.org" ), "wrong name %s\n", rec->pName );
+ ok( rec->Flags.S.Section == DnsSectionAnswer, "wrong section %u\n", rec->Flags.S.Section );
+ ok( rec->Flags.S.CharSet == DnsCharSetUtf8, "wrong charset %u\n", rec->Flags.S.CharSet );
+ ok( rec->wType == DNS_TYPE_SRV, "wrong type %u\n", rec->wType );
+ todo_wine
+ ok( rec->wDataLength == sizeof(DNS_SRV_DATAA) + strlen( "dc.winehq.org" ) + 1, "wrong len %u\n", rec->wDataLength );
+ ok( rec->dwTtl == 0x04050607, "wrong ttl %#lx\n", rec->dwTtl );
+ ok( !strcmp( rec->Data.SRV.pNameTarget, "dc.winehq.org"), "wrong target %s\n", rec->Data.SRV.pNameTarget );
+ ok( !rec->pNext, "next record %p\n", rec->pNext );
+ DnsRecordListFree( (DNS_RECORD *)rec, DnsFreeRecordList );
+
+next:
+ rec = (void *)0xdeadbeef;
+ ret = DnsExtractRecordsFromMessage_UTF8( (DNS_MESSAGE_BUFFER *)msg_question_srv, sizeof(msg_question_srv), &rec );
+ ok( !ret, "failed %ld\n", ret );
+ ok( !rec, "record %p\n", rec );
+
+ rec = NULL;
+ ret = DnsExtractRecordsFromMessage_UTF8( (DNS_MESSAGE_BUFFER *)msg_answer_srv, sizeof(msg_answer_srv), &rec );
+ todo_wine
+ ok( !ret, "failed %ld\n", ret );
+ todo_wine
+ ok( rec != NULL, "record not set\n" );
+ if (!rec) goto next2;
+ ok( !strcmp( rec->pName, "_ldap._tcp.dc._msdcs.winehq.org" ), "wrong name %s\n", rec->pName );
+ ok( rec->Flags.S.Section == DnsSectionAnswer, "wrong section %u\n", rec->Flags.S.Section );
+ ok( rec->Flags.S.CharSet == DnsCharSetUtf8, "wrong charset %u\n", rec->Flags.S.CharSet );
+ ok( rec->wType == DNS_TYPE_SRV, "wrong type %u\n", rec->wType );
+ todo_wine
+ ok( rec->wDataLength == sizeof(DNS_SRV_DATAA) + strlen( "dc.winehq.org" ) + 1, "wrong len %u\n", rec->wDataLength );
+ ok( rec->dwTtl == 0x04050607, "wrong ttl %#lx\n", rec->dwTtl );
+ ok( !strcmp( rec->Data.SRV.pNameTarget, "dc.winehq.org"), "wrong target %s\n", rec->Data.SRV.pNameTarget );
+ ok( !rec->pNext, "next record %p\n", rec->pNext );
+ DnsRecordListFree( (DNS_RECORD *)rec, DnsFreeRecordList );
+
+next2:
ret = DnsExtractRecordsFromMessage_UTF8( (DNS_MESSAGE_BUFFER *)msg_empty, sizeof(msg_empty) - 1, &rec );
ok( ret == ERROR_INVALID_PARAMETER || broken(ret == DNS_ERROR_BAD_PACKET) /* win7 */,
"failed %ld\n", ret );
--
2.40.1

View File

@@ -0,0 +1,72 @@
From 3c5ac02e18d5898d68c01f6a58996dc47e5582db Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Thu, 1 Jun 2023 14:32:55 +0300
Subject: [PATCH] dnsapi: Accept name records of exact size at the end of the
packet.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
---
dlls/dnsapi/record.c | 2 +-
dlls/dnsapi/tests/record.c | 8 --------
2 files changed, 1 insertion(+), 9 deletions(-)
diff --git a/dlls/dnsapi/record.c b/dlls/dnsapi/record.c
index 01786842b73..cfd55a44852 100644
--- a/dlls/dnsapi/record.c
+++ b/dlls/dnsapi/record.c
@@ -199,7 +199,7 @@ static const BYTE *get_name( const BYTE *base, const BYTE *end, const BYTE *ptr,
return NULL;
}
}
- if (ptr >= end) return NULL;
+ if (ptr > end) return NULL;
if (out == name) *out++ = '.';
*out = 0;
return next ? next : ptr;
diff --git a/dlls/dnsapi/tests/record.c b/dlls/dnsapi/tests/record.c
index 8abcdadaacc..340d10f6024 100644
--- a/dlls/dnsapi/tests/record.c
+++ b/dlls/dnsapi/tests/record.c
@@ -224,11 +224,8 @@ static void test_DnsExtractRecordsFromMessage(void)
rec = NULL;
ret = DnsExtractRecordsFromMessage_UTF8( (DNS_MESSAGE_BUFFER *)msg_full_srv, sizeof(msg_full_srv), &rec );
- todo_wine
ok( !ret, "failed %ld\n", ret );
- todo_wine
ok( rec != NULL, "record not set\n" );
- if (!rec) goto next;
ok( !strcmp( rec->pName, "_ldap._tcp.dc._msdcs.winehq.org" ), "wrong name %s\n", rec->pName );
ok( rec->Flags.S.Section == DnsSectionAnswer, "wrong section %u\n", rec->Flags.S.Section );
ok( rec->Flags.S.CharSet == DnsCharSetUtf8, "wrong charset %u\n", rec->Flags.S.CharSet );
@@ -240,7 +237,6 @@ static void test_DnsExtractRecordsFromMessage(void)
ok( !rec->pNext, "next record %p\n", rec->pNext );
DnsRecordListFree( (DNS_RECORD *)rec, DnsFreeRecordList );
-next:
rec = (void *)0xdeadbeef;
ret = DnsExtractRecordsFromMessage_UTF8( (DNS_MESSAGE_BUFFER *)msg_question_srv, sizeof(msg_question_srv), &rec );
ok( !ret, "failed %ld\n", ret );
@@ -248,11 +244,8 @@ next:
rec = NULL;
ret = DnsExtractRecordsFromMessage_UTF8( (DNS_MESSAGE_BUFFER *)msg_answer_srv, sizeof(msg_answer_srv), &rec );
- todo_wine
ok( !ret, "failed %ld\n", ret );
- todo_wine
ok( rec != NULL, "record not set\n" );
- if (!rec) goto next2;
ok( !strcmp( rec->pName, "_ldap._tcp.dc._msdcs.winehq.org" ), "wrong name %s\n", rec->pName );
ok( rec->Flags.S.Section == DnsSectionAnswer, "wrong section %u\n", rec->Flags.S.Section );
ok( rec->Flags.S.CharSet == DnsCharSetUtf8, "wrong charset %u\n", rec->Flags.S.CharSet );
@@ -264,7 +257,6 @@ next:
ok( !rec->pNext, "next record %p\n", rec->pNext );
DnsRecordListFree( (DNS_RECORD *)rec, DnsFreeRecordList );
-next2:
ret = DnsExtractRecordsFromMessage_UTF8( (DNS_MESSAGE_BUFFER *)msg_empty, sizeof(msg_empty) - 1, &rec );
ok( ret == ERROR_INVALID_PARAMETER || broken(ret == DNS_ERROR_BAD_PACKET) /* win7 */,
"failed %ld\n", ret );
--
2.40.1

View File

@@ -0,0 +1,49 @@
From 623038324e863d3438243f75f5726291e5ee3ac2 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Thu, 1 Jun 2023 14:48:23 +0300
Subject: [PATCH] dnsapi: Set correct wDataLength for DNS_TYPE_SRV records.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
---
dlls/dnsapi/record.c | 4 ++++
dlls/dnsapi/tests/record.c | 2 --
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/dnsapi/record.c b/dlls/dnsapi/record.c
index cfd55a44852..1b4cbfeac0f 100644
--- a/dlls/dnsapi/record.c
+++ b/dlls/dnsapi/record.c
@@ -1046,6 +1046,10 @@ static DNS_STATUS extract_rdata( const BYTE *base, const BYTE *end, const BYTE *
if (!get_name( base, end, pos, name )) return DNS_ERROR_BAD_PACKET;
if (!(r->Data.SRV.pNameTarget = strdupX( name, in, out ))) return ERROR_NOT_ENOUGH_MEMORY;
r->wDataLength = sizeof(DNS_SRV_DATAA);
+ if (out == DnsCharSetUnicode)
+ r->wDataLength += (wcslen( (const WCHAR *)r->Data.SRV.pNameTarget ) + 1) * sizeof(WCHAR);
+ else
+ r->wDataLength += strlen( r->Data.SRV.pNameTarget ) + 1;
break;
case DNS_TYPE_HINFO:
diff --git a/dlls/dnsapi/tests/record.c b/dlls/dnsapi/tests/record.c
index 340d10f6024..d340c064554 100644
--- a/dlls/dnsapi/tests/record.c
+++ b/dlls/dnsapi/tests/record.c
@@ -230,7 +230,6 @@ static void test_DnsExtractRecordsFromMessage(void)
ok( rec->Flags.S.Section == DnsSectionAnswer, "wrong section %u\n", rec->Flags.S.Section );
ok( rec->Flags.S.CharSet == DnsCharSetUtf8, "wrong charset %u\n", rec->Flags.S.CharSet );
ok( rec->wType == DNS_TYPE_SRV, "wrong type %u\n", rec->wType );
- todo_wine
ok( rec->wDataLength == sizeof(DNS_SRV_DATAA) + strlen( "dc.winehq.org" ) + 1, "wrong len %u\n", rec->wDataLength );
ok( rec->dwTtl == 0x04050607, "wrong ttl %#lx\n", rec->dwTtl );
ok( !strcmp( rec->Data.SRV.pNameTarget, "dc.winehq.org"), "wrong target %s\n", rec->Data.SRV.pNameTarget );
@@ -250,7 +249,6 @@ static void test_DnsExtractRecordsFromMessage(void)
ok( rec->Flags.S.Section == DnsSectionAnswer, "wrong section %u\n", rec->Flags.S.Section );
ok( rec->Flags.S.CharSet == DnsCharSetUtf8, "wrong charset %u\n", rec->Flags.S.CharSet );
ok( rec->wType == DNS_TYPE_SRV, "wrong type %u\n", rec->wType );
- todo_wine
ok( rec->wDataLength == sizeof(DNS_SRV_DATAA) + strlen( "dc.winehq.org" ) + 1, "wrong len %u\n", rec->wDataLength );
ok( rec->dwTtl == 0x04050607, "wrong ttl %#lx\n", rec->dwTtl );
ok( !strcmp( rec->Data.SRV.pNameTarget, "dc.winehq.org"), "wrong target %s\n", rec->Data.SRV.pNameTarget );
--
2.40.1

View File

@@ -0,0 +1 @@
Fixes: [54998] - DnsQuery(DNS_TYPE_SRV) fails to parse some of the server answers

View File

@@ -1,4 +1,4 @@
From c2c33dff38e55d87582d8d6526b3d321ba577570 Mon Sep 17 00:00:00 2001
From c3f44de2b3a1dbcc91b1ed1a864e6995ce1eb87b Mon Sep 17 00:00:00 2001
From: Mark Harmstone <mark@harmstone.com>
Date: Sun, 22 Mar 2015 13:58:53 +0000
Subject: [PATCH] dsound: Add EAX propset stubs.
@@ -24,10 +24,10 @@ index 6cb653fdfa0..1c04bf34162 100644
primary.c \
propset.c \
diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c
index 8d5ca27c90c..ed710fad43d 100644
index 447b41bffbb..5c8c495bfe4 100644
--- a/dlls/dsound/buffer.c
+++ b/dlls/dsound/buffer.c
@@ -1346,6 +1346,9 @@ static HRESULT WINAPI IKsPropertySetImpl_Get(IKsPropertySet *iface, REFGUID guid
@@ -1338,6 +1338,9 @@ static HRESULT WINAPI IKsPropertySetImpl_Get(IKsPropertySet *iface, REFGUID guid
TRACE("(iface=%p,guidPropSet=%s,dwPropID=%ld,pInstanceData=%p,cbInstanceData=%ld,pPropData=%p,cbPropData=%ld,pcbReturned=%p)\n",
This,debugstr_guid(guidPropSet),dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned);
@@ -37,7 +37,7 @@ index 8d5ca27c90c..ed710fad43d 100644
return E_PROP_ID_UNSUPPORTED;
}
@@ -1357,6 +1360,9 @@ static HRESULT WINAPI IKsPropertySetImpl_Set(IKsPropertySet *iface, REFGUID guid
@@ -1349,6 +1352,9 @@ static HRESULT WINAPI IKsPropertySetImpl_Set(IKsPropertySet *iface, REFGUID guid
TRACE("(%p,%s,%ld,%p,%ld,%p,%ld)\n",This,debugstr_guid(guidPropSet),dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData);
@@ -48,12 +48,12 @@ index 8d5ca27c90c..ed710fad43d 100644
}
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index 304708c26da..c0e254f7a6e 100644
index b5546c7d9db..185b8efd014 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -229,6 +229,14 @@ LONG capped_refcount_dec(LONG *ref) DECLSPEC_HIDDEN;
@@ -230,6 +230,14 @@ LONG capped_refcount_dec(LONG *ref);
HRESULT DSOUND_FullDuplexCreate(REFIID riid, void **ppv) DECLSPEC_HIDDEN;
HRESULT DSOUND_FullDuplexCreate(REFIID riid, void **ppv);
+/* eax.c */
+HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
@@ -64,8 +64,8 @@ index 304708c26da..c0e254f7a6e 100644
+ ULONG cbPropData) DECLSPEC_HIDDEN;
+
/* mixer.c */
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len) DECLSPEC_HIDDEN;
void DSOUND_RecalcVolPan(PDSVOLUMEPAN volpan) DECLSPEC_HIDDEN;
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len);
void DSOUND_RecalcVolPan(PDSVOLUMEPAN volpan);
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
new file mode 100644
index 00000000000..c1264f977b6
@@ -127,5 +127,5 @@ index 00000000000..c1264f977b6
+ return E_PROP_ID_UNSUPPORTED;
+}
--
2.35.1
2.40.1

View File

@@ -1,4 +1,4 @@
From f4e3bbf1a91a5a99d703d3fee9a81a5c5089ab79 Mon Sep 17 00:00:00 2001
From 5bc649eecc617214650f5af105f3ae6b6fae5a11 Mon Sep 17 00:00:00 2001
From: Mark Harmstone <mark@harmstone.com>
Date: Fri, 27 Mar 2015 20:48:19 +0000
Subject: [PATCH] dsound: Support getting and setting EAX buffer properties.
@@ -11,12 +11,12 @@ Subject: [PATCH] dsound: Support getting and setting EAX buffer properties.
4 files changed, 72 insertions(+)
diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c
index b7a0fb26c4b..0aff7c96842 100644
index 5c8c495bfe4..ede6d9f1ba1 100644
--- a/dlls/dsound/buffer.c
+++ b/dlls/dsound/buffer.c
@@ -1127,6 +1127,8 @@ HRESULT secondarybuffer_create(DirectSoundDevice *device, const DSBUFFERDESC *ds
return DSERR_OUTOFMEMORY;
}
@@ -1107,6 +1107,8 @@ HRESULT secondarybuffer_create(DirectSoundDevice *device, const DSBUFFERDESC *ds
dsb->sec_mixpos = 0;
dsb->state = STATE_STOPPED;
+ dsb->eax.reverb_mix = EAX_REVERBMIX_USEDISTANCE;
+
@@ -39,7 +39,7 @@ index c90d82d9a3f..2ee83b94ff9 100644
}
#endif
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index a11379f0f88..9b537ad80a5 100644
index 021844c414d..7a89b047b42 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -177,6 +177,8 @@ struct IDirectSoundBufferImpl
@@ -52,7 +52,7 @@ index a11379f0f88..9b537ad80a5 100644
};
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
index cdd03becbee..3931681d295 100644
index 13471aec3a9..03b6e0a9813 100644
--- a/dlls/dsound/eax.c
+++ b/dlls/dsound/eax.c
@@ -178,6 +178,38 @@ HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
@@ -134,5 +134,5 @@ index cdd03becbee..3931681d295 100644
}
--
2.33.0
2.40.1

View File

@@ -1,4 +1,4 @@
From 42c58e406220e9351337b079ae44364fbc39365d Mon Sep 17 00:00:00 2001
From 3a08f97fcd9ffd224c917cc52298702b6feaea9e Mon Sep 17 00:00:00 2001
From: Mark Harmstone <mark@harmstone.com>
Date: Fri, 27 Mar 2015 20:58:37 +0000
Subject: [PATCH] dsound: Add EAX init and free stubs.
@@ -10,11 +10,11 @@ Subject: [PATCH] dsound: Add EAX init and free stubs.
3 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c
index 22b23c9f877..72e96765883 100644
index ede6d9f1ba1..309d632397a 100644
--- a/dlls/dsound/buffer.c
+++ b/dlls/dsound/buffer.c
@@ -1152,6 +1152,8 @@ HRESULT secondarybuffer_create(DirectSoundDevice *device, const DSBUFFERDESC *ds
DSOUND_RecalcVolPan(&(dsb->volpan));
@@ -1145,6 +1145,8 @@ HRESULT secondarybuffer_create(DirectSoundDevice *device, const DSBUFFERDESC *ds
}
InitializeSRWLock(&dsb->lock);
+ if (dsb->device->eax.using_eax)
@@ -22,7 +22,7 @@ index 22b23c9f877..72e96765883 100644
/* register buffer */
err = DirectSoundDevice_AddBuffer(device, dsb);
@@ -1193,6 +1195,8 @@ void secondarybuffer_destroy(IDirectSoundBufferImpl *This)
@@ -1186,6 +1188,8 @@ void secondarybuffer_destroy(IDirectSoundBufferImpl *This)
free(This->filters);
}
@@ -32,10 +32,10 @@ index 22b23c9f877..72e96765883 100644
free(This);
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index 09566b28a12..703b5da8225 100644
index c2dcda9da67..12203876623 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -240,6 +240,8 @@ HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
@@ -241,6 +241,8 @@ HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
ULONG cbPropData) DECLSPEC_HIDDEN;
@@ -43,7 +43,7 @@ index 09566b28a12..703b5da8225 100644
+void init_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
/* mixer.c */
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len) DECLSPEC_HIDDEN;
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len);
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
index 03b6e0a9813..91438efc335 100644
--- a/dlls/dsound/eax.c
@@ -97,5 +97,5 @@ index 03b6e0a9813..91438efc335 100644
HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
--
2.39.2
2.40.1

View File

@@ -1,7 +1,7 @@
From 735da63bda0fed9b01779bd8922a4cc13b05d598 Mon Sep 17 00:00:00 2001
From a0ff76bc868a22624a06989f675c5d574125aa5c Mon Sep 17 00:00:00 2001
From: Mark Harmstone <mark@harmstone.com>
Date: Fri, 27 Mar 2015 20:59:57 +0000
Subject: dsound: Feed data through EAX function.
Subject: [PATCH] dsound: Feed data through EAX function.
---
dlls/dsound/dsound_private.h | 1 +
@@ -10,19 +10,19 @@ Subject: dsound: Feed data through EAX function.
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index a918cd2..cc55d70 100644
index 12203876623..11cfa641d77 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -242,6 +242,7 @@ HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
@@ -243,6 +243,7 @@ HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
ULONG cbPropData) DECLSPEC_HIDDEN;
void free_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
void init_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
+void process_eax_buffer(IDirectSoundBufferImpl *dsb, float *buf, DWORD count) DECLSPEC_HIDDEN;
/* mixer.c */
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len) DECLSPEC_HIDDEN;
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len);
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
index c0afb0f..4368594 100644
index 91438efc335..bf7efdc4f38 100644
--- a/dlls/dsound/eax.c
+++ b/dlls/dsound/eax.c
@@ -92,6 +92,11 @@ static const EFXEAXREVERBPROPERTIES efx_presets[] = {
@@ -38,10 +38,10 @@ index c0afb0f..4368594 100644
{
/* stub */
diff --git a/dlls/dsound/mixer.c b/dlls/dsound/mixer.c
index ff92cc1..b159834 100644
index f261588454a..33dcd8a953c 100644
--- a/dlls/dsound/mixer.c
+++ b/dlls/dsound/mixer.c
@@ -453,7 +453,7 @@ static void putieee32_dsp(const IDirectSoundBufferImpl *dsb, DWORD pos, DWORD ch
@@ -514,7 +514,7 @@ static void putieee32_dsp(const IDirectSoundBufferImpl *dsb, DWORD pos, DWORD ch
*/
static void DSOUND_MixToTemporary(IDirectSoundBufferImpl *dsb, DWORD frames)
{
@@ -50,7 +50,7 @@ index ff92cc1..b159834 100644
UINT istride, ostride, size_bytes;
DWORD channel, i;
bitsputfunc put;
@@ -500,6 +500,9 @@ static void DSOUND_MixToTemporary(IDirectSoundBufferImpl *dsb, DWORD frames)
@@ -561,6 +561,9 @@ static void DSOUND_MixToTemporary(IDirectSoundBufferImpl *dsb, DWORD frames)
}
}
@@ -61,5 +61,5 @@ index ff92cc1..b159834 100644
ostride = dsb->device->pwfx->nChannels * sizeof(float);
for (i = 0; i < frames; i++) {
--
2.3.3
2.40.1

View File

@@ -1,4 +1,4 @@
From 38fec88e8dee99a012773648289b228245001c6c Mon Sep 17 00:00:00 2001
From 375f83afce055fc37c5d453b0f922c604d9ad6f8 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 5 Apr 2015 19:13:18 +0200
Subject: [PATCH] dsound: Allow disabling of EAX support in the registry.
@@ -7,12 +7,12 @@ Based on a patch by Mark Harmstone.
---
dlls/dsound/buffer.c | 16 ++++++----------
dlls/dsound/dsound_main.c | 8 ++++++++
dlls/dsound/dsound_private.h | 2 ++
dlls/dsound/dsound_private.h | 15 ++++++++-------
dlls/dsound/eax.c | 28 ++++++++++++++++++++++++++++
4 files changed, 44 insertions(+), 10 deletions(-)
4 files changed, 50 insertions(+), 17 deletions(-)
diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c
index 9a603a70ed9..39ce9101266 100644
index aa7bbe13cc5..18a16535978 100644
--- a/dlls/dsound/buffer.c
+++ b/dlls/dsound/buffer.c
@@ -34,6 +34,7 @@
@@ -23,7 +23,7 @@ index 9a603a70ed9..39ce9101266 100644
/*******************************************************************************
* IDirectSoundNotify
@@ -1381,16 +1382,11 @@ static HRESULT WINAPI IKsPropertySetImpl_QuerySupport(IKsPropertySet *iface, REF
@@ -1373,16 +1374,11 @@ static HRESULT WINAPI IKsPropertySetImpl_QuerySupport(IKsPropertySet *iface, REF
TRACE("(%p,%s,%ld,%p)\n",This,debugstr_guid(guidPropSet),dwPropID,pTypeSupport);
@@ -46,10 +46,10 @@ index 9a603a70ed9..39ce9101266 100644
return E_PROP_ID_UNSUPPORTED;
diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c
index da5912e216e..808425161a6 100644
index 11983a4cb47..2c09f9c5b42 100644
--- a/dlls/dsound/dsound_main.c
+++ b/dlls/dsound/dsound_main.c
@@ -93,6 +93,10 @@ const WCHAR wine_vxd_drv[] = L"winemm.vxd";
@@ -94,6 +94,10 @@ const WCHAR wine_vxd_drv[] = L"winemm.vxd";
/* All default settings, you most likely don't want to touch these, see wiki on UsefulRegistryKeys */
int ds_hel_buflen = 32768 * 2;
int ds_hq_buffers_max = 4;
@@ -60,7 +60,7 @@ index da5912e216e..808425161a6 100644
/*
* Get a config key from either the app-specific or the default config
@@ -147,11 +151,15 @@ void setup_dsound_options(void)
@@ -148,11 +152,15 @@ void setup_dsound_options(void)
if (!get_config_key( hkey, appkey, "HQBuffersMax", buffer, MAX_PATH ))
ds_hq_buffers_max = atoi(buffer);
@@ -77,25 +77,44 @@ index da5912e216e..808425161a6 100644
static const char * get_device_id(LPCGUID pGuid)
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index 0bca36b2540..7d488ab1e45 100644
index 1c544ad2e96..43f9df866a3 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -37,6 +37,7 @@
@@ -35,9 +35,9 @@
extern int ds_hel_buflen DECLSPEC_HIDDEN;
extern int ds_hq_buffers_max DECLSPEC_HIDDEN;
+extern BOOL ds_eax_enabled DECLSPEC_HIDDEN;
#define DS_MAX_CHANNELS 6
-
extern int ds_hel_buflen;
extern int ds_hq_buffers_max;
+extern BOOL ds_eax_enabled;
/*****************************************************************************
* Predeclare the interface implementation structures
@@ -234,6 +235,7 @@ LONG capped_refcount_dec(LONG *ref) DECLSPEC_HIDDEN;
HRESULT DSOUND_FullDuplexCreate(REFIID riid, void **ppv) DECLSPEC_HIDDEN;
@@ -235,16 +235,17 @@ LONG capped_refcount_dec(LONG *ref);
HRESULT DSOUND_FullDuplexCreate(REFIID riid, void **ppv);
/* eax.c */
+BOOL WINAPI EAX_QuerySupport(REFGUID guidPropSet, ULONG dwPropID, ULONG *pTypeSupport) DECLSPEC_HIDDEN;
+BOOL WINAPI EAX_QuerySupport(REFGUID guidPropSet, ULONG dwPropID, ULONG *pTypeSupport);
HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
ULONG cbPropData, ULONG *pcbReturned) DECLSPEC_HIDDEN;
- ULONG cbPropData, ULONG *pcbReturned) DECLSPEC_HIDDEN;
+ ULONG cbPropData, ULONG *pcbReturned);
HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
- ULONG cbPropData) DECLSPEC_HIDDEN;
-void init_eax_device(DirectSoundDevice *dev) DECLSPEC_HIDDEN;
-void free_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
-void init_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
-void process_eax_buffer(IDirectSoundBufferImpl *dsb, float *buf, DWORD count) DECLSPEC_HIDDEN;
+ ULONG cbPropData);
+void init_eax_device(DirectSoundDevice *dev);
+void free_eax_buffer(IDirectSoundBufferImpl *dsb);
+void init_eax_buffer(IDirectSoundBufferImpl *dsb);
+void process_eax_buffer(IDirectSoundBufferImpl *dsb, float *buf, DWORD count);
/* mixer.c */
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len);
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
index 2244565897b..3e15ac59480 100644
--- a/dlls/dsound/eax.c
@@ -150,5 +169,5 @@ index 2244565897b..3e15ac59480 100644
buf->device->eax.using_eax = TRUE;
--
2.35.1
2.40.1

View File

@@ -1,4 +1,4 @@
From cdbe11004fe8b7fb87fff18f2a458259be02fe2d Mon Sep 17 00:00:00 2001
From 3124bfe7d388479e6c82a766735cc5032654083a Mon Sep 17 00:00:00 2001
From: "Alexander E. Patrakov" <patrakov at gmail.com>
Date: Thu, 7 Aug 2014 17:15:00 -0600
Subject: [PATCH] dsound: Add a linear resampler for use with a large number of
@@ -6,15 +6,15 @@ Subject: [PATCH] dsound: Add a linear resampler for use with a large number of
---
dlls/dsound/dsound_main.c | 5 ++++
dlls/dsound/dsound_private.h | 1 +
dlls/dsound/dsound_private.h | 2 ++
dlls/dsound/mixer.c | 48 +++++++++++++++++++++++++++++++++---
3 files changed, 51 insertions(+), 3 deletions(-)
3 files changed, 52 insertions(+), 3 deletions(-)
diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c
index f3bce6062fe..fecb9489678 100644
index 69cbec72ea3..11983a4cb47 100644
--- a/dlls/dsound/dsound_main.c
+++ b/dlls/dsound/dsound_main.c
@@ -92,6 +92,7 @@ const WCHAR wine_vxd_drv[] = L"winemm.vxd";
@@ -93,6 +93,7 @@ const WCHAR wine_vxd_drv[] = L"winemm.vxd";
/* All default settings, you most likely don't want to touch these, see wiki on UsefulRegistryKeys */
int ds_hel_buflen = 32768 * 2;
@@ -22,7 +22,7 @@ index f3bce6062fe..fecb9489678 100644
/*
* Get a config key from either the app-specific or the default config
@@ -143,10 +144,14 @@ void setup_dsound_options(void)
@@ -144,10 +145,14 @@ void setup_dsound_options(void)
if (!get_config_key( hkey, appkey, "HelBuflen", buffer, MAX_PATH ))
ds_hel_buflen = atoi(buffer);
@@ -38,22 +38,24 @@ index f3bce6062fe..fecb9489678 100644
static const char * get_device_id(LPCGUID pGuid)
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index bdb9ebee544..d154e67b0a0 100644
index 80e6725fd27..172efd6c1cc 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -35,6 +35,7 @@
@@ -34,7 +34,9 @@
#define DS_MAX_CHANNELS 6
extern int ds_hel_buflen DECLSPEC_HIDDEN;
+extern int ds_hq_buffers_max DECLSPEC_HIDDEN;
+
extern int ds_hel_buflen;
+extern int ds_hq_buffers_max;
/*****************************************************************************
* Predeclare the interface implementation structures
diff --git a/dlls/dsound/mixer.c b/dlls/dsound/mixer.c
index a6402b09eff..28f32e9d092 100644
index bf05805221b..042b9499727 100644
--- a/dlls/dsound/mixer.c
+++ b/dlls/dsound/mixer.c
@@ -295,7 +295,47 @@ static UINT cp_fields_noresample(IDirectSoundBufferImpl *dsb, UINT count)
@@ -314,7 +314,47 @@ static UINT cp_fields_noresample(IDirectSoundBufferImpl *dsb, UINT count)
return count;
}
@@ -102,7 +104,7 @@ index a6402b09eff..28f32e9d092 100644
{
UINT i, channel;
UINT istride = dsb->pwfx->nBlockAlign;
@@ -374,9 +414,11 @@ static void cp_fields(IDirectSoundBufferImpl *dsb, UINT count, LONG64 *freqAccNu
@@ -405,9 +445,11 @@ static void cp_fields(IDirectSoundBufferImpl *dsb, UINT count, LONG64 *freqAccNu
DWORD ipos, adv;
if (dsb->freqAdjustNum == dsb->freqAdjustDen)
@@ -117,5 +119,5 @@ index a6402b09eff..28f32e9d092 100644
ipos = dsb->sec_mixpos + adv * dsb->pwfx->nBlockAlign;
if (ipos >= dsb->buflen) {
--
2.30.2
2.40.1

View File

@@ -1,22 +1,22 @@
From 271f43a1fafb19e1404b05ec597b504ecad74784 Mon Sep 17 00:00:00 2001
From d4094baaba721220b0a81170d1f9e6c276dae4ae Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 12:09:22 -0500
Subject: [PATCH] ntdll: Create eventfd-based objects for semaphores.
---
dlls/ntdll/Makefile.in | 1 +
dlls/ntdll/unix/esync.c | 271 +++++++++++++++++++++++++++++++++++++++
dlls/ntdll/unix/esync.c | 270 +++++++++++++++++++++++++++++++++++++++
dlls/ntdll/unix/esync.h | 35 +++++
dlls/ntdll/unix/loader.c | 2 +
dlls/ntdll/unix/server.c | 4 +-
dlls/ntdll/unix/sync.c | 4 +
server/esync.c | 1 +
7 files changed, 316 insertions(+), 2 deletions(-)
7 files changed, 315 insertions(+), 2 deletions(-)
create mode 100644 dlls/ntdll/unix/esync.c
create mode 100644 dlls/ntdll/unix/esync.h
diff --git a/dlls/ntdll/Makefile.in b/dlls/ntdll/Makefile.in
index 07688a5fcf6..4e490c475a2 100644
index f8ca3e689ec..82af2152595 100644
--- a/dlls/ntdll/Makefile.in
+++ b/dlls/ntdll/Makefile.in
@@ -47,6 +47,7 @@ C_SRCS = \
@@ -29,10 +29,10 @@ index 07688a5fcf6..4e490c475a2 100644
unix/loadorder.c \
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
new file mode 100644
index 00000000000..9e1ef7d8afd
index 00000000000..7be4e03fa34
--- /dev/null
+++ b/dlls/ntdll/unix/esync.c
@@ -0,0 +1,271 @@
@@ -0,0 +1,270 @@
+/*
+ * eventfd-based synchronization objects
+ *
@@ -73,7 +73,6 @@ index 00000000000..9e1ef7d8afd
+
+#include "ntstatus.h"
+#define WIN32_NO_STATUS
+#define NONAMELESSUNION
+#include "windef.h"
+#include "winternl.h"
+#include "wine/server.h"
@@ -346,10 +345,10 @@ index 00000000000..a50a755149a
+
+extern int receive_fd( obj_handle_t *handle ) DECLSPEC_HIDDEN;
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index 35f2e5f986f..4d95c29ab24 100644
index 5b8b6962b4a..92855f7cccc 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -89,6 +89,7 @@
@@ -87,6 +87,7 @@
#include "winioctl.h"
#include "winternl.h"
#include "unix_private.h"
@@ -357,7 +356,7 @@ index 35f2e5f986f..4d95c29ab24 100644
#include "wine/list.h"
#include "wine/debug.h"
@@ -2188,6 +2189,7 @@ static void start_main_thread(void)
@@ -2055,6 +2056,7 @@ static void start_main_thread(void)
signal_alloc_thread( teb );
dbg_init();
startup_info_size = server_init_process();
@@ -366,10 +365,10 @@ index 35f2e5f986f..4d95c29ab24 100644
init_cpu_info();
init_files();
diff --git a/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c
index b7d8733f2bc..8cd5f0474e6 100644
index 227784448d3..99563e43cc3 100644
--- a/dlls/ntdll/unix/server.c
+++ b/dlls/ntdll/unix/server.c
@@ -106,7 +106,7 @@ sigset_t server_block_set; /* signals to block during server calls */
@@ -103,7 +103,7 @@ sigset_t server_block_set; /* signals to block during server calls */
static int fd_socket = -1; /* socket to exchange file descriptors with the server */
static int initial_cwd = -1;
static pid_t server_pid;
@@ -378,7 +377,7 @@ index b7d8733f2bc..8cd5f0474e6 100644
/* atomically exchange a 64-bit value */
static inline LONG64 interlocked_xchg64( LONG64 *dest, LONG64 val )
@@ -834,7 +834,7 @@ void wine_server_send_fd( int fd )
@@ -907,7 +907,7 @@ void wine_server_send_fd( int fd )
*
* Receive a file descriptor passed from the server.
*/
@@ -388,10 +387,10 @@ index b7d8733f2bc..8cd5f0474e6 100644
struct iovec vec;
struct msghdr msghdr;
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index 9112572c67d..c5f30428f79 100644
index d1e4e5ee111..b5299c323e3 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -64,6 +64,7 @@
@@ -63,6 +63,7 @@
#include "wine/server.h"
#include "wine/debug.h"
#include "unix_private.h"
@@ -399,7 +398,7 @@ index 9112572c67d..c5f30428f79 100644
WINE_DEFAULT_DEBUG_CHANNEL(sync);
@@ -273,6 +274,9 @@ NTSTATUS WINAPI NtCreateSemaphore( HANDLE *handle, ACCESS_MASK access, const OBJ
@@ -272,6 +273,9 @@ NTSTATUS WINAPI NtCreateSemaphore( HANDLE *handle, ACCESS_MASK access, const OBJ
if (max <= 0 || initial < 0 || initial > max) return STATUS_INVALID_PARAMETER;
if ((ret = alloc_object_attributes( attr, &objattr, &len ))) return ret;
@@ -410,7 +409,7 @@ index 9112572c67d..c5f30428f79 100644
{
req->access = access;
diff --git a/server/esync.c b/server/esync.c
index b9dbfa322bc..99e57eca44c 100644
index 35b4833fd4c..75ef586df30 100644
--- a/server/esync.c
+++ b/server/esync.c
@@ -41,6 +41,7 @@
@@ -422,5 +421,5 @@ index b9dbfa322bc..99e57eca44c 100644
int do_esync(void)
{
--
2.38.1
2.40.1

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