diff --git a/patches/d3dx9_36-CloneEffect/0001-d3dx9_36-Improve-stub-for-ID3DXEffectImpl_CloneEffec.patch b/patches/d3dx9_36-CloneEffect/0001-d3dx9_36-Improve-stub-for-ID3DXEffectImpl_CloneEffec.patch deleted file mode 100644 index ef06236a..00000000 --- a/patches/d3dx9_36-CloneEffect/0001-d3dx9_36-Improve-stub-for-ID3DXEffectImpl_CloneEffec.patch +++ /dev/null @@ -1,67 +0,0 @@ -From a31e5531eb8f3be5fddf9f81f48f191b1a10c2aa Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Mon, 16 Mar 2015 08:18:33 +0100 -Subject: [PATCH] d3dx9_36: Improve stub for ID3DXEffectImpl_CloneEffect. - ---- - dlls/d3dx9_36/effect.c | 4 +++- - dlls/d3dx9_36/tests/effect.c | 16 +++++----------- - 2 files changed, 8 insertions(+), 12 deletions(-) - -diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c -index 7d686a435d..f8d8ab9cd2 100644 ---- a/dlls/d3dx9_36/effect.c -+++ b/dlls/d3dx9_36/effect.c -@@ -4100,7 +4100,9 @@ static HRESULT WINAPI d3dx_effect_CloneEffect(ID3DXEffect *iface, IDirect3DDevic - if (!device) - return D3DERR_INVALIDCALL; - -- return E_NOTIMPL; -+ iface->lpVtbl->AddRef(iface); -+ *new_effect = iface; -+ return S_OK; - } - - #if D3DX_SDK_VERSION >= 27 -diff --git a/dlls/d3dx9_36/tests/effect.c b/dlls/d3dx9_36/tests/effect.c -index 5c4a3c5e77..ff15426938 100644 ---- a/dlls/d3dx9_36/tests/effect.c -+++ b/dlls/d3dx9_36/tests/effect.c -@@ -7419,29 +7419,23 @@ static void test_effect_clone(void) - ok(hr == D3DERR_INVALIDCALL, "Got result %#x.\n", hr); - - hr = effect->lpVtbl->CloneEffect(effect, device, &cloned); --todo_wine - ok(hr == D3D_OK, "Got result %#x.\n", hr); --if (hr == D3D_OK) --{ -- ok(cloned != effect, "Expected new effect instance.\n"); -+ -+ todo_wine ok(cloned != effect, "Expected new effect instance.\n"); - cloned->lpVtbl->Release(cloned); --} - /* Try with different device. */ - device2 = create_device(&window2); - hr = effect->lpVtbl->CloneEffect(effect, device2, &cloned); --todo_wine - ok(hr == D3D_OK, "Got result %#x.\n", hr); --if (hr == D3D_OK) --{ -- ok(cloned != effect, "Expected new effect instance.\n"); -+ todo_wine ok(cloned != effect, "Expected new effect instance.\n"); - - hr = cloned->lpVtbl->GetDevice(cloned, &device3); - ok(hr == S_OK, "Failed to get effect device.\n"); -- ok(device3 == device2, "Unexpected device instance.\n"); -+ todo_wine ok(device3 == device2, "Unexpected device instance, device3 %p, device2 %p.\n", device3, device2); - IDirect3DDevice9_Release(device3); - - cloned->lpVtbl->Release(cloned); --} -+ - IDirect3DDevice9_Release(device2); - DestroyWindow(window2); - effect->lpVtbl->Release(effect); --- -2.21.0 - diff --git a/patches/d3dx9_36-CloneEffect/definition b/patches/d3dx9_36-CloneEffect/definition deleted file mode 100644 index e4279e58..00000000 --- a/patches/d3dx9_36-CloneEffect/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [44635] Improve stub for ID3DXEffectImpl_CloneEffect diff --git a/patches/dsound-EAX/0003-dsound-Report-that-we-support-EAX-v1.patch b/patches/dsound-EAX/0003-dsound-Report-that-we-support-EAX-v1.patch index 4eebaec7..3cb82a2d 100644 --- a/patches/dsound-EAX/0003-dsound-Report-that-we-support-EAX-v1.patch +++ b/patches/dsound-EAX/0003-dsound-Report-that-we-support-EAX-v1.patch @@ -1,19 +1,19 @@ -From 8d33bbc39a573848f00c95699ec8c0eee9fdb416 Mon Sep 17 00:00:00 2001 +From f9f2e1a4150c515fc416c96405f89d174d5761eb Mon Sep 17 00:00:00 2001 From: Mark Harmstone Date: Sun, 15 Mar 2015 18:04:38 +0000 -Subject: dsound: Report that we support EAX v1. +Subject: [PATCH] dsound: Report that we support EAX v1. --- dlls/dsound/buffer.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c -index d735dc3..9eff140 100644 +index eb87479b7df..8d5ca27c90c 100644 --- a/dlls/dsound/buffer.c +++ b/dlls/dsound/buffer.c -@@ -1319,6 +1319,18 @@ static HRESULT WINAPI IKsPropertySetImpl_QuerySupport(IKsPropertySet *iface, REF +@@ -1367,6 +1367,18 @@ static HRESULT WINAPI IKsPropertySetImpl_QuerySupport(IKsPropertySet *iface, REF - TRACE("(%p,%s,%d,%p)\n",This,debugstr_guid(guidPropSet),dwPropID,pTypeSupport); + TRACE("(%p,%s,%ld,%p)\n",This,debugstr_guid(guidPropSet),dwPropID,pTypeSupport); + if (IsEqualGUID(&DSPROPSETID_EAX_ReverbProperties, guidPropSet)) { + if (dwPropID <= DSPROPERTY_EAX_DAMPING) { @@ -31,5 +31,5 @@ index d735dc3..9eff140 100644 } -- -2.3.3 +2.34.1 diff --git a/patches/dsound-EAX/0004-dsound-Add-EAX-propset-stubs.patch b/patches/dsound-EAX/0004-dsound-Add-EAX-propset-stubs.patch index c93b7333..e89dfb47 100644 --- a/patches/dsound-EAX/0004-dsound-Add-EAX-propset-stubs.patch +++ b/patches/dsound-EAX/0004-dsound-Add-EAX-propset-stubs.patch @@ -1,18 +1,18 @@ -From 601e237d1321fcdea3a678c31fd9eac62b89cfb4 Mon Sep 17 00:00:00 2001 +From ee7fe13f2c520e1360e46f825790539b5bc2be3b Mon Sep 17 00:00:00 2001 From: Mark Harmstone Date: Sun, 22 Mar 2015 13:58:53 +0000 -Subject: dsound: Add EAX propset stubs. +Subject: [PATCH] dsound: Add EAX propset stubs. --- dlls/dsound/Makefile.in | 1 + - dlls/dsound/buffer.c | 6 +++++ - dlls/dsound/dsound_private.h | 8 +++++++ - dlls/dsound/eax.c | 54 ++++++++++++++++++++++++++++++++++++++++++++ + dlls/dsound/buffer.c | 6 ++++ + dlls/dsound/dsound_private.h | 8 ++++++ + dlls/dsound/eax.c | 54 ++++++++++++++++++++++++++++++++++++ 4 files changed, 69 insertions(+) create mode 100644 dlls/dsound/eax.c diff --git a/dlls/dsound/Makefile.in b/dlls/dsound/Makefile.in -index 6cb653f..1c04bf3 100644 +index 6cb653fdfa0..1c04bf34162 100644 --- a/dlls/dsound/Makefile.in +++ b/dlls/dsound/Makefile.in @@ -9,6 +9,7 @@ C_SRCS = \ @@ -24,11 +24,11 @@ index 6cb653f..1c04bf3 100644 primary.c \ propset.c \ diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c -index 9eff140..0596ce3 100644 +index 8d5ca27c90c..ed710fad43d 100644 --- a/dlls/dsound/buffer.c +++ b/dlls/dsound/buffer.c -@@ -1298,6 +1298,9 @@ static HRESULT WINAPI IKsPropertySetImpl_Get(IKsPropertySet *iface, REFGUID guid - TRACE("(iface=%p,guidPropSet=%s,dwPropID=%d,pInstanceData=%p,cbInstanceData=%d,pPropData=%p,cbPropData=%d,pcbReturned=%p)\n", +@@ -1346,6 +1346,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); + if (IsEqualGUID(&DSPROPSETID_EAX_ReverbProperties, guidPropSet) || IsEqualGUID(&DSPROPSETID_EAXBUFFER_ReverbProperties, guidPropSet)) @@ -37,9 +37,9 @@ index 9eff140..0596ce3 100644 return E_PROP_ID_UNSUPPORTED; } -@@ -1309,6 +1312,9 @@ static HRESULT WINAPI IKsPropertySetImpl_Set(IKsPropertySet *iface, REFGUID guid +@@ -1357,6 +1360,9 @@ static HRESULT WINAPI IKsPropertySetImpl_Set(IKsPropertySet *iface, REFGUID guid - TRACE("(%p,%s,%d,%p,%d,%p,%d)\n",This,debugstr_guid(guidPropSet),dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData); + TRACE("(%p,%s,%ld,%p,%ld,%p,%ld)\n",This,debugstr_guid(guidPropSet),dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData); + if (IsEqualGUID(&DSPROPSETID_EAX_ReverbProperties, guidPropSet) || IsEqualGUID(&DSPROPSETID_EAXBUFFER_ReverbProperties, guidPropSet)) + return EAX_Set(This, guidPropSet, dwPropID, pInstanceData, cbInstanceData, pPropData, cbPropData); @@ -48,7 +48,7 @@ index 9eff140..0596ce3 100644 } diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h -index 3c7dc7a..e4495b2 100644 +index 304708c26da..c0e254f7a6e 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; @@ -68,7 +68,7 @@ index 3c7dc7a..e4495b2 100644 void DSOUND_RecalcVolPan(PDSVOLUMEPAN volpan) DECLSPEC_HIDDEN; diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c new file mode 100644 -index 0000000..c30c7e1 +index 00000000000..c30c7e1a51a --- /dev/null +++ b/dlls/dsound/eax.c @@ -0,0 +1,54 @@ @@ -127,5 +127,5 @@ index 0000000..c30c7e1 + return E_PROP_ID_UNSUPPORTED; +} -- -2.3.3 +2.34.1 diff --git a/patches/dsound-EAX/0019-dsound-Allow-disabling-of-EAX-support-in-the-registr.patch b/patches/dsound-EAX/0019-dsound-Allow-disabling-of-EAX-support-in-the-registr.patch index fb045e55..86b672a4 100644 --- a/patches/dsound-EAX/0019-dsound-Allow-disabling-of-EAX-support-in-the-registr.patch +++ b/patches/dsound-EAX/0019-dsound-Allow-disabling-of-EAX-support-in-the-registr.patch @@ -1,4 +1,4 @@ -From 4ff4b0b2c1a5aeabeec286dc76868acbccc8779d Mon Sep 17 00:00:00 2001 +From af21be49d511224d7299ef3d21f08ebfee66f3a5 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sun, 5 Apr 2015 19:13:18 +0200 Subject: [PATCH] dsound: Allow disabling of EAX support in the registry. @@ -12,7 +12,7 @@ Based on a patch by Mark Harmstone. 4 files changed, 44 insertions(+), 10 deletions(-) diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c -index 926dbab1289..6393656c9fa 100644 +index 9a603a70ed9..39ce9101266 100644 --- a/dlls/dsound/buffer.c +++ b/dlls/dsound/buffer.c @@ -34,6 +34,7 @@ @@ -23,9 +23,9 @@ index 926dbab1289..6393656c9fa 100644 /******************************************************************************* * IDirectSoundNotify -@@ -1311,16 +1312,11 @@ static HRESULT WINAPI IKsPropertySetImpl_QuerySupport(IKsPropertySet *iface, REF +@@ -1381,16 +1382,11 @@ static HRESULT WINAPI IKsPropertySetImpl_QuerySupport(IKsPropertySet *iface, REF - TRACE("(%p,%s,%d,%p)\n",This,debugstr_guid(guidPropSet),dwPropID,pTypeSupport); + TRACE("(%p,%s,%ld,%p)\n",This,debugstr_guid(guidPropSet),dwPropID,pTypeSupport); - if (IsEqualGUID(&DSPROPSETID_EAX_ReverbProperties, guidPropSet)) { - if (dwPropID <= DSPROPERTY_EAX_DAMPING) { @@ -46,7 +46,7 @@ index 926dbab1289..6393656c9fa 100644 return E_PROP_ID_UNSUPPORTED; diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c -index fecb9489678..8b396a1939e 100644 +index da5912e216e..808425161a6 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"; @@ -77,7 +77,7 @@ index fecb9489678..8b396a1939e 100644 static const char * get_device_id(LPCGUID pGuid) diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h -index bca2bf46601..47a42e62e7c 100644 +index 0bca36b2540..7d488ab1e45 100644 --- a/dlls/dsound/dsound_private.h +++ b/dlls/dsound/dsound_private.h @@ -37,6 +37,7 @@ @@ -88,7 +88,7 @@ index bca2bf46601..47a42e62e7c 100644 /***************************************************************************** * Predeclare the interface implementation structures -@@ -228,6 +229,7 @@ LONG capped_refcount_dec(LONG *ref) DECLSPEC_HIDDEN; +@@ -234,6 +235,7 @@ LONG capped_refcount_dec(LONG *ref) DECLSPEC_HIDDEN; HRESULT DSOUND_FullDuplexCreate(REFIID riid, void **ppv) DECLSPEC_HIDDEN; /* eax.c */ @@ -150,5 +150,5 @@ index ef802b95a7d..570207709f0 100644 buf->device->eax.using_eax = TRUE; -- -2.30.2 +2.34.1 diff --git a/patches/dsound-EAX/0023-dsound-Fake-success-for-EAX-Set-Buffer-ListenerPrope.patch b/patches/dsound-EAX/0023-dsound-Fake-success-for-EAX-Set-Buffer-ListenerPrope.patch index 2c38be04..d8b59d1f 100644 --- a/patches/dsound-EAX/0023-dsound-Fake-success-for-EAX-Set-Buffer-ListenerPrope.patch +++ b/patches/dsound-EAX/0023-dsound-Fake-success-for-EAX-Set-Buffer-ListenerPrope.patch @@ -1,4 +1,4 @@ -From f8f6f53f2bb3d138717ac7a82c78010bce874d4a Mon Sep 17 00:00:00 2001 +From b332a35d8382c6fc77ba663c5db98a6374518bfe Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Mon, 25 Jan 2021 19:14:32 +1100 Subject: [PATCH] dsound: Fake success for EAX Set Buffer/ListenerProperties @@ -10,12 +10,12 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50551 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c -index 6393656c9fa..24ff1a6198c 100644 +index 39ce9101266..ba93989f372 100644 --- a/dlls/dsound/buffer.c +++ b/dlls/dsound/buffer.c -@@ -1299,7 +1299,8 @@ static HRESULT WINAPI IKsPropertySetImpl_Set(IKsPropertySet *iface, REFGUID guid +@@ -1369,7 +1369,8 @@ static HRESULT WINAPI IKsPropertySetImpl_Set(IKsPropertySet *iface, REFGUID guid - TRACE("(%p,%s,%d,%p,%d,%p,%d)\n",This,debugstr_guid(guidPropSet),dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData); + TRACE("(%p,%s,%ld,%p,%ld,%p,%ld)\n",This,debugstr_guid(guidPropSet),dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData); - if (IsEqualGUID(&DSPROPSETID_EAX_ReverbProperties, guidPropSet) || IsEqualGUID(&DSPROPSETID_EAXBUFFER_ReverbProperties, guidPropSet)) + if (IsEqualGUID(&DSPROPSETID_EAX_ReverbProperties, guidPropSet) || IsEqualGUID(&DSPROPSETID_EAXBUFFER_ReverbProperties, guidPropSet) || @@ -44,5 +44,5 @@ index 6a6d22bc031..b3f48cdb5bd 100644 FIXME("(%p,%s,%d,%p,%d,%p,%d)\n", -- -2.29.2 +2.34.1 diff --git a/patches/mmsystem.dll16-MIDIHDR_Refcount/0001-mmsystem.dll16-Refcount-midihdr-to-work-around-buggy.patch b/patches/mmsystem.dll16-MIDIHDR_Refcount/0001-mmsystem.dll16-Refcount-midihdr-to-work-around-buggy.patch index c04124c3..4aa138cf 100644 --- a/patches/mmsystem.dll16-MIDIHDR_Refcount/0001-mmsystem.dll16-Refcount-midihdr-to-work-around-buggy.patch +++ b/patches/mmsystem.dll16-MIDIHDR_Refcount/0001-mmsystem.dll16-Refcount-midihdr-to-work-around-buggy.patch @@ -1,15 +1,15 @@ -From 5467b7a82f16dfb7cbd6de4badcd107e7ec5f292 Mon Sep 17 00:00:00 2001 +From 0b70d2f52080c75d0fd183235957270a525c7b32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Fri, 26 Feb 2016 03:54:28 +0100 -Subject: mmsystem.dll16: Refcount midihdr to work around buggy application - which unprepares buffer during a callback. +Subject: [PATCH] mmsystem.dll16: Refcount midihdr to work around buggy + application which unprepares buffer during a callback. --- - dlls/mmsystem.dll16/message16.c | 123 ++++++++++++++++++++++++---------------- - 1 file changed, 74 insertions(+), 49 deletions(-) + dlls/mmsystem.dll16/message16.c | 121 +++++++++++++++++++------------- + 1 file changed, 73 insertions(+), 48 deletions(-) diff --git a/dlls/mmsystem.dll16/message16.c b/dlls/mmsystem.dll16/message16.c -index 012d3dc..2c01eb4 100644 +index 5a722bb6691..a6816920dae 100644 --- a/dlls/mmsystem.dll16/message16.c +++ b/dlls/mmsystem.dll16/message16.c @@ -33,6 +33,13 @@ @@ -26,7 +26,7 @@ index 012d3dc..2c01eb4 100644 /* ================================= * A U X M A P P E R S * ================================= */ -@@ -117,13 +124,13 @@ static void MMSYSTDRV_MidiIn_MapCB(UINT uMsg, DWORD_PTR* dwUser, DW +@@ -117,13 +124,13 @@ static void MMSYSTDRV_MidiIn_MapCB(DWORD uMsg, DWORD_PTR* dwUser, D case MIM_LONGDATA: case MIM_LONGERROR: { @@ -46,13 +46,15 @@ index 012d3dc..2c01eb4 100644 } break; default: -@@ -175,42 +182,49 @@ static MMSYSTEM_MapType MMSYSTDRV_MidiOut_Map16To32W (UINT wMsg, DWORD_PTR* lpP +@@ -175,42 +182,49 @@ static MMSYSTEM_MapType MMSYSTDRV_MidiOut_Map16To32W (DWORD wMsg, DWORD_PTR* lp break; case MODM_PREPARE: { - LPMIDIHDR mh32 = HeapAlloc(GetProcessHeap(), 0, sizeof(LPMIDIHDR) + sizeof(MIDIHDR)); - LPMIDIHDR16 mh16 = MapSL(*lpParam1); -- ++ struct mihdrWrap *mh32 = HeapAlloc(GetProcessHeap(), 0, sizeof(struct mihdrWrap)); ++ LPMIDIHDR16 mh16 = MapSL(*lpParam1); + - if (mh32) { - *(LPMIDIHDR*)mh32 = (LPMIDIHDR)*lpParam1; - mh32 = (LPMIDIHDR)((LPSTR)mh32 + sizeof(LPMIDIHDR)); @@ -64,13 +66,6 @@ index 012d3dc..2c01eb4 100644 - mh16->lpNext = (MIDIHDR16*)mh32; /* for reuse in unprepare and write */ - *lpParam1 = (DWORD)mh32; - *lpParam2 = offsetof(MIDIHDR,dwOffset); /* old size, without dwOffset */ -+ struct mihdrWrap *mh32 = HeapAlloc(GetProcessHeap(), 0, sizeof(struct mihdrWrap)); -+ LPMIDIHDR16 mh16 = MapSL(*lpParam1); - -- ret = MMSYSTEM_MAP_OKMEM; -- } else { -- ret = MMSYSTEM_MAP_NOMEM; -- } + if (mh32) + { + mh32->ref = 2; @@ -83,7 +78,11 @@ index 012d3dc..2c01eb4 100644 + mh16->lpNext = (MIDIHDR16*)mh32; /* for reuse in unprepare and write */ + *lpParam1 = (DWORD)&mh32->hdr; + *lpParam2 = offsetof(MIDIHDR,dwOffset); /* old size, without dwOffset */ -+ + +- ret = MMSYSTEM_MAP_OKMEM; +- } else { +- ret = MMSYSTEM_MAP_NOMEM; +- } + ret = MMSYSTEM_MAP_OKMEM; + } + else @@ -102,7 +101,7 @@ index 012d3dc..2c01eb4 100644 - *lpParam2 = offsetof(MIDIHDR,dwOffset); - /* dwBufferLength can be reduced between prepare & write */ - if (wMsg == MODM_LONGDATA && mh32->dwBufferLength < mh16->dwBufferLength) { -- ERR("Size of buffer has been increased from %d to %d, keeping initial value\n", +- ERR("Size of buffer has been increased from %ld to %ld, keeping initial value\n", - mh32->dwBufferLength, mh16->dwBufferLength); - } else - mh32->dwBufferLength = mh16->dwBufferLength; @@ -125,7 +124,7 @@ index 012d3dc..2c01eb4 100644 } break; -@@ -267,17 +281,28 @@ static MMSYSTEM_MapType MMSYSTDRV_MidiOut_UnMap16To32W(UINT wMsg, DWORD_PTR* lp +@@ -267,17 +281,28 @@ static MMSYSTEM_MapType MMSYSTDRV_MidiOut_UnMap16To32W(DWORD wMsg, DWORD_PTR* l case MODM_UNPREPARE: case MODM_LONGDATA: { @@ -163,7 +162,7 @@ index 012d3dc..2c01eb4 100644 } break; -@@ -307,12 +332,12 @@ static void MMSYSTDRV_MidiOut_MapCB(UINT uMsg, DWORD_PTR* dwUser, DWORD_PTR* dw +@@ -307,12 +332,12 @@ static void MMSYSTDRV_MidiOut_MapCB(DWORD uMsg, DWORD_PTR* dwUser, DWORD_PTR* d case MOM_DONE: { /* initial map is: 16 => 32 */ @@ -182,5 +181,5 @@ index 012d3dc..2c01eb4 100644 break; default: -- -2.9.0 +2.34.1 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 448c723d..921ed525 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "d318f43559dbb0093e22bab1aa0eb9dc01170cc2" + echo "cfb1d2058fb47ff3f72501e0aaf35b97ea128036" } # Show version information @@ -96,7 +96,6 @@ patch_enable_all () enable_d3drm_IDirect3D3_support="$1" enable_d3dx11_43_D3DX11CreateTextureFromMemory="$1" enable_d3dx9_36_BumpLuminance="$1" - enable_d3dx9_36_CloneEffect="$1" enable_d3dx9_36_D3DXDisassembleShader="$1" enable_d3dx9_36_D3DXOptimizeVertices="$1" enable_d3dx9_36_D3DXStubs="$1" @@ -320,9 +319,6 @@ patch_enable () d3dx9_36-BumpLuminance) enable_d3dx9_36_BumpLuminance="$2" ;; - d3dx9_36-CloneEffect) - enable_d3dx9_36_CloneEffect="$2" - ;; d3dx9_36-D3DXDisassembleShader) enable_d3dx9_36_D3DXDisassembleShader="$2" ;; @@ -1573,18 +1569,6 @@ if test "$enable_d3dx9_36_BumpLuminance" -eq 1; then patch_apply d3dx9_36-BumpLuminance/0002-d3dx9_36-Add-format-description-for-X8L8V8U8-for-for.patch fi -# Patchset d3dx9_36-CloneEffect -# | -# | This patchset fixes the following Wine bugs: -# | * [#44635] Improve stub for ID3DXEffectImpl_CloneEffect -# | -# | Modified files: -# | * dlls/d3dx9_36/effect.c, dlls/d3dx9_36/tests/effect.c -# | -if test "$enable_d3dx9_36_CloneEffect" -eq 1; then - patch_apply d3dx9_36-CloneEffect/0001-d3dx9_36-Improve-stub-for-ID3DXEffectImpl_CloneEffec.patch -fi - # Patchset d3dx9_36-D3DXDisassembleShader # | # | This patchset fixes the following Wine bugs: diff --git a/patches/widl-SLTG_Typelib_Support/0025-oleaut32-Add-support-for-decoding-SLTG-variable-help.patch b/patches/widl-SLTG_Typelib_Support/0025-oleaut32-Add-support-for-decoding-SLTG-variable-help.patch index 58a621ac..88cd7cc1 100644 --- a/patches/widl-SLTG_Typelib_Support/0025-oleaut32-Add-support-for-decoding-SLTG-variable-help.patch +++ b/patches/widl-SLTG_Typelib_Support/0025-oleaut32-Add-support-for-decoding-SLTG-variable-help.patch @@ -1,17 +1,18 @@ -From 1d25ef1b6e9ef476686a3103604850ec5005b658 Mon Sep 17 00:00:00 2001 +From 259d6774b0b769956c33382a4260ae5278e54b85 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Tue, 26 Jan 2016 16:17:21 +0800 -Subject: oleaut32: Add support for decoding SLTG variable help strings. +Subject: [PATCH] oleaut32: Add support for decoding SLTG variable help + strings. --- dlls/oleaut32/typelib.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c -index b9d8cbb..6699e0b 100644 +index ff1506856e2..ee15996dea5 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c -@@ -4129,7 +4129,7 @@ static char *SLTG_DoImpls(char *pBlk, ITypeInfoImpl *pTI, +@@ -4086,7 +4086,7 @@ static char *SLTG_DoImpls(char *pBlk, ITypeInfoImpl *pTI, } static void SLTG_DoVars(char *pBlk, char *pFirstItem, ITypeInfoImpl *pTI, unsigned short cVars, @@ -20,9 +21,9 @@ index b9d8cbb..6699e0b 100644 { TLBVarDesc *pVarDesc; const TLBString *prevName = NULL; -@@ -4159,6 +4159,12 @@ static void SLTG_DoVars(char *pBlk, char *pFirstItem, ITypeInfoImpl *pTI, unsign +@@ -4116,6 +4116,12 @@ static void SLTG_DoVars(char *pBlk, char *pFirstItem, ITypeInfoImpl *pTI, unsign TRACE_(typelib)("byte_offs = 0x%x\n", pItem->byte_offs); - TRACE_(typelib)("memid = 0x%x\n", pItem->memid); + TRACE_(typelib)("memid = %#lx\n", pItem->memid); + if (pItem->helpstring != 0xffff) + { @@ -33,7 +34,7 @@ index b9d8cbb..6699e0b 100644 if(pItem->flags & 0x02) pType = &pItem->type; else -@@ -4394,9 +4400,9 @@ static void SLTG_ProcessInterface(char *pBlk, ITypeInfoImpl *pTI, +@@ -4355,9 +4361,9 @@ static void SLTG_ProcessInterface(char *pBlk, ITypeInfoImpl *pTI, static void SLTG_ProcessRecord(char *pBlk, ITypeInfoImpl *pTI, const char *pNameTable, SLTG_TypeInfoHeader *pTIHeader, @@ -45,7 +46,7 @@ index b9d8cbb..6699e0b 100644 } static void SLTG_ProcessAlias(char *pBlk, ITypeInfoImpl *pTI, -@@ -4437,7 +4443,7 @@ static void SLTG_ProcessDispatch(char *pBlk, ITypeInfoImpl *pTI, +@@ -4398,7 +4404,7 @@ static void SLTG_ProcessDispatch(char *pBlk, ITypeInfoImpl *pTI, pNameTable); if (pTITail->vars_off != 0xffff) @@ -54,7 +55,7 @@ index b9d8cbb..6699e0b 100644 if (pTITail->funcs_off != 0xffff) SLTG_DoFuncs(pBlk, pBlk + pTITail->funcs_off, pTI, pTITail->cFuncs, pNameTable, ref_lookup, hlp_strings); -@@ -4457,9 +4463,9 @@ static void SLTG_ProcessDispatch(char *pBlk, ITypeInfoImpl *pTI, +@@ -4418,9 +4424,9 @@ static void SLTG_ProcessDispatch(char *pBlk, ITypeInfoImpl *pTI, static void SLTG_ProcessEnum(char *pBlk, ITypeInfoImpl *pTI, const char *pNameTable, SLTG_TypeInfoHeader *pTIHeader, @@ -66,7 +67,7 @@ index b9d8cbb..6699e0b 100644 } static void SLTG_ProcessModule(char *pBlk, ITypeInfoImpl *pTI, -@@ -4472,7 +4478,7 @@ static void SLTG_ProcessModule(char *pBlk, ITypeInfoImpl *pTI, +@@ -4433,7 +4439,7 @@ static void SLTG_ProcessModule(char *pBlk, ITypeInfoImpl *pTI, pNameTable); if (pTITail->vars_off != 0xffff) @@ -75,7 +76,7 @@ index b9d8cbb..6699e0b 100644 if (pTITail->funcs_off != 0xffff) SLTG_DoFuncs(pBlk, pBlk + pTITail->funcs_off, pTI, pTITail->cFuncs, pNameTable, ref_lookup, hlp_strings); -@@ -4727,12 +4733,12 @@ static ITypeLib2* ITypeLib2_Constructor_SLTG(LPVOID pLib, DWORD dwTLBLength) +@@ -4688,12 +4694,12 @@ static ITypeLib2* ITypeLib2_Constructor_SLTG(LPVOID pLib, DWORD dwTLBLength) switch(pTIHeader->typekind) { case TKIND_ENUM: SLTG_ProcessEnum((char *)(pMemHeader + 1), *ppTypeInfoImpl, pNameTable, @@ -91,5 +92,5 @@ index b9d8cbb..6699e0b 100644 case TKIND_INTERFACE: -- -2.6.4 +2.34.1 diff --git a/patches/wined3d-SWVP-shaders/0004-wined3d-Support-SWVP-vertex-shader-constants-limit-i.patch b/patches/wined3d-SWVP-shaders/0004-wined3d-Support-SWVP-vertex-shader-constants-limit-i.patch index 32ab1435..feabe9ed 100644 --- a/patches/wined3d-SWVP-shaders/0004-wined3d-Support-SWVP-vertex-shader-constants-limit-i.patch +++ b/patches/wined3d-SWVP-shaders/0004-wined3d-Support-SWVP-vertex-shader-constants-limit-i.patch @@ -1,4 +1,4 @@ -From f3d97f4e2e9e720a0b75666b05362f3450b2496e Mon Sep 17 00:00:00 2001 +From 44d72553191650080c21e56815ac7bb91ba0d02d Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Mon, 25 Feb 2019 15:05:12 +0300 Subject: [PATCH] wined3d: Support SWVP vertex shader constants limit in state @@ -15,10 +15,10 @@ Subject: [PATCH] wined3d: Support SWVP vertex shader constants limit in state 7 files changed, 31 insertions(+), 20 deletions(-) diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c -index 3ef9361886d..86dd47383df 100644 +index 7abf9ea3df2..32ccb290df5 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c -@@ -6936,13 +6936,10 @@ static void test_vertex_shader_constant(void) +@@ -6973,13 +6973,10 @@ static void test_vertex_shader_constant(void) ok(consts_swvp == 8192, "Unexpected consts_swvp %u.\n", consts_swvp); hr = IDirect3DDevice9_SetVertexShaderConstantF(device, consts + 0, c, 1); @@ -32,7 +32,7 @@ index 3ef9361886d..86dd47383df 100644 ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr); hr = IDirect3DDevice9_SetVertexShaderConstantF(device, consts_swvp - 1, c, 1); ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr); -@@ -6967,7 +6964,6 @@ static void test_vertex_shader_constant(void) +@@ -7004,7 +7001,6 @@ static void test_vertex_shader_constant(void) IDirect3DDevice9_SetSoftwareVertexProcessing(device, 0); hr = IDirect3DDevice9_SetVertexShaderConstantF(device, consts + 0, c, 1); @@ -40,7 +40,7 @@ index 3ef9361886d..86dd47383df 100644 ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr); hr = IDirect3DDevice9_SetVertexShaderConstantF(device, consts_swvp - 1, c, 1); ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr); -@@ -6975,7 +6971,6 @@ static void test_vertex_shader_constant(void) +@@ -7012,7 +7008,6 @@ static void test_vertex_shader_constant(void) IDirect3DDevice9_SetSoftwareVertexProcessing(device, 1); hr = IDirect3DDevice9_SetVertexShaderConstantF(device, consts + 0, c, 1); @@ -49,10 +49,10 @@ index 3ef9361886d..86dd47383df 100644 hr = IDirect3DDevice9_SetVertexShaderConstantF(device, consts_swvp - 1, c, 1); ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr); diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c -index 40585d5257d..6377addec24 100644 +index 89f9e9cf2c6..2ff33b667f0 100644 --- a/dlls/d3d9/tests/visual.c +++ b/dlls/d3d9/tests/visual.c -@@ -24895,7 +24895,6 @@ static void test_mvp_software_vertex_shaders(void) +@@ -24908,7 +24908,6 @@ static void test_mvp_software_vertex_shaders(void) hr = IDirect3DDevice9_SetVertexShaderConstantF(device, 0, c_index, 1); ok(SUCCEEDED(hr), "Got unexpected hr %#x.\n", hr); hr = IDirect3DDevice9_SetVertexShaderConstantF(device, (unsigned int)c_index[0], c_color, 1); @@ -61,10 +61,10 @@ index 40585d5257d..6377addec24 100644 hr = IDirect3DDevice9_BeginScene(device); diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index 09c1dce8dd9..91cfde663d1 100644 +index 14771da0947..4f529d9dcb3 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c -@@ -3606,7 +3606,7 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device, +@@ -3759,7 +3759,7 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device, const struct wined3d_saved_states *changed = &stateblock->changed; const unsigned int word_bit_count = sizeof(DWORD) * CHAR_BIT; struct wined3d_device_context *context = &device->cs->c; @@ -73,7 +73,7 @@ index 09c1dce8dd9..91cfde663d1 100644 struct wined3d_range range; uint32_t map; -@@ -3617,9 +3617,11 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device, +@@ -3770,9 +3770,11 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device, if (changed->pixelShader) wined3d_device_context_set_shader(context, WINED3D_SHADER_TYPE_PIXEL, state->ps); @@ -87,10 +87,10 @@ index 09c1dce8dd9..91cfde663d1 100644 wined3d_device_set_vs_consts_f(device, range.offset, range.size, &state->vs_consts_f[range.offset]); diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c -index 152139757c6..e4cafd6a4cc 100644 +index 707d9521445..22cfe881f41 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c -@@ -1910,7 +1910,7 @@ static void shader_glsl_update_float_vertex_constants(struct wined3d_device *dev +@@ -1907,7 +1907,7 @@ static void shader_glsl_update_float_vertex_constants(struct wined3d_device *dev if (priv->consts_ubo) return; @@ -100,10 +100,10 @@ index 152139757c6..e4cafd6a4cc 100644 update_heap_entry(heap, i, priv->next_constant_version); } diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c -index 4cf30941d62..363bfb3b900 100644 +index c5ca5990009..5372e415ba6 100644 --- a/dlls/wined3d/stateblock.c +++ b/dlls/wined3d/stateblock.c -@@ -731,8 +731,8 @@ void CDECL wined3d_stateblock_capture(struct wined3d_stateblock *stateblock, +@@ -732,8 +732,8 @@ void CDECL wined3d_stateblock_capture(struct wined3d_stateblock *stateblock, const struct wined3d_stateblock *device_state) { const struct wined3d_stateblock_state *state = &device_state->stateblock_state; @@ -113,7 +113,7 @@ index 4cf30941d62..363bfb3b900 100644 DWORD map; TRACE("stateblock %p, device_state %p.\n", stateblock, device_state); -@@ -748,9 +748,11 @@ void CDECL wined3d_stateblock_capture(struct wined3d_stateblock *stateblock, +@@ -749,9 +749,11 @@ void CDECL wined3d_stateblock_capture(struct wined3d_stateblock *stateblock, stateblock->stateblock_state.vs = state->vs; } @@ -126,7 +126,7 @@ index 4cf30941d62..363bfb3b900 100644 break; memcpy(&stateblock->stateblock_state.vs_consts_f[range.offset], &state->vs_consts_f[range.offset], -@@ -994,8 +996,8 @@ void CDECL wined3d_stateblock_apply(const struct wined3d_stateblock *stateblock, +@@ -995,8 +997,8 @@ void CDECL wined3d_stateblock_apply(const struct wined3d_stateblock *stateblock, struct wined3d_stateblock *device_state) { const struct wined3d_stateblock_state *state = &stateblock->stateblock_state; @@ -136,7 +136,7 @@ index 4cf30941d62..363bfb3b900 100644 DWORD map; TRACE("stateblock %p, device_state %p.\n", stateblock, device_state); -@@ -1005,9 +1007,11 @@ void CDECL wined3d_stateblock_apply(const struct wined3d_stateblock *stateblock, +@@ -1006,9 +1008,11 @@ void CDECL wined3d_stateblock_apply(const struct wined3d_stateblock *stateblock, if (stateblock->changed.pixelShader) wined3d_stateblock_set_pixel_shader(device_state, state->ps); @@ -149,7 +149,7 @@ index 4cf30941d62..363bfb3b900 100644 break; wined3d_stateblock_set_vs_consts_f(device_state, range.offset, range.size, &state->vs_consts_f[range.offset]); } -@@ -1199,12 +1203,14 @@ static void wined3d_bitmap_set_bits(uint32_t *bitmap, unsigned int start, unsign +@@ -1200,12 +1204,14 @@ static void wined3d_bitmap_set_bits(uint32_t *bitmap, unsigned int start, unsign HRESULT CDECL wined3d_stateblock_set_vs_consts_f(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, const struct wined3d_vec4 *constants) { @@ -166,7 +166,7 @@ index 4cf30941d62..363bfb3b900 100644 return WINED3DERR_INVALIDCALL; memcpy(&stateblock->stateblock_state.vs_consts_f[start_idx], constants, count * sizeof(*constants)); -@@ -2011,7 +2017,7 @@ static HRESULT stateblock_init(struct wined3d_stateblock *stateblock, const stru +@@ -2018,7 +2024,7 @@ static HRESULT stateblock_init(struct wined3d_stateblock *stateblock, const stru stateblock_init_lights(stateblock->stateblock_state.light_state->light_map, device_state->stateblock_state.light_state->light_map); stateblock_savedstates_set_all(&stateblock->changed, @@ -175,7 +175,7 @@ index 4cf30941d62..363bfb3b900 100644 break; case WINED3D_SBT_PIXEL_STATE: -@@ -2023,7 +2029,7 @@ static HRESULT stateblock_init(struct wined3d_stateblock *stateblock, const stru +@@ -2030,7 +2036,7 @@ static HRESULT stateblock_init(struct wined3d_stateblock *stateblock, const stru stateblock_init_lights(stateblock->stateblock_state.light_state->light_map, device_state->stateblock_state.light_state->light_map); stateblock_savedstates_set_vertex(&stateblock->changed, @@ -185,10 +185,10 @@ index 4cf30941d62..363bfb3b900 100644 default: diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index 28390d8f348..6afbcfb2cfd 100644 +index 4c88f43713c..650aa2e2f63 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -3717,7 +3717,7 @@ struct wined3d_state +@@ -3803,7 +3803,7 @@ struct wined3d_state struct wined3d_shader_resource_view *shader_resource_view[WINED3D_SHADER_TYPE_COUNT][MAX_SHADER_RESOURCE_VIEWS]; struct wined3d_unordered_access_view *unordered_access_view[WINED3D_PIPELINE_COUNT][MAX_UNORDERED_ACCESS_VIEWS]; @@ -197,9 +197,9 @@ index 28390d8f348..6afbcfb2cfd 100644 struct wined3d_ivec4 vs_consts_i[WINED3D_MAX_CONSTS_I]; BOOL vs_consts_b[WINED3D_MAX_CONSTS_B]; -@@ -3893,6 +3893,15 @@ HRESULT wined3d_device_set_implicit_swapchain(struct wined3d_device *device, - struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; - void wined3d_device_uninit_3d(struct wined3d_device *device) DECLSPEC_HIDDEN; +@@ -3985,6 +3985,15 @@ static inline void wined3d_device_bo_map_unlock(struct wined3d_device *device) + LeaveCriticalSection(&device->bo_map_lock); + } +static inline unsigned int wined3d_device_get_vs_uniform_count(const struct wined3d_device *device) +{ @@ -213,7 +213,7 @@ index 28390d8f348..6afbcfb2cfd 100644 struct wined3d_device_no3d { struct wined3d_device d; -@@ -4625,7 +4634,7 @@ struct wined3d_vertex_declaration +@@ -4835,7 +4844,7 @@ struct wined3d_vertex_declaration struct wined3d_saved_states { @@ -223,10 +223,10 @@ index 28390d8f348..6afbcfb2cfd 100644 WORD vertexShaderConstantsB; /* WINED3D_MAX_CONSTS_B, 16 */ uint32_t ps_consts_f[WINED3D_BITMAP_SIZE(WINED3D_MAX_PS_CONSTS_F)]; diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h -index cab4a2bc958..5cd71b8268c 100644 +index 55c9cd3fc45..10198ad8278 100644 --- a/include/wine/wined3d.h +++ b/include/wine/wined3d.h -@@ -2189,7 +2189,7 @@ struct wined3d_stateblock_state +@@ -2191,7 +2191,7 @@ struct wined3d_stateblock_state int base_vertex_index; struct wined3d_shader *vs; @@ -236,5 +236,5 @@ index cab4a2bc958..5cd71b8268c 100644 BOOL vs_consts_b[WINED3D_MAX_CONSTS_B]; -- -2.30.2 +2.34.1 diff --git a/patches/wined3d-SWVP-shaders/0005-wined3d-Support-SWVP-mode-vertex-shaders.patch b/patches/wined3d-SWVP-shaders/0005-wined3d-Support-SWVP-mode-vertex-shaders.patch index b6e8796a..59ca5771 100644 --- a/patches/wined3d-SWVP-shaders/0005-wined3d-Support-SWVP-mode-vertex-shaders.patch +++ b/patches/wined3d-SWVP-shaders/0005-wined3d-Support-SWVP-mode-vertex-shaders.patch @@ -1,4 +1,4 @@ -From ee17d52379ab1bf8ed5c19ce3658a1996d19808b Mon Sep 17 00:00:00 2001 +From 3672fa47e729c45fa34182f6ba9eaab1d77bd2ef Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Mon, 25 Feb 2019 15:23:33 +0300 Subject: [PATCH] wined3d: Support SWVP mode vertex shaders. @@ -14,10 +14,10 @@ Subject: [PATCH] wined3d: Support SWVP mode vertex shaders. 7 files changed, 104 insertions(+), 49 deletions(-) diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c -index 09446d0be6..7d62fd5823 100644 +index 32ccb290df5..397885f12d7 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c -@@ -6901,15 +6901,11 @@ float4 main(const float4 color : COLOR) : SV_TARGET +@@ -7462,15 +7462,11 @@ float4 main(const float4 color : COLOR) : SV_TARGET vs = NULL; hr = IDirect3DDevice9_CreateVertexShader(device, vs_1_256, &vs); @@ -35,7 +35,7 @@ index 09446d0be6..7d62fd5823 100644 refcount = IDirect3DDevice9_Release(device); ok(!refcount, "Device has %u references left.\n", refcount); -@@ -6926,20 +6922,16 @@ float4 main(const float4 color : COLOR) : SV_TARGET +@@ -7487,20 +7483,16 @@ float4 main(const float4 color : COLOR) : SV_TARGET ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr); hr = IDirect3DDevice9_CreateVertexShader(device, vs_1_256, &vs); @@ -59,10 +59,10 @@ index 09446d0be6..7d62fd5823 100644 cleanup: refcount = IDirect3DDevice9_Release(device); diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c -index 0ae4eb7a34..0463df7a56 100644 +index 2ff33b667f0..6c4f0b759e4 100644 --- a/dlls/d3d9/tests/visual.c +++ b/dlls/d3d9/tests/visual.c -@@ -24803,7 +24803,6 @@ static void test_mvp_software_vertex_shaders(void) +@@ -24834,7 +24834,6 @@ static void test_mvp_software_vertex_shaders(void) hr = IDirect3DDevice9_CreateVertexShader(device, reladdr_shader_code, &reladdr_shader); ok(SUCCEEDED(hr), "Got unexpected hr %#x.\n", hr); hr = IDirect3DDevice9_CreateVertexShader(device, pure_sw_shader_code, &pure_sw_shader); @@ -70,7 +70,7 @@ index 0ae4eb7a34..0463df7a56 100644 ok(SUCCEEDED(hr), "Got unexpected hr %#x.\n", hr); hr = IDirect3DDevice9_CreateVertexDeclaration(device, decl_elements, &vertex_declaration); ok(SUCCEEDED(hr), "Got unexpected hr %#x.\n", hr); -@@ -24841,7 +24840,7 @@ static void test_mvp_software_vertex_shaders(void) +@@ -24872,7 +24871,7 @@ static void test_mvp_software_vertex_shaders(void) expected_color = 0x00ff0000; /* Color from vertex data and not from the shader. */ color = getPixelColor(device, 5, 5); @@ -79,7 +79,7 @@ index 0ae4eb7a34..0463df7a56 100644 expected_color, color); hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL); -@@ -24860,7 +24859,6 @@ static void test_mvp_software_vertex_shaders(void) +@@ -24891,7 +24890,6 @@ static void test_mvp_software_vertex_shaders(void) expected_color = 0x00ffffff; color = getPixelColor(device, 5, 5); @@ -87,7 +87,7 @@ index 0ae4eb7a34..0463df7a56 100644 ok(color == expected_color, "Expected color 0x%08x, got 0x%08x (sw shader in sw mode).\n", expected_color, color); -@@ -24910,7 +24908,6 @@ static void test_mvp_software_vertex_shaders(void) +@@ -24941,7 +24939,6 @@ static void test_mvp_software_vertex_shaders(void) expected_color = 0x0000ffff; /* c[256] is c_color for SW shader. */ color = getPixelColor(device, 5, 5); @@ -96,10 +96,10 @@ index 0ae4eb7a34..0463df7a56 100644 expected_color, color); diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index 1db974f118..844d2f60ec 100644 +index 4f529d9dcb3..4809da60fc9 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c -@@ -4256,6 +4256,14 @@ void CDECL wined3d_device_set_software_vertex_processing(struct wined3d_device * +@@ -4518,6 +4518,14 @@ void CDECL wined3d_device_set_software_vertex_processing(struct wined3d_device * warned = TRUE; } @@ -115,10 +115,10 @@ index 1db974f118..844d2f60ec 100644 } diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c -index a88f92cc03..3ae361024e 100644 +index 22cfe881f41..c91128f41e8 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c -@@ -140,7 +140,9 @@ struct shader_glsl_priv +@@ -136,7 +136,9 @@ struct shader_glsl_priv BOOL consts_ubo; GLuint ubo_vs_c; @@ -129,7 +129,7 @@ index a88f92cc03..3ae361024e 100644 const struct wined3d_vertex_pipe_ops *vertex_pipe; const struct wined3d_fragment_pipe_ops *fragment_pipe; -@@ -155,7 +157,7 @@ struct glsl_vs_program +@@ -151,7 +153,7 @@ struct glsl_vs_program struct list shader_entry; GLuint id; GLenum vertex_color_clamp; @@ -138,7 +138,7 @@ index a88f92cc03..3ae361024e 100644 GLint uniform_i_locations[WINED3D_MAX_CONSTS_I]; GLint uniform_b_locations[WINED3D_MAX_CONSTS_B]; GLint pos_fixup_location; -@@ -1195,7 +1197,7 @@ static void bind_and_orphan_consts_ubo(const struct wined3d_gl_info *gl_info, st +@@ -1191,7 +1193,7 @@ static void bind_and_orphan_consts_ubo(const struct wined3d_gl_info *gl_info, st { GL_EXTCALL(glBindBuffer(GL_UNIFORM_BUFFER, priv->ubo_vs_c)); checkGLcall("glBindBuffer"); @@ -147,7 +147,7 @@ index a88f92cc03..3ae361024e 100644 NULL, GL_STREAM_DRAW)); checkGLcall("glBufferData"); } -@@ -1203,14 +1205,16 @@ static void bind_and_orphan_consts_ubo(const struct wined3d_gl_info *gl_info, st +@@ -1199,14 +1201,16 @@ static void bind_and_orphan_consts_ubo(const struct wined3d_gl_info *gl_info, st /* Context activation is done by the caller. */ static void shader_glsl_load_constants_f(const struct wined3d_shader *shader, const struct wined3d_gl_info *gl_info, const struct wined3d_vec4 *constants, const GLint *constant_locations, const struct constant_heap *heap, @@ -165,7 +165,7 @@ index a88f92cc03..3ae361024e 100644 unsigned max_const_used; if (priv->ubo_vs_c == -1) -@@ -1220,22 +1224,32 @@ static void shader_glsl_load_constants_f(const struct wined3d_shader *shader, co +@@ -1216,22 +1220,32 @@ static void shader_glsl_load_constants_f(const struct wined3d_shader *shader, co } bind_and_orphan_consts_ubo(gl_info, priv); @@ -204,7 +204,7 @@ index a88f92cc03..3ae361024e 100644 checkGLcall("glBufferSubData"); return; } -@@ -1603,7 +1617,7 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context +@@ -1597,7 +1611,7 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context GL_EXTCALL(glGenBuffers(1, &priv->ubo_vs_c)); GL_EXTCALL(glBindBuffer(GL_UNIFORM_BUFFER, priv->ubo_vs_c)); checkGLcall("glBindBuffer (UBO)"); @@ -213,7 +213,7 @@ index a88f92cc03..3ae361024e 100644 NULL, GL_STREAM_DRAW)); checkGLcall("glBufferData"); } -@@ -1615,7 +1629,8 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context +@@ -1609,7 +1623,8 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context if (update_mask & WINED3D_SHADER_CONST_VS_F) shader_glsl_load_constants_f(vshader, gl_info, state->vs_consts_f, @@ -223,7 +223,7 @@ index a88f92cc03..3ae361024e 100644 if (update_mask & WINED3D_SHADER_CONST_VS_I) shader_glsl_load_constants_i(vshader, gl_info, state->vs_consts_i, -@@ -1768,7 +1783,8 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context +@@ -1762,7 +1777,8 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context if (update_mask & WINED3D_SHADER_CONST_PS_F) shader_glsl_load_constants_f(pshader, gl_info, state->ps_consts_f, @@ -233,7 +233,7 @@ index a88f92cc03..3ae361024e 100644 if (update_mask & WINED3D_SHADER_CONST_PS_I) shader_glsl_load_constants_i(pshader, gl_info, state->ps_consts_i, -@@ -1913,7 +1929,7 @@ static void shader_glsl_update_float_vertex_constants(struct wined3d_device *dev +@@ -1907,7 +1923,7 @@ static void shader_glsl_update_float_vertex_constants(struct wined3d_device *dev if (priv->consts_ubo) return; @@ -242,7 +242,7 @@ index a88f92cc03..3ae361024e 100644 { update_heap_entry(heap, i, priv->next_constant_version); } -@@ -2275,7 +2291,7 @@ static void shader_generate_glsl_declarations(const struct wined3d_context_gl *c +@@ -2279,7 +2295,7 @@ static void shader_generate_glsl_declarations(const struct wined3d_context_gl *c shader_addline(buffer,"layout(std140) uniform vs_c_ubo\n" "{ \n" " vec4 %s_c[%u];\n" @@ -251,7 +251,7 @@ index a88f92cc03..3ae361024e 100644 } else if (shader->limits->constant_float > 0) { -@@ -10003,12 +10019,13 @@ static void shader_glsl_init_vs_uniform_locations(const struct wined3d_gl_info * +@@ -10057,12 +10073,13 @@ static void shader_glsl_init_vs_uniform_locations(const struct wined3d_gl_info * } else if (!priv->consts_ubo) { @@ -267,7 +267,7 @@ index a88f92cc03..3ae361024e 100644 } for (i = 0; i < WINED3D_MAX_CONSTS_I; ++i) -@@ -10326,6 +10343,10 @@ static void set_glsl_shader_program(const struct wined3d_context_gl *context_gl, +@@ -10380,6 +10397,10 @@ static void set_glsl_shader_program(const struct wined3d_context_gl *context_gl, vs_list = &ffp_shader->linked_programs; } @@ -278,7 +278,7 @@ index a88f92cc03..3ae361024e 100644 hshader = state->shader[WINED3D_SHADER_TYPE_HULL]; if (!(context_gl->c.shader_update_mask & (1u << WINED3D_SHADER_TYPE_HULL)) && ctx_data->glsl_program) hs_id = ctx_data->glsl_program->hs.id; -@@ -11083,7 +11104,7 @@ static void constant_heap_free(struct constant_heap *heap) +@@ -11134,7 +11155,7 @@ static void constant_heap_free(struct constant_heap *heap) static HRESULT shader_glsl_alloc(struct wined3d_device *device, const struct wined3d_vertex_pipe_ops *vertex_pipe, const struct wined3d_fragment_pipe_ops *fragment_pipe) { @@ -287,7 +287,7 @@ index a88f92cc03..3ae361024e 100644 const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; struct fragment_caps fragment_caps; void *vertex_priv, *fragment_priv; -@@ -11094,6 +11115,18 @@ static HRESULT shader_glsl_alloc(struct wined3d_device *device, const struct win +@@ -11145,6 +11166,18 @@ static HRESULT shader_glsl_alloc(struct wined3d_device *device, const struct win priv->consts_ubo = (device->adapter->d3d_info.wined3d_creation_flags & WINED3D_LEGACY_SHADER_CONSTANTS) && gl_info->supported[ARB_UNIFORM_BUFFER_OBJECT]; @@ -306,7 +306,7 @@ index a88f92cc03..3ae361024e 100644 string_buffer_list_init(&priv->string_buffers); if (!(vertex_priv = vertex_pipe->vp_alloc(&glsl_shader_backend, priv))) -@@ -11123,7 +11156,7 @@ static HRESULT shader_glsl_alloc(struct wined3d_device *device, const struct win +@@ -11174,7 +11207,7 @@ static HRESULT shader_glsl_alloc(struct wined3d_device *device, const struct win goto fail; } @@ -316,10 +316,10 @@ index a88f92cc03..3ae361024e 100644 ERR("Failed to initialize vertex shader constant heap\n"); goto fail; diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c -index f29b49b902..294b65260e 100644 +index fed3cf97126..15fb532b04d 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c -@@ -592,7 +592,7 @@ static void shader_delete_constant_list(struct list *clist) +@@ -591,7 +591,7 @@ static void shader_delete_constant_list(struct list *clist) list_init(clist); } @@ -328,7 +328,7 @@ index f29b49b902..294b65260e 100644 { static const struct limits_entry { -@@ -615,6 +615,19 @@ static void shader_set_limits(struct wined3d_shader *shader) +@@ -614,6 +614,19 @@ static void shader_set_limits(struct wined3d_shader *shader) {WINED3D_SHADER_VERSION(4, 1), WINED3D_SHADER_VERSION(5, 0), {16, 0, 0, 0, 32, 0}}, {0} }, @@ -348,7 +348,7 @@ index f29b49b902..294b65260e 100644 hs_limits[] = { /* min_version, max_version, sampler, constant_int, constant_float, constant_bool, packed_output, packet_input */ -@@ -659,7 +672,7 @@ static void shader_set_limits(struct wined3d_shader *shader) +@@ -658,7 +671,7 @@ static void shader_set_limits(struct wined3d_shader *shader) FIXME("Unexpected shader type %u found.\n", shader->reg_maps.shader_version.type); /* Fall-through. */ case WINED3D_SHADER_TYPE_VERTEX: @@ -357,7 +357,7 @@ index f29b49b902..294b65260e 100644 break; case WINED3D_SHADER_TYPE_HULL: limits_array = hs_limits; -@@ -1027,7 +1040,7 @@ static HRESULT shader_scan_output_signature(struct wined3d_shader *shader) +@@ -1026,7 +1039,7 @@ static HRESULT shader_scan_output_signature(struct wined3d_shader *shader) } /* Note that this does not count the loop register as an address register. */ @@ -366,7 +366,7 @@ index f29b49b902..294b65260e 100644 { struct wined3d_shader_signature_element input_signature_elements[max(MAX_ATTRIBS, MAX_REG_INPUT)]; struct wined3d_shader_signature_element output_signature_elements[MAX_REG_OUTPUT]; -@@ -1053,7 +1066,7 @@ static HRESULT shader_get_registers_used(struct wined3d_shader *shader, DWORD co +@@ -1052,7 +1065,7 @@ static HRESULT shader_get_registers_used(struct wined3d_shader *shader, DWORD co prev_ins = current_ins = ptr; reg_maps->shader_version = shader_version; @@ -375,7 +375,7 @@ index f29b49b902..294b65260e 100644 if (!(reg_maps->constf = heap_calloc(((min(shader->limits->constant_float, constf_size) + 31) / 32), sizeof(*reg_maps->constf)))) -@@ -3324,7 +3337,7 @@ static unsigned int shader_max_version_from_feature_level(enum wined3d_feature_l +@@ -3329,7 +3342,7 @@ static unsigned int shader_max_version_from_feature_level(enum wined3d_feature_l } static HRESULT shader_set_function(struct wined3d_shader *shader, struct wined3d_device *device, @@ -384,7 +384,7 @@ index f29b49b902..294b65260e 100644 { const struct wined3d_d3d_info *d3d_info = &shader->device->adapter->d3d_info; struct wined3d_shader_reg_maps *reg_maps = &shader->reg_maps; -@@ -3349,7 +3362,7 @@ static HRESULT shader_set_function(struct wined3d_shader *shader, struct wined3d +@@ -3354,7 +3367,7 @@ static HRESULT shader_set_function(struct wined3d_shader *shader, struct wined3d shader_trace_init(fe, shader->frontend_data); /* Second pass: figure out which registers are used, what the semantics are, etc. */ @@ -393,7 +393,7 @@ index f29b49b902..294b65260e 100644 return hr; if (version->type != type) -@@ -3688,14 +3701,19 @@ static HRESULT vertex_shader_init(struct wined3d_shader *shader, struct wined3d_ +@@ -3700,14 +3713,19 @@ static HRESULT vertex_shader_init(struct wined3d_shader *shader, struct wined3d_ const struct wined3d_shader_desc *desc, void *parent, const struct wined3d_parent_ops *parent_ops) { struct wined3d_shader_reg_maps *reg_maps = &shader->reg_maps; @@ -414,7 +414,7 @@ index f29b49b902..294b65260e 100644 { shader_cleanup(shader); return hr; -@@ -3799,7 +3817,7 @@ static HRESULT geometry_shader_init_stream_output(struct wined3d_shader *shader, +@@ -3865,7 +3883,7 @@ static HRESULT geometry_shader_init_stream_output(struct wined3d_shader *shader, { shader->reg_maps.shader_version = shader_version; shader->reg_maps.shader_version.type = WINED3D_SHADER_TYPE_GEOMETRY; @@ -423,7 +423,7 @@ index f29b49b902..294b65260e 100644 if (FAILED(hr = shader_scan_output_signature(shader))) return hr; } -@@ -3852,7 +3870,7 @@ static HRESULT geometry_shader_init(struct wined3d_shader *shader, struct wined3 +@@ -3915,7 +3933,7 @@ static HRESULT geometry_shader_init(struct wined3d_shader *shader, struct wined3 goto fail; if (shader->function @@ -432,7 +432,7 @@ index f29b49b902..294b65260e 100644 goto fail; return WINED3D_OK; -@@ -4182,7 +4200,7 @@ static HRESULT pixel_shader_init(struct wined3d_shader *shader, struct wined3d_d +@@ -4247,7 +4265,7 @@ static HRESULT pixel_shader_init(struct wined3d_shader *shader, struct wined3d_d return hr; if (FAILED(hr = shader_set_function(shader, device, @@ -441,7 +441,7 @@ index f29b49b902..294b65260e 100644 { shader_cleanup(shader); return hr; -@@ -4274,7 +4292,7 @@ HRESULT CDECL wined3d_shader_create_cs(struct wined3d_device *device, const stru +@@ -4339,7 +4357,7 @@ HRESULT CDECL wined3d_shader_create_cs(struct wined3d_device *device, const stru return hr; } @@ -450,7 +450,7 @@ index f29b49b902..294b65260e 100644 { shader_cleanup(object); heap_free(object); -@@ -4308,7 +4326,7 @@ HRESULT CDECL wined3d_shader_create_ds(struct wined3d_device *device, const stru +@@ -4373,7 +4391,7 @@ HRESULT CDECL wined3d_shader_create_ds(struct wined3d_device *device, const stru return hr; } @@ -459,7 +459,7 @@ index f29b49b902..294b65260e 100644 { shader_cleanup(object); heap_free(object); -@@ -4370,7 +4388,7 @@ HRESULT CDECL wined3d_shader_create_hs(struct wined3d_device *device, const stru +@@ -4435,7 +4453,7 @@ HRESULT CDECL wined3d_shader_create_hs(struct wined3d_device *device, const stru return hr; } @@ -469,10 +469,10 @@ index f29b49b902..294b65260e 100644 shader_cleanup(object); heap_free(object); diff --git a/dlls/wined3d/shader_sm1.c b/dlls/wined3d/shader_sm1.c -index 0c6bb93317..1051307e88 100644 +index 6dedc83684c..c0280965a30 100644 --- a/dlls/wined3d/shader_sm1.c +++ b/dlls/wined3d/shader_sm1.c -@@ -543,7 +543,7 @@ static void *shader_sm1_init(const DWORD *byte_code, size_t byte_code_size, +@@ -542,7 +542,7 @@ static void *shader_sm1_init(const DWORD *byte_code, size_t byte_code_size, major = WINED3D_SM1_VERSION_MAJOR(*byte_code); minor = WINED3D_SM1_VERSION_MINOR(*byte_code); @@ -482,12 +482,12 @@ index 0c6bb93317..1051307e88 100644 WARN("Invalid shader version %u.%u (%#x).\n", major, minor, *byte_code); return NULL; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index eef5d4fec2..cdfce0bea4 100644 +index 650aa2e2f63..a4aaa7a8d66 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -3354,6 +3354,13 @@ HRESULT wined3d_device_set_implicit_swapchain(struct wined3d_device *device, - struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; - void wined3d_device_uninit_3d(struct wined3d_device *device) DECLSPEC_HIDDEN; +@@ -3985,6 +3985,13 @@ static inline void wined3d_device_bo_map_unlock(struct wined3d_device *device) + LeaveCriticalSection(&device->bo_map_lock); + } +static inline BOOL wined3d_device_is_swvp_mode(const struct wined3d_device *device) +{ @@ -500,5 +500,5 @@ index eef5d4fec2..cdfce0bea4 100644 { const struct wined3d_d3d_info *d3d_info = &device->adapter->d3d_info; -- -2.25.1 +2.34.1 diff --git a/staging/upstream-commit b/staging/upstream-commit index 7a09fdf8..90278141 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -d318f43559dbb0093e22bab1aa0eb9dc01170cc2 +cfb1d2058fb47ff3f72501e0aaf35b97ea128036