diff --git a/patches/d3drm-IDirect3D3-support/0001-d3drm-Support-IDirect3D3-when-creating-device.patch b/patches/d3drm-IDirect3D3-support/0001-d3drm-Support-IDirect3D3-when-creating-device.patch deleted file mode 100644 index 8c5d457c..00000000 --- a/patches/d3drm-IDirect3D3-support/0001-d3drm-Support-IDirect3D3-when-creating-device.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 9ea60091ba885b5f63266374f49f0d63e2cf2767 Mon Sep 17 00:00:00 2001 -From: Alistair Leslie-Hughes -Date: Wed, 16 Dec 2020 11:07:05 +1100 -Subject: [PATCH] d3drm: Support IDirect3D3 when creating device - -Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=39346 ---- - dlls/d3drm/device.c | 26 ++++++++++++++++++++++++-- - 1 file changed, 24 insertions(+), 2 deletions(-) - -diff --git a/dlls/d3drm/device.c b/dlls/d3drm/device.c -index 2e1b5f2d24f..fff272197bf 100644 ---- a/dlls/d3drm/device.c -+++ b/dlls/d3drm/device.c -@@ -124,7 +124,9 @@ HRESULT d3drm_device_init(struct d3drm_device *device, UINT version, IDirectDraw - IDirectDrawSurface *ds = NULL; - IDirect3DDevice *device1 = NULL; - IDirect3DDevice2 *device2 = NULL; -+ IDirect3DDevice3 *device3 = NULL; - IDirect3D2 *d3d2 = NULL; -+ IDirect3D3 *d3d3 = NULL; - DDSURFACEDESC desc, surface_desc; - HRESULT hr; - -@@ -171,19 +173,29 @@ HRESULT d3drm_device_init(struct d3drm_device *device, UINT version, IDirectDraw - - if (version == 1) - hr = IDirectDrawSurface_QueryInterface(surface, &IID_IDirect3DRGBDevice, (void **)&device1); -- else -+ else if (version == 2) - { - IDirectDraw_QueryInterface(ddraw, &IID_IDirect3D2, (void**)&d3d2); - hr = IDirect3D2_CreateDevice(d3d2, &IID_IDirect3DRGBDevice, surface, &device2); - IDirect3D2_Release(d3d2); - } -+ else -+ { -+ IDirectDrawSurface4 *surface4 = NULL; -+ -+ IDirectDrawSurface_QueryInterface(surface, &IID_IDirectDrawSurface4, (void**)&surface4); -+ IDirectDraw_QueryInterface(ddraw, &IID_IDirect3D3, (void**)&d3d3); -+ hr = IDirect3D3_CreateDevice(d3d3, &IID_IDirect3DRGBDevice, surface4, &device3, NULL); -+ IDirectDrawSurface4_Release(surface4); -+ IDirect3D3_Release(d3d3); -+ } - if (FAILED(hr)) - { - IDirectDrawSurface_DeleteAttachedSurface(surface, 0, ds); - return hr; - } - -- if (version != 1) -+ if (version == 2) - { - hr = IDirect3DDevice2_QueryInterface(device2, &IID_IDirect3DDevice, (void**)&device1); - IDirect3DDevice2_Release(device2); -@@ -193,6 +205,16 @@ HRESULT d3drm_device_init(struct d3drm_device *device, UINT version, IDirectDraw - return hr; - } - } -+ else if (version == 3) -+ { -+ hr = IDirect3DDevice3_QueryInterface(device3, &IID_IDirect3DDevice, (void**)&device1); -+ IDirect3DDevice3_Release(device3); -+ if (FAILED(hr)) -+ { -+ IDirectDrawSurface_DeleteAttachedSurface(surface, 0, ds); -+ return hr; -+ } -+ } - device->device = device1; - device->width = desc.dwWidth; - device->height = desc.dwHeight; --- -2.29.2 - diff --git a/patches/d3drm-IDirect3D3-support/definition b/patches/d3drm-IDirect3D3-support/definition deleted file mode 100644 index 0cb63bff..00000000 --- a/patches/d3drm-IDirect3D3-support/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [39346] Support IDirect3D3 when creating device. diff --git a/patches/ntdll-CriticalSection/0003-ntdll-Use-fast-CS-functions-for-heap-locking.patch b/patches/ntdll-CriticalSection/0003-ntdll-Use-fast-CS-functions-for-heap-locking.patch index c7a2813f..4ddbf536 100644 --- a/patches/ntdll-CriticalSection/0003-ntdll-Use-fast-CS-functions-for-heap-locking.patch +++ b/patches/ntdll-CriticalSection/0003-ntdll-Use-fast-CS-functions-for-heap-locking.patch @@ -1,4 +1,4 @@ -From cad538b5197b0488f50d10eb58fa1b220e7d05dc Mon Sep 17 00:00:00 2001 +From de8040e1a8900116a6a3fa0f0560e4a3c66d4d71 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sat, 5 Aug 2017 03:39:23 +0200 Subject: [PATCH] ntdll: Use fast CS functions for heap locking. @@ -8,7 +8,7 @@ Subject: [PATCH] ntdll: Use fast CS functions for heap locking. 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/dlls/ntdll/heap.c b/dlls/ntdll/heap.c -index d7ac44a4247..3fd02770b7b 100644 +index 51567d0552b..b1dcb01cd4f 100644 --- a/dlls/ntdll/heap.c +++ b/dlls/ntdll/heap.c @@ -340,13 +340,13 @@ static inline ULONG heap_get_flags( const HEAP *heap, ULONG flags ) @@ -26,8 +26,8 @@ index d7ac44a4247..3fd02770b7b 100644 + leave_critical_section( &heap->cs ); } - /*********************************************************************** -@@ -1583,9 +1583,9 @@ HANDLE WINAPI RtlCreateHeap( ULONG flags, PVOID addr, SIZE_T totalSize, SIZE_T c + static void heap_set_status( const HEAP *heap, ULONG flags, NTSTATUS status ) +@@ -1577,9 +1577,9 @@ HANDLE WINAPI RtlCreateHeap( ULONG flags, PVOID addr, SIZE_T totalSize, SIZE_T c if (processHeap) { HEAP *heapPtr = subheap->heap; @@ -39,7 +39,7 @@ index d7ac44a4247..3fd02770b7b 100644 } else if (!addr) { -@@ -1629,9 +1629,9 @@ HANDLE WINAPI RtlDestroyHeap( HANDLE heap ) +@@ -1623,9 +1623,9 @@ HANDLE WINAPI RtlDestroyHeap( HANDLE heap ) if (heap == processHeap) return heap; /* cannot delete the main process heap */ /* remove it from the per-process list */ @@ -51,7 +51,7 @@ index d7ac44a4247..3fd02770b7b 100644 heapPtr->cs.DebugInfo->Spare[0] = 0; RtlDeleteCriticalSection( &heapPtr->cs ); -@@ -2242,7 +2242,7 @@ ULONG WINAPI RtlGetProcessHeaps( ULONG count, HANDLE *heaps ) +@@ -2171,7 +2171,7 @@ ULONG WINAPI RtlGetProcessHeaps( ULONG count, HANDLE *heaps ) ULONG total = 1; /* main heap */ struct list *ptr; @@ -60,7 +60,7 @@ index d7ac44a4247..3fd02770b7b 100644 LIST_FOR_EACH( ptr, &processHeap->entry ) total++; if (total <= count) { -@@ -2250,7 +2250,7 @@ ULONG WINAPI RtlGetProcessHeaps( ULONG count, HANDLE *heaps ) +@@ -2179,7 +2179,7 @@ ULONG WINAPI RtlGetProcessHeaps( ULONG count, HANDLE *heaps ) LIST_FOR_EACH( ptr, &processHeap->entry ) *heaps++ = LIST_ENTRY( ptr, HEAP, entry ); } diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 4761a21d..214a6ec7 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "3ded60bd1654dc689d24a23305f4a93acce3a6f2" + echo "b35faeb5035a8ed1480577a34603170fc0e2f901" } # Show version information @@ -92,7 +92,6 @@ patch_enable_all () enable_comdlg32_lpstrFileTitle="$1" enable_crypt32_CMS_Certificates="$1" enable_cryptext_CryptExtOpenCER="$1" - enable_d3drm_IDirect3D3_support="$1" enable_d3dx11_43_D3DX11CreateTextureFromMemory="$1" enable_d3dx9_36_BumpLuminance="$1" enable_d3dx9_36_D3DXDisassembleShader="$1" @@ -302,9 +301,6 @@ patch_enable () cryptext-CryptExtOpenCER) enable_cryptext_CryptExtOpenCER="$2" ;; - d3drm-IDirect3D3-support) - enable_d3drm_IDirect3D3_support="$2" - ;; d3dx11_43-D3DX11CreateTextureFromMemory) enable_d3dx11_43_D3DX11CreateTextureFromMemory="$2" ;; @@ -1492,18 +1488,6 @@ if test "$enable_cryptext_CryptExtOpenCER" -eq 1; then patch_apply cryptext-CryptExtOpenCER/0001-cryptext-Implement-CryptExtOpenCER.patch fi -# Patchset d3drm-IDirect3D3-support -# | -# | This patchset fixes the following Wine bugs: -# | * [#39346] Support IDirect3D3 when creating device. -# | -# | Modified files: -# | * dlls/d3drm/device.c -# | -if test "$enable_d3drm_IDirect3D3_support" -eq 1; then - patch_apply d3drm-IDirect3D3-support/0001-d3drm-Support-IDirect3D3-when-creating-device.patch -fi - # Patchset d3dx11_43-D3DX11CreateTextureFromMemory # | # | This patchset fixes the following Wine bugs: diff --git a/staging/upstream-commit b/staging/upstream-commit index aeacb155..4679f976 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -3ded60bd1654dc689d24a23305f4a93acce3a6f2 +b35faeb5035a8ed1480577a34603170fc0e2f901