From a423a7087ff2dad6f2def0cfe8da0985291c0cf5 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Thu, 1 Nov 2018 08:08:00 +1100 Subject: [PATCH] Rebase against 3056f9beb95f66e598ab51d5d37b21a548b3e5f8 --- ...dering-targets-in-video-memory-if-po.patch | 39 ++++++++++----- .../0001-ntdll-Add-dummy-apiset-to-PEB.patch | 33 ++++++------ patches/patchinstall.sh | 2 +- ...-a-new-alloc_handle-object-callback..patch | 50 +++++++++++-------- 4 files changed, 77 insertions(+), 47 deletions(-) diff --git a/patches/ddraw-Rendering_Targets/0001-ddraw-Create-rendering-targets-in-video-memory-if-po.patch b/patches/ddraw-Rendering_Targets/0001-ddraw-Create-rendering-targets-in-video-memory-if-po.patch index 62e5bc4e..50fcc507 100644 --- a/patches/ddraw-Rendering_Targets/0001-ddraw-Create-rendering-targets-in-video-memory-if-po.patch +++ b/patches/ddraw-Rendering_Targets/0001-ddraw-Create-rendering-targets-in-video-memory-if-po.patch @@ -1,4 +1,4 @@ -From 37a07b352d184b7d7c53084eb6e2d3190f8f581d Mon Sep 17 00:00:00 2001 +From cf433894ff56fda93491753843e0f4f658f67c8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Wed, 29 Jul 2015 17:09:50 +0200 Subject: [PATCH] ddraw: Create rendering targets in video memory if possible. @@ -8,14 +8,14 @@ Based on a patch by Henri Verbeet. dlls/ddraw/ddraw.c | 6 +++--- dlls/ddraw/ddraw_private.h | 3 ++- dlls/ddraw/device.c | 23 ++++++++++++++--------- - dlls/ddraw/surface.c | 21 +++++++++++++++++++-- - 4 files changed, 38 insertions(+), 15 deletions(-) + dlls/ddraw/surface.c | 36 ++++++++++++++++++++++++++++++++++-- + 4 files changed, 53 insertions(+), 15 deletions(-) diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c -index e9e06ee..6677220 100644 +index 9a40bc9..6f3d058 100644 --- a/dlls/ddraw/ddraw.c +++ b/dlls/ddraw/ddraw.c -@@ -4211,7 +4211,7 @@ static HRESULT WINAPI d3d7_CreateDevice(IDirect3D7 *iface, REFCLSID riid, +@@ -4210,7 +4210,7 @@ static HRESULT WINAPI d3d7_CreateDevice(IDirect3D7 *iface, REFCLSID riid, TRACE("iface %p, riid %s, surface %p, device %p.\n", iface, debugstr_guid(riid), surface, device); wined3d_mutex_lock(); @@ -24,7 +24,7 @@ index e9e06ee..6677220 100644 { *device = &object->IDirect3DDevice7_iface; } -@@ -4240,7 +4240,7 @@ static HRESULT WINAPI d3d3_CreateDevice(IDirect3D3 *iface, REFCLSID riid, +@@ -4239,7 +4239,7 @@ static HRESULT WINAPI d3d3_CreateDevice(IDirect3D3 *iface, REFCLSID riid, return CLASS_E_NOAGGREGATION; wined3d_mutex_lock(); @@ -33,7 +33,7 @@ index e9e06ee..6677220 100644 { *device = &device_impl->IDirect3DDevice3_iface; } -@@ -4266,7 +4266,7 @@ static HRESULT WINAPI d3d2_CreateDevice(IDirect3D2 *iface, REFCLSID riid, +@@ -4265,7 +4265,7 @@ static HRESULT WINAPI d3d2_CreateDevice(IDirect3D2 *iface, REFCLSID riid, iface, debugstr_guid(riid), surface, device); wined3d_mutex_lock(); @@ -64,7 +64,7 @@ index 495cb8b..4af638b 100644 enum wined3d_depth_buffer_type d3d_device_update_depth_stencil(struct d3d_device *device) DECLSPEC_HIDDEN; diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c -index 7866c28..81ace96 100644 +index 0d48c7d..2bef17d 100644 --- a/dlls/ddraw/device.c +++ b/dlls/ddraw/device.c @@ -1854,7 +1854,7 @@ static HRESULT d3d_device7_SetRenderTarget(IDirect3DDevice7 *iface, @@ -152,7 +152,7 @@ index 7866c28..81ace96 100644 WARN("Failed to initialize device, hr %#x.\n", hr); heap_free(object); diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c -index d201d9d..41fe6a1 100644 +index 5ce1d85..e729348 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -226,7 +226,7 @@ static HRESULT WINAPI ddraw_surface7_QueryInterface(IDirectDrawSurface7 *iface, @@ -164,11 +164,26 @@ index d201d9d..41fe6a1 100644 1, &This->device1, (IUnknown *)&This->IDirectDrawSurface_iface))) { This->device1 = NULL; -@@ -6155,7 +6155,24 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_ +@@ -6162,7 +6162,39 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_ if (desc->ddsCaps.dwCaps & DDSCAPS_SYSTEMMEMORY) { - wined3d_desc.access = WINED3D_RESOURCE_ACCESS_CPU ++ unsigned int bind_flags = 0; ++ ++ if (desc->ddsCaps.dwCaps2 & DDSCAPS2_CUBEMAP) ++ { ++ bind_flags |= WINED3D_BIND_SHADER_RESOURCE; ++ } ++ else if (desc->ddsCaps.dwCaps & DDSCAPS_TEXTURE) ++ { ++ bind_flags |= WINED3D_BIND_SHADER_RESOURCE; ++ } ++ ++ if (desc->ddsCaps.dwCaps & DDSCAPS_ZBUFFER) ++ bind_flags |= WINED3D_BIND_DEPTH_STENCIL; ++ else if (desc->ddsCaps.dwCaps & DDSCAPS_3DDEVICE) ++ bind_flags |= WINED3D_BIND_RENDER_TARGET; + /* + * The ddraw RGB device allows to use system memory surfaces as rendering target. + * This does not cause problems because the RGB device does software rasterization @@ -180,7 +195,7 @@ index d201d9d..41fe6a1 100644 + if ((desc->ddsCaps.dwCaps & DDSCAPS_3DDEVICE) && + SUCCEEDED(hr = wined3d_check_device_format(ddraw->wined3d, WINED3DADAPTER_DEFAULT, + WINED3D_DEVICE_TYPE_HAL, mode.format_id, WINED3DUSAGE_RENDERTARGET, -+ WINED3D_RTYPE_TEXTURE_2D, wined3d_desc.format))) ++ bind_flags, WINED3D_RTYPE_TEXTURE_2D, wined3d_desc.format))) + { + FIXME("Application wants to create rendering target in system memory, using video memory instead\n"); + wined3d_desc.usage |= WINED3DUSAGE_RENDERTARGET; @@ -191,5 +206,5 @@ index d201d9d..41fe6a1 100644 } else -- -2.7.4 +1.9.1 diff --git a/patches/ntdll-ApiSetMap/0001-ntdll-Add-dummy-apiset-to-PEB.patch b/patches/ntdll-ApiSetMap/0001-ntdll-Add-dummy-apiset-to-PEB.patch index ea1ec082..def2ed57 100644 --- a/patches/ntdll-ApiSetMap/0001-ntdll-Add-dummy-apiset-to-PEB.patch +++ b/patches/ntdll-ApiSetMap/0001-ntdll-Add-dummy-apiset-to-PEB.patch @@ -1,4 +1,4 @@ -From f41ca623297693e58b3d286245fa01b4c9d9f5b1 Mon Sep 17 00:00:00 2001 +From 6b07556e47ab6db08cb68371b706f11525bd2d16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Mon, 3 Apr 2017 01:06:26 +0200 Subject: [PATCH] ntdll: Add dummy apiset to PEB. @@ -6,16 +6,16 @@ Subject: [PATCH] ntdll: Add dummy apiset to PEB. --- dlls/ntdll/thread.c | 2 ++ include/Makefile.in | 1 + - include/apiset.h | 33 +++++++++++++++++++++++++++++++++ + include/apiset.h | 38 ++++++++++++++++++++++++++++++++++++++ include/winternl.h | 3 ++- - 4 files changed, 38 insertions(+), 1 deletion(-) + 4 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 include/apiset.h diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c -index 34e12ad..b1d04ab 100644 +index c4e02da..79bc4e2 100644 --- a/dlls/ntdll/thread.c +++ b/dlls/ntdll/thread.c -@@ -75,6 +75,7 @@ static WCHAR current_dir[MAX_NT_PATH_LENGTH]; +@@ -72,6 +72,7 @@ static WCHAR current_dir[MAX_PATH]; static RTL_BITMAP tls_bitmap; static RTL_BITMAP tls_expansion_bitmap; static RTL_BITMAP fls_bitmap; @@ -23,7 +23,7 @@ index 34e12ad..b1d04ab 100644 static int nb_threads = 1; static RTL_CRITICAL_SECTION peb_lock; -@@ -396,6 +397,7 @@ HANDLE thread_init(void) +@@ -308,6 +309,7 @@ void thread_init(void) peb->FastPebLock = &peb_lock; peb->ProcessParameters = ¶ms; @@ -32,23 +32,23 @@ index 34e12ad..b1d04ab 100644 peb->TlsExpansionBitmap = &tls_expansion_bitmap; peb->FlsBitmap = &fls_bitmap; diff --git a/include/Makefile.in b/include/Makefile.in -index ac0ff21..be384d5 100644 +index cc78b1c..e6d554b 100644 --- a/include/Makefile.in +++ b/include/Makefile.in -@@ -14,6 +14,7 @@ SOURCES = \ +@@ -13,6 +13,7 @@ SOURCES = \ + amaudio.h \ amstream.idl \ amvideo.idl \ - appcompatapi.h \ + apiset.h \ + appcompatapi.h \ appmgmt.h \ appmodel.h \ - asptlb.idl \ diff --git a/include/apiset.h b/include/apiset.h new file mode 100644 -index 0000000..5f91171 +index 0000000..f55f804 --- /dev/null +++ b/include/apiset.h -@@ -0,0 +1,33 @@ +@@ -0,0 +1,38 @@ +/* + * Copyright (C) 2017 Michael Müller + * @@ -66,6 +66,8 @@ index 0000000..5f91171 + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ ++#ifndef _API_SET_H_ ++#define _API_SET_H_ + +#include + @@ -82,8 +84,11 @@ index 0000000..5f91171 + ULONG Count; + API_SET_NAMESPACE_ENTRY Array[1]; +} API_SET_NAMESPACE_ARRAY, *PAPI_SET_NAMESPACE_ARRAY; ++ ++#endif ++ diff --git a/include/winternl.h b/include/winternl.h -index 9dd95c3..0701ed4 100644 +index 9c88613..c09f462 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -23,6 +23,7 @@ @@ -94,7 +99,7 @@ index 9dd95c3..0701ed4 100644 #ifdef __cplusplus extern "C" { -@@ -279,7 +280,7 @@ typedef struct _PEB +@@ -286,7 +287,7 @@ typedef struct _PEB ULONG EnvironmentUpdateCount; /* 028/050 */ PVOID KernelCallbackTable; /* 02c/058 */ ULONG Reserved[2]; /* 030/060 */ diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 3296068a..e31400bd 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "3d5a2567977455d04e4896368a71db74e7b9074b" + echo "3056f9beb95f66e598ab51d5d37b21a548b3e5f8" } # Show version information diff --git a/patches/server-Desktop_Refcount/0001-server-Introduce-a-new-alloc_handle-object-callback..patch b/patches/server-Desktop_Refcount/0001-server-Introduce-a-new-alloc_handle-object-callback..patch index 6058d509..845e0266 100644 --- a/patches/server-Desktop_Refcount/0001-server-Introduce-a-new-alloc_handle-object-callback..patch +++ b/patches/server-Desktop_Refcount/0001-server-Introduce-a-new-alloc_handle-object-callback..patch @@ -1,4 +1,4 @@ -From 231b7707b5a3f79c63ac3542ba58bf39fc04e972 Mon Sep 17 00:00:00 2001 +From a38788ceb03df268149adad0c74b300220003eca Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Fri, 4 Dec 2015 10:36:47 +0100 Subject: [PATCH] server: Introduce a new alloc_handle object callback. (v2) @@ -22,7 +22,7 @@ Signed-off-by: Sebastian Lackner server/mailslot.c | 3 +++ server/mapping.c | 3 +++ server/mutex.c | 1 + - server/named_pipe.c | 4 ++++ + server/named_pipe.c | 7 ++++++- server/object.c | 4 ++++ server/object.h | 5 ++++- server/process.c | 3 +++ @@ -39,10 +39,10 @@ Signed-off-by: Sebastian Lackner server/timer.c | 1 + server/token.c | 1 + server/winstation.c | 2 ++ - 34 files changed, 75 insertions(+), 3 deletions(-) + 34 files changed, 77 insertions(+), 4 deletions(-) diff --git a/server/async.c b/server/async.c -index f2674bb..4828bcb 100644 +index cadeda3..aab4085 100644 --- a/server/async.c +++ b/server/async.c @@ -79,6 +79,7 @@ static const struct object_ops async_ops = @@ -234,7 +234,7 @@ index cfc0f6a..608fafb 100644 no_destroy /* destroy */ }; diff --git a/server/fd.c b/server/fd.c -index e2d6143..52f70a3 100644 +index 119fae6..5dcd382 100644 --- a/server/fd.c +++ b/server/fd.c @@ -218,6 +218,7 @@ static const struct object_ops fd_ops = @@ -270,7 +270,7 @@ index e2d6143..52f70a3 100644 no_destroy /* destroy */ }; diff --git a/server/file.c b/server/file.c -index 6840223..5eb5e65 100644 +index 8d39f30..2d9134c 100644 --- a/server/file.c +++ b/server/file.c @@ -95,6 +95,7 @@ static const struct object_ops file_ops = @@ -367,7 +367,7 @@ index 95308c4..bc9089b 100644 mailslot_device_destroy /* destroy */ }; diff --git a/server/mapping.c b/server/mapping.c -index 1be6680..fb58376 100644 +index bc59b21..ca803a4 100644 --- a/server/mapping.c +++ b/server/mapping.c @@ -77,6 +77,7 @@ static const struct object_ops ranges_ops = @@ -407,7 +407,7 @@ index d1887e4..a2a0a24 100644 mutex_destroy /* destroy */ }; diff --git a/server/named_pipe.c b/server/named_pipe.c -index 19a5426..bc4d28f 100644 +index 19a5426..8bb2283 100644 --- a/server/named_pipe.c +++ b/server/named_pipe.c @@ -134,6 +134,7 @@ static const struct object_ops named_pipe_ops = @@ -434,14 +434,24 @@ index 19a5426..bc4d28f 100644 fd_close_handle, /* close_handle */ pipe_end_destroy /* destroy */ }; -@@ -263,6 +266,7 @@ static const struct object_ops named_pipe_device_ops = +@@ -262,7 +265,8 @@ static const struct object_ops named_pipe_device_ops = + directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ named_pipe_device_open_file, /* open_file */ - no_close_handle, /* close_handle */ +- no_close_handle, /* close_handle */ ++ no_alloc_handle, /* alloc_handle */ + fd_close_handle, /* close_handle */ named_pipe_device_destroy /* destroy */ }; +@@ -290,6 +294,7 @@ static const struct object_ops named_pipe_device_file_ops = + no_link_name, /* link_name */ + NULL, /* unlink_name */ + no_open_file, /* open_file */ ++ no_alloc_handle, /* alloc_handle */ + fd_close_handle, /* close_handle */ + named_pipe_device_file_destroy /* destroy */ + }; diff --git a/server/object.c b/server/object.c index 4455718..14cd38e 100644 --- a/server/object.c @@ -482,10 +492,10 @@ index b5c50e1..72ad852 100644 extern void no_destroy( struct object *obj ); #ifdef DEBUG_OBJECTS diff --git a/server/process.c b/server/process.c -index 5938fb4..c0a0113 100644 +index 3bd545a..5274dc3 100644 --- a/server/process.c +++ b/server/process.c -@@ -85,6 +85,7 @@ static const struct object_ops process_ops = +@@ -84,6 +84,7 @@ static const struct object_ops process_ops = no_link_name, /* link_name */ NULL, /* unlink_name */ no_open_file, /* open_file */ @@ -493,7 +503,7 @@ index 5938fb4..c0a0113 100644 no_close_handle, /* close_handle */ process_destroy /* destroy */ }; -@@ -134,6 +135,7 @@ static const struct object_ops startup_info_ops = +@@ -133,6 +134,7 @@ static const struct object_ops startup_info_ops = no_link_name, /* link_name */ NULL, /* unlink_name */ no_open_file, /* open_file */ @@ -501,7 +511,7 @@ index 5938fb4..c0a0113 100644 no_close_handle, /* close_handle */ startup_info_destroy /* destroy */ }; -@@ -177,6 +179,7 @@ static const struct object_ops job_ops = +@@ -176,6 +178,7 @@ static const struct object_ops job_ops = directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ no_open_file, /* open_file */ @@ -510,7 +520,7 @@ index 5938fb4..c0a0113 100644 job_destroy /* destroy */ }; diff --git a/server/queue.c b/server/queue.c -index f5d3b19..f51a8f0 100644 +index f274dfb..ca9d677 100644 --- a/server/queue.c +++ b/server/queue.c @@ -181,6 +181,7 @@ static const struct object_ops msg_queue_ops = @@ -542,7 +552,7 @@ index 9e6815d..21a6be5 100644 key_destroy /* destroy */ }; diff --git a/server/request.c b/server/request.c -index 86f293f..f75f21e 100644 +index c10c4e6..4d0e673 100644 --- a/server/request.c +++ b/server/request.c @@ -107,6 +107,7 @@ static const struct object_ops master_socket_ops = @@ -590,7 +600,7 @@ index 74416fa..4b2b8c4 100644 handler_destroy /* destroy */ }; diff --git a/server/snapshot.c b/server/snapshot.c -index a32207c..47316d0 100644 +index e35588a..6e788ab 100644 --- a/server/snapshot.c +++ b/server/snapshot.c @@ -71,6 +71,7 @@ static const struct object_ops snapshot_ops = @@ -634,7 +644,7 @@ index 9199bc5..ecc0e43 100644 symlink_destroy /* destroy */ }; diff --git a/server/thread.c b/server/thread.c -index 79e7e1a..b52649e 100644 +index 7162fc3..7e9419b 100644 --- a/server/thread.c +++ b/server/thread.c @@ -120,6 +120,7 @@ static const struct object_ops thread_apc_ops = @@ -666,10 +676,10 @@ index 3a786fb..95df28f 100644 timer_destroy /* destroy */ }; diff --git a/server/token.c b/server/token.c -index e7b64b2..5df4e35 100644 +index d88f16c..57c2267 100644 --- a/server/token.c +++ b/server/token.c -@@ -161,6 +161,7 @@ static const struct object_ops token_ops = +@@ -155,6 +155,7 @@ static const struct object_ops token_ops = no_link_name, /* link_name */ NULL, /* unlink_name */ no_open_file, /* open_file */