diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 185004fc..68434a70 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "fca636a01cfd1ef213326125582139bdd72a287a" + echo "ebb320fa37f2ad27649f571946af038e9d70ced2" } # Show version information diff --git a/patches/wined3d-CSMT_Main/0015-wined3d-Invalidate-containers-via-callback.patch b/patches/wined3d-CSMT_Main/0015-wined3d-Invalidate-containers-via-callback.patch index 73a1bbb3..1196c941 100644 --- a/patches/wined3d-CSMT_Main/0015-wined3d-Invalidate-containers-via-callback.patch +++ b/patches/wined3d-CSMT_Main/0015-wined3d-Invalidate-containers-via-callback.patch @@ -1,4 +1,4 @@ -From 28ac147348a282c737e546db1c83c213060915a0 Mon Sep 17 00:00:00 2001 +From d1b60dedae0926dd9dd413f721103700624f8da6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Sun, 17 Nov 2013 18:44:48 +0100 Subject: wined3d: Invalidate containers via callback. @@ -13,7 +13,7 @@ Subject: wined3d: Invalidate containers via callback. 6 files changed, 30 insertions(+), 3 deletions(-) diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c -index 989026f..d9bc820 100644 +index 19df398..7adfe79 100644 --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c @@ -1123,11 +1123,17 @@ static ULONG buffer_resource_decref(struct wined3d_resource *resource) @@ -35,10 +35,10 @@ index 989026f..d9bc820 100644 static HRESULT buffer_init(struct wined3d_buffer *buffer, struct wined3d_device *device, diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c -index 89865ef..a63eab8 100644 +index e54781f..35a1a14 100644 --- a/dlls/wined3d/resource.c +++ b/dlls/wined3d/resource.c -@@ -375,4 +375,6 @@ void wined3d_resource_invalidate_location(struct wined3d_resource *resource, DWO +@@ -458,4 +458,6 @@ void wined3d_resource_invalidate_location(struct wined3d_resource *resource, DWO TRACE("Resource %p, setting %s.\n", resource, wined3d_debug_location(location)); resource->locations &= ~location; TRACE("new location flags are %s.\n", wined3d_debug_location(resource->locations)); @@ -46,10 +46,10 @@ index 89865ef..a63eab8 100644 + resource->resource_ops->resource_location_invalidated(resource, location); } diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index 909d405..1a57219 100644 +index 1d22d49..bbf485f 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c -@@ -1273,11 +1273,17 @@ static void surface_unload(struct wined3d_resource *resource) +@@ -1219,11 +1219,17 @@ static void surface_unload(struct wined3d_resource *resource) resource_unload(resource); } @@ -68,10 +68,10 @@ index 909d405..1a57219 100644 static const struct wined3d_surface_ops surface_ops = diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c -index 522ffd6..f2bba1a 100644 +index bd1bdd7..d4a5f54 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c -@@ -1036,11 +1036,17 @@ static void wined3d_texture_unload(struct wined3d_resource *resource) +@@ -969,11 +969,17 @@ static void wined3d_texture_unload(struct wined3d_resource *resource) wined3d_texture_unload_gl_texture(texture); } @@ -90,10 +90,10 @@ index 522ffd6..f2bba1a 100644 static HRESULT cubetexture_init(struct wined3d_texture *texture, const struct wined3d_resource_desc *desc, diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c -index 722f92e..2cc0baf 100644 +index 12b9a3b..01ba73a 100644 --- a/dlls/wined3d/volume.c +++ b/dlls/wined3d/volume.c -@@ -632,10 +632,7 @@ HRESULT CDECL wined3d_volume_map(struct wined3d_volume *volume, +@@ -604,10 +604,7 @@ HRESULT wined3d_volume_map(struct wined3d_volume *volume, } if (!(flags & (WINED3D_MAP_NO_DIRTY_UPDATE | WINED3D_MAP_READONLY))) @@ -104,8 +104,8 @@ index 722f92e..2cc0baf 100644 volume->resource.map_count++; -@@ -689,11 +686,20 @@ static ULONG volume_resource_decref(struct wined3d_resource *resource) - return wined3d_volume_decref(volume_from_resource(resource)); +@@ -662,11 +659,20 @@ static ULONG volume_resource_decref(struct wined3d_resource *resource) + return wined3d_texture_decref(volume->container); } +static void wined3d_volume_location_invalidated(struct wined3d_resource *resource, DWORD location) @@ -126,10 +126,10 @@ index 722f92e..2cc0baf 100644 static HRESULT volume_init(struct wined3d_volume *volume, struct wined3d_texture *container, diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index fd82ec3..acee894 100644 +index c317b96..25af997 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -2068,6 +2068,7 @@ struct wined3d_resource_ops +@@ -2145,6 +2145,7 @@ struct wined3d_resource_ops ULONG (*resource_incref)(struct wined3d_resource *resource); ULONG (*resource_decref)(struct wined3d_resource *resource); void (*resource_unload)(struct wined3d_resource *resource); @@ -138,5 +138,5 @@ index fd82ec3..acee894 100644 struct wined3d_resource -- -2.2.1 +2.6.0 diff --git a/patches/wined3d-CSMT_Main/0034-wined3d-Move-check_block_align-to-resource.c.patch b/patches/wined3d-CSMT_Main/0034-wined3d-Move-check_block_align-to-resource.c.patch index 0db7cd14..2938ff15 100644 --- a/patches/wined3d-CSMT_Main/0034-wined3d-Move-check_block_align-to-resource.c.patch +++ b/patches/wined3d-CSMT_Main/0034-wined3d-Move-check_block_align-to-resource.c.patch @@ -1,4 +1,4 @@ -From 1ac9592825543babf6c279659888dfad48f5d3bc Mon Sep 17 00:00:00 2001 +From 229f5e781649be372e0c19c65009bd776677b251 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Thu, 19 Sep 2013 14:55:00 +0200 Subject: wined3d: Move check_block_align to resource.c @@ -76,11 +76,11 @@ index 469790e..4e17620 100644 static BOOL surface_check_block_align_rect(struct wined3d_surface *surface, const RECT *rect) diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c -index 13ec6e1..676f0b1 100644 +index f12d8d6..d182a46 100644 --- a/dlls/wined3d/volume.c +++ b/dlls/wined3d/volume.c -@@ -360,34 +360,6 @@ static ULONG CDECL wined3d_volume_decref(struct wined3d_volume *volume) - return wined3d_texture_decref(volume->container); +@@ -346,34 +346,6 @@ static void volume_unload(struct wined3d_resource *resource) + resource_unload(resource); } -static BOOL volume_check_block_align(const struct wined3d_volume *volume, @@ -114,7 +114,7 @@ index 13ec6e1..676f0b1 100644 static BOOL wined3d_volume_check_box_dimensions(const struct wined3d_volume *volume, const struct wined3d_box *box) { -@@ -438,7 +410,7 @@ HRESULT wined3d_volume_map(struct wined3d_volume *volume, +@@ -424,7 +396,7 @@ HRESULT wined3d_volume_map(struct wined3d_volume *volume, WARN("Map box is invalid.\n"); return WINED3DERR_INVALIDCALL; } diff --git a/patches/wined3d-CSMT_Main/0137-wined3d-Clean-up-volume-resource-data-through-the-CS.patch b/patches/wined3d-CSMT_Main/0137-wined3d-Clean-up-volume-resource-data-through-the-CS.patch index 98dd7b75..dd283cfe 100644 --- a/patches/wined3d-CSMT_Main/0137-wined3d-Clean-up-volume-resource-data-through-the-CS.patch +++ b/patches/wined3d-CSMT_Main/0137-wined3d-Clean-up-volume-resource-data-through-the-CS.patch @@ -1,4 +1,4 @@ -From 59e33f230ca7b23bd372522e155377b2b66ec66e Mon Sep 17 00:00:00 2001 +From 40087b5024636170ee3bc5c4ed3436898a97e21c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Wed, 2 Oct 2013 22:54:57 +0200 Subject: wined3d: Clean up volume resource data through the CS. @@ -70,7 +70,7 @@ index 54b6d1a..18b556d 100644 static inline void *_wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, BOOL prio) diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c -index cb91d28..088762b 100644 +index 15c80ce..eb0341a 100644 --- a/dlls/wined3d/volume.c +++ b/dlls/wined3d/volume.c @@ -313,10 +313,8 @@ void wined3d_volume_destroy(struct wined3d_volume *volume) @@ -85,7 +85,7 @@ index cb91d28..088762b 100644 } static void volume_unload(struct wined3d_resource *resource) -@@ -357,6 +355,11 @@ static ULONG CDECL wined3d_volume_incref(struct wined3d_volume *volume) +@@ -425,6 +423,11 @@ static ULONG volume_resource_incref(struct wined3d_resource *resource) return wined3d_texture_incref(volume->container); } @@ -94,9 +94,9 @@ index cb91d28..088762b 100644 + HeapFree(GetProcessHeap(), 0, volume); +} + - static ULONG CDECL wined3d_volume_decref(struct wined3d_volume *volume) + static ULONG volume_resource_decref(struct wined3d_resource *resource) { - TRACE("Forwarding to container %p.\n", volume->container); + struct wined3d_volume *volume = volume_from_resource(resource); diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index f4cc159..04a403a 100644 --- a/dlls/wined3d/wined3d_private.h diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index 8dddfc42..6a4e0d20 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -817,26 +817,11 @@ diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c } /* The texture name is managed by the container. */ -@@ -355,6 +597,7 @@ - return wined3d_texture_incref(volume->container); +@@ -348,6 +590,36 @@ + resource_unload(resource); } -+#if defined(STAGING_CSMT) - void wined3d_volume_cleanup_cs(struct wined3d_volume *volume) - { - HeapFree(GetProcessHeap(), 0, volume); -@@ -365,6 +608,41 @@ - TRACE("Forwarding to container %p.\n", volume->container); - - return wined3d_texture_decref(volume->container); -+#else /* STAGING_CSMT */ -+static ULONG CDECL wined3d_volume_decref(struct wined3d_volume *volume) -+{ -+ TRACE("Forwarding to container %p.\n", volume->container); -+ -+ return wined3d_texture_decref(volume->container); -+} -+ ++#if !defined(STAGING_CSMT) +static BOOL volume_check_block_align(const struct wined3d_volume *volume, + const struct wined3d_box *box) +{ @@ -863,11 +848,13 @@ diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c + return FALSE; + + return TRUE; ++} ++ +#endif /* STAGING_CSMT */ - } - static BOOL wined3d_volume_check_box_dimensions(const struct wined3d_volume *volume, -@@ -392,6 +670,7 @@ + const struct wined3d_box *box) + { +@@ -373,6 +645,7 @@ HRESULT wined3d_volume_map(struct wined3d_volume *volume, struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags) { @@ -875,7 +862,7 @@ diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c HRESULT hr; const struct wined3d_format *format = volume->resource.format; const unsigned int fmt_flags = volume->container->resource.format_flags; -@@ -432,6 +711,177 @@ +@@ -413,6 +686,177 @@ if (hr == WINEDDERR_NOTLOCKED) return WINED3DERR_INVALIDCALL; return hr; @@ -1053,15 +1040,29 @@ diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c } static ULONG volume_resource_incref(struct wined3d_resource *resource) -@@ -444,6 +894,7 @@ - return wined3d_volume_decref(volume_from_resource(resource)); +@@ -423,11 +867,13 @@ + return wined3d_texture_incref(volume->container); + } + ++#if defined(STAGING_CSMT) + void wined3d_volume_cleanup_cs(struct wined3d_volume *volume) + { + HeapFree(GetProcessHeap(), 0, volume); + } + ++#endif /* STAGING_CSMT */ + static ULONG volume_resource_decref(struct wined3d_resource *resource) + { + struct wined3d_volume *volume = volume_from_resource(resource); +@@ -436,6 +882,7 @@ + return wined3d_texture_decref(volume->container); } +#if defined(STAGING_CSMT) static void wined3d_volume_location_invalidated(struct wined3d_resource *resource, DWORD location) { struct wined3d_volume *volume = volume_from_resource(resource); -@@ -459,6 +910,13 @@ +@@ -451,6 +898,13 @@ volume_unload, wined3d_volume_location_invalidated, wined3d_volume_load_location, @@ -1075,7 +1076,7 @@ diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c }; static HRESULT volume_init(struct wined3d_volume *volume, struct wined3d_texture *container, -@@ -490,7 +948,11 @@ +@@ -482,7 +936,11 @@ } volume->texture_level = level; @@ -1087,7 +1088,7 @@ diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c if (desc->pool == WINED3D_POOL_DEFAULT && desc->usage & WINED3DUSAGE_DYNAMIC && gl_info->supported[ARB_PIXEL_BUFFER_OBJECT] -@@ -498,7 +960,9 @@ +@@ -490,7 +948,9 @@ { wined3d_resource_free_sysmem(&volume->resource); volume->resource.map_binding = WINED3D_LOCATION_BUFFER;