diff --git a/patches/d3d11-Deferred_Context/0002-wined3d-Add-wined3d_resource_map_info-function.patch b/patches/d3d11-Deferred_Context/0002-wined3d-Add-wined3d_resource_map_info-function.patch index aebc3824..46377a84 100644 --- a/patches/d3d11-Deferred_Context/0002-wined3d-Add-wined3d_resource_map_info-function.patch +++ b/patches/d3d11-Deferred_Context/0002-wined3d-Add-wined3d_resource_map_info-function.patch @@ -1,51 +1,25 @@ -From d1d611696b6cb9d61a811e56df4cdf7d51cd75b4 Mon Sep 17 00:00:00 2001 +From 701a77256d55032b60e454279013984844dffd78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 19 Jan 2017 16:54:42 +0100 Subject: [PATCH] wined3d: Add wined3d_resource_map_info function. --- - dlls/wined3d/buffer.c | 57 ++++++++++++++++++++++++++++++++++ - dlls/wined3d/resource.c | 8 +++++ - dlls/wined3d/texture.c | 31 ++++++++++++++++++ + dlls/wined3d/buffer.c | 19 +++++++++++++++++++ + dlls/wined3d/resource.c | 8 ++++++++ + dlls/wined3d/texture.c | 31 +++++++++++++++++++++++++++++++ dlls/wined3d/wined3d.spec | 1 + dlls/wined3d/wined3d_private.h | 2 ++ - include/wine/wined3d.h | 9 ++++++ - 6 files changed, 108 insertions(+) + include/wine/wined3d.h | 9 +++++++++ + 6 files changed, 70 insertions(+) diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c -index 18a0d721178..46d05576714 100644 +index 18a0d72117..a6117942ef 100644 --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c -@@ -1255,6 +1255,62 @@ static void buffer_resource_preload(struct wined3d_resource *resource) - context_release(context); +@@ -1104,6 +1104,24 @@ static HRESULT buffer_resource_sub_resource_map(struct wined3d_resource *resourc + return WINED3D_OK; } -+static HRESULT buffer_resource_sub_resource_map(struct wined3d_resource *resource, unsigned int sub_resource_idx, -+ struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags) -+{ -+ struct wined3d_buffer_gl *buffer_gl = wined3d_buffer_gl(buffer_from_resource(resource)); -+ UINT offset, size; -+ -+ if (sub_resource_idx) -+ { -+ WARN("Invalid sub_resource_idx %u.\n", sub_resource_idx); -+ return E_INVALIDARG; -+ } -+ -+ if (box) -+ { -+ offset = box->left; -+ size = box->right - box->left; -+ } -+ else -+ { -+ offset = size = 0; -+ } -+ -+ map_desc->row_pitch = map_desc->slice_pitch = resource->size; -+ return wined3d_buffer_gl_map(buffer_gl, offset, size, (BYTE **)&map_desc->data, flags); -+} -+ +static HRESULT buffer_resource_sub_resource_map_info(struct wined3d_resource *resource, unsigned int sub_resource_idx, + struct wined3d_map_info *info, DWORD flags) +{ @@ -64,22 +38,10 @@ index 18a0d721178..46d05576714 100644 + return WINED3D_OK; +} + -+static HRESULT buffer_resource_sub_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx) -+{ -+ if (sub_resource_idx) -+ { -+ WARN("Invalid sub_resource_idx %u.\n", sub_resource_idx); -+ return E_INVALIDARG; -+ } -+ -+ wined3d_buffer_gl_unmap(wined3d_buffer_gl(buffer_from_resource(resource))); -+ return WINED3D_OK; -+} -+ - static const struct wined3d_resource_ops buffer_resource_ops = + static HRESULT buffer_resource_sub_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx) { - buffer_resource_incref, -@@ -1262,6 +1318,7 @@ static const struct wined3d_resource_ops buffer_resource_ops = + struct wined3d_buffer *buffer = buffer_from_resource(resource); +@@ -1262,6 +1280,7 @@ static const struct wined3d_resource_ops buffer_resource_ops = buffer_resource_preload, buffer_unload, buffer_resource_sub_resource_map, @@ -88,7 +50,7 @@ index 18a0d721178..46d05576714 100644 }; diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c -index bba940f42cb..ff31c004b06 100644 +index bba940f42c..ff31c004b0 100644 --- a/dlls/wined3d/resource.c +++ b/dlls/wined3d/resource.c @@ -383,6 +383,14 @@ HRESULT CDECL wined3d_resource_map(struct wined3d_resource *resource, unsigned i @@ -107,7 +69,7 @@ index bba940f42cb..ff31c004b06 100644 { TRACE("resource %p, sub_resource_idx %u.\n", resource, sub_resource_idx); diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c -index ff25f64043d..37054833c55 100644 +index ff25f64043..37054833c5 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c @@ -3024,6 +3024,36 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour @@ -156,7 +118,7 @@ index ff25f64043d..37054833c55 100644 }; diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec -index edd4a70d979..742126c4d24 100644 +index edd4a70d97..742126c4d2 100644 --- a/dlls/wined3d/wined3d.spec +++ b/dlls/wined3d/wined3d.spec @@ -216,6 +216,7 @@ @@ -168,7 +130,7 @@ index edd4a70d979..742126c4d24 100644 @ cdecl wined3d_resource_set_parent(ptr ptr) @ cdecl wined3d_resource_set_priority(ptr long) diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index 5ce23f85f6b..740e5352172 100644 +index 5ce23f85f6..740e535217 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -3414,6 +3414,8 @@ struct wined3d_resource_ops @@ -181,10 +143,10 @@ index 5ce23f85f6b..740e5352172 100644 }; diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h -index 9f9c8496838..869600ace40 100644 +index 3e46c23c14..c60597bb4c 100644 --- a/include/wine/wined3d.h +++ b/include/wine/wined3d.h -@@ -1835,6 +1835,13 @@ struct wined3d_map_desc +@@ -1833,6 +1833,13 @@ struct wined3d_map_desc void *data; }; @@ -198,7 +160,7 @@ index 9f9c8496838..869600ace40 100644 struct wined3d_sub_resource_data { const void *data; -@@ -2602,6 +2609,8 @@ void * __cdecl wined3d_resource_get_parent(const struct wined3d_resource *resour +@@ -2600,6 +2607,8 @@ void * __cdecl wined3d_resource_get_parent(const struct wined3d_resource *resour DWORD __cdecl wined3d_resource_get_priority(const struct wined3d_resource *resource); HRESULT __cdecl wined3d_resource_map(struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags); diff --git a/patches/ntdll-Serial_Port_Detection/0001-ntdll-Do-a-device-check-before-returning-a-default-s.patch b/patches/ntdll-Serial_Port_Detection/0001-ntdll-Do-a-device-check-before-returning-a-default-s.patch index 4553e792..a9325685 100644 --- a/patches/ntdll-Serial_Port_Detection/0001-ntdll-Do-a-device-check-before-returning-a-default-s.patch +++ b/patches/ntdll-Serial_Port_Detection/0001-ntdll-Do-a-device-check-before-returning-a-default-s.patch @@ -1,4 +1,4 @@ -From 00f64eda25de32736d92318f8f5ed50f301dc687 Mon Sep 17 00:00:00 2001 +From ce692707e93af5ff6df593fe9543a2049544cbaf Mon Sep 17 00:00:00 2001 From: Alex Henrie Date: Tue, 29 Dec 2015 00:48:02 -0700 Subject: [PATCH] mountmgr.sys: Do a device check before returning a default @@ -6,11 +6,11 @@ Subject: [PATCH] mountmgr.sys: Do a device check before returning a default Fixes https://bugs.winehq.org/show_bug.cgi?id=39793 --- - dlls/mountmgr.sys/device.c | 36 ++++++++++++++++++++++++++++++++++++ - 1 file changed, 36 insertions(+) + dlls/mountmgr.sys/device.c | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) diff --git a/dlls/mountmgr.sys/device.c b/dlls/mountmgr.sys/device.c -index 87609bf3de2..37635e3e6e8 100644 +index e77f890404..2d47d7beb9 100644 --- a/dlls/mountmgr.sys/device.c +++ b/dlls/mountmgr.sys/device.c @@ -25,6 +25,9 @@ @@ -23,22 +23,10 @@ index 87609bf3de2..37635e3e6e8 100644 #include #define NONAMELESSUNION -@@ -1102,6 +1105,39 @@ static BOOL create_port_device( DRIVER_OBJECT *driver, int n, const char *unix_p +@@ -1102,6 +1105,27 @@ static BOOL create_port_device( DRIVER_OBJECT *driver, int n, const char *unix_p sprintfW( dos_name, dos_name_format, n ); -+ /* check for override */ -+ size = sizeof(reg_value); -+ if (RegQueryValueExW( wine_ports_key, dos_name, NULL, &type, (BYTE *)reg_value, &size ) == 0 && type == REG_SZ) -+ { -+ if (!reg_value[0] || !WideCharToMultiByte( CP_UNIXCP, WC_ERR_INVALID_CHARS, reg_value, size/sizeof(WCHAR), -+ override_path, sizeof(override_path), NULL, NULL)) -+ return FALSE; -+ unix_path = override_path; -+ } -+ if (!unix_path) -+ return FALSE; -+ +#ifdef linux + /* Serial port device files almost always exist on Linux even if the corresponding serial + * ports don't exist. Do a basic functionality check before advertising a serial port. */