Updated CSMT patchset to fix crash in Path of Exile after character selection (fixes Wine Staging Bug #451).

This commit is contained in:
Sebastian Lackner
2015-07-29 06:54:21 +02:00
parent 025e40edcc
commit c23d8e2738
180 changed files with 613 additions and 561 deletions

View File

@@ -0,0 +1,38 @@
From 8dc59ef56211678a681315041c0fd23bd490ad25 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 29 Jul 2015 06:35:07 +0200
Subject: wined3d: Properly initialize format_flags for surfaces and volumes.
---
dlls/wined3d/surface.c | 2 ++
dlls/wined3d/volume.c | 1 +
2 files changed, 3 insertions(+)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 3b033db..38a233d 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -5603,6 +5603,8 @@ static HRESULT surface_init(struct wined3d_surface *surface, struct wined3d_text
}
surface->container = container;
+ surface->resource.format_flags = container->resource.format_flags;
+
surface_validate_location(surface, WINED3D_LOCATION_SYSMEM);
list_init(&surface->renderbuffers);
list_init(&surface->overlays);
diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c
index 424938a..4e1c415 100644
--- a/dlls/wined3d/volume.c
+++ b/dlls/wined3d/volume.c
@@ -779,6 +779,7 @@ static HRESULT volume_init(struct wined3d_volume *volume, struct wined3d_texture
}
volume->container = container;
+ volume->resource.format_flags = container->resource.format_flags;
return WINED3D_OK;
}
--
2.4.5

View File

@@ -1,7 +1,7 @@
From fb1391dc1f2274d4336846720bb9869a3b751b0c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Thu, 19 Sep 2013 14:22:24 +0200
Subject: wined3d: Merge get_pitch functions. (v2)
Subject: wined3d: Merge get_pitch functions.
---
dlls/wined3d/resource.c | 31 ++++++++++++++++

View File

@@ -1,4 +1,4 @@
From bebac68a70a4be81237cd5ba392870eed6f5eccc Mon Sep 17 00:00:00 2001
From f697640248f83b974829df63769cbb6fb4f6b722 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Sat, 4 Jan 2014 00:53:47 +0100
Subject: wined3d: Remove surface_validate_location.
@@ -13,10 +13,10 @@ Subject: wined3d: Remove surface_validate_location.
6 files changed, 20 insertions(+), 30 deletions(-)
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index 2ad6917..35637f2 100644
index 57bc787..bdfc42d 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -7921,7 +7921,7 @@ static void arbfp_blit_surface(struct wined3d_device *device, DWORD filter,
@@ -7864,7 +7864,7 @@ static void arbfp_blit_surface(struct wined3d_device *device, DWORD filter,
context_release(context);
@@ -26,7 +26,7 @@ index 2ad6917..35637f2 100644
}
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index e84405e..95df08f 100644
index 08987f2..210e53e 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -392,7 +392,7 @@ void device_clear_render_targets(struct wined3d_device *device, UINT rt_count, c
@@ -39,10 +39,10 @@ index e84405e..95df08f 100644
}
}
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 8b2fb74..0599757 100644
index 4a61d1b..8ec6ab8 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -1167,7 +1167,7 @@ static void surface_unload(struct wined3d_resource *resource)
@@ -1170,7 +1170,7 @@ static void surface_unload(struct wined3d_resource *resource)
* and all flags get lost */
surface_prepare_system_memory(surface);
memset(surface->resource.heap_memory, 0, surface->resource.size);
@@ -51,7 +51,7 @@ index 8b2fb74..0599757 100644
surface_invalidate_location(surface, ~WINED3D_LOCATION_SYSMEM);
/* We also get here when the ddraw swapchain is destroyed, for example
@@ -1679,7 +1679,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
@@ -1683,7 +1683,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
context_release(context);
@@ -60,7 +60,7 @@ index 8b2fb74..0599757 100644
surface_invalidate_location(dst_surface, ~WINED3D_LOCATION_TEXTURE_RGB);
return WINED3D_OK;
@@ -2178,7 +2178,7 @@ HRESULT wined3d_surface_update_desc(struct wined3d_surface *surface,
@@ -2169,7 +2169,7 @@ HRESULT wined3d_surface_update_desc(struct wined3d_surface *surface,
valid_location = WINED3D_LOCATION_SYSMEM;
}
@@ -69,7 +69,7 @@ index 8b2fb74..0599757 100644
return WINED3D_OK;
}
@@ -2723,7 +2723,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
@@ -2715,7 +2715,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
{
TRACE("WINED3D_MAP_DISCARD flag passed, marking %s as up to date.\n",
wined3d_debug_location(surface->resource.map_binding));
@@ -78,7 +78,7 @@ index 8b2fb74..0599757 100644
}
else
{
@@ -3282,7 +3282,7 @@ static void fb_copy_to_texture_direct(struct wined3d_surface *dst_surface, struc
@@ -3274,7 +3274,7 @@ static void fb_copy_to_texture_direct(struct wined3d_surface *dst_surface, struc
/* The texture is now most up to date - If the surface is a render target
* and has a drawable, this path is never entered. */
@@ -87,7 +87,7 @@ index 8b2fb74..0599757 100644
surface_invalidate_location(dst_surface, ~WINED3D_LOCATION_TEXTURE_RGB);
}
@@ -3555,7 +3555,7 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_surface *dst_surface, st
@@ -3547,7 +3547,7 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_surface *dst_surface, st
/* The texture is now most up to date - If the surface is a render target
* and has a drawable, this path is never entered. */
@@ -96,7 +96,7 @@ index 8b2fb74..0599757 100644
surface_invalidate_location(dst_surface, ~WINED3D_LOCATION_TEXTURE_RGB);
}
@@ -4058,13 +4058,6 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co
@@ -4053,13 +4053,6 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co
surface->ds_current_size.cy = surface->resource.height;
}
@@ -110,7 +110,7 @@ index 8b2fb74..0599757 100644
void surface_invalidate_location(struct wined3d_surface *surface, DWORD location)
{
TRACE("surface %p, location %s.\n", surface, wined3d_debug_location(location));
@@ -4452,7 +4445,7 @@ void surface_load_location(struct wined3d_surface *surface, struct wined3d_conte
@@ -4447,7 +4440,7 @@ void surface_load_location(struct wined3d_surface *surface, struct wined3d_conte
break;
}
@@ -119,7 +119,7 @@ index 8b2fb74..0599757 100644
if (location != WINED3D_LOCATION_SYSMEM && (surface->resource.locations & WINED3D_LOCATION_SYSMEM))
surface_evict_sysmem(surface);
@@ -4627,7 +4620,7 @@ static void ffp_blit_blit_surface(struct wined3d_device *device, DWORD filter,
@@ -4620,7 +4613,7 @@ static void ffp_blit_blit_surface(struct wined3d_device *device, DWORD filter,
wined3d_texture_set_color_key(src_surface->container, WINED3D_CKEY_SRC_BLT,
(old_color_key_flags & WINED3D_CKEY_SRC_BLT) ? &old_blt_key : NULL);
@@ -128,7 +128,7 @@ index 8b2fb74..0599757 100644
surface_invalidate_location(dst_surface, ~dst_surface->container->resource.draw_binding);
}
@@ -5599,7 +5592,7 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
@@ -5600,7 +5593,7 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
dst_surface, dst_surface->container->resource.draw_binding, &dst_rect);
context_release(context);
@@ -137,16 +137,16 @@ index 8b2fb74..0599757 100644
surface_invalidate_location(dst_surface, ~dst_surface->container->resource.draw_binding);
return WINED3D_OK;
@@ -5695,7 +5688,7 @@ static HRESULT surface_init(struct wined3d_surface *surface, struct wined3d_text
}
@@ -5698,7 +5691,7 @@ static HRESULT surface_init(struct wined3d_surface *surface, struct wined3d_text
surface->container = container;
surface->resource.format_flags = container->resource.format_flags;
- surface_validate_location(surface, WINED3D_LOCATION_SYSMEM);
+ wined3d_resource_validate_location(&surface->resource, WINED3D_LOCATION_SYSMEM);
list_init(&surface->renderbuffers);
list_init(&surface->overlays);
@@ -5727,7 +5720,7 @@ static HRESULT surface_init(struct wined3d_surface *surface, struct wined3d_text
@@ -5730,7 +5723,7 @@ static HRESULT surface_init(struct wined3d_surface *surface, struct wined3d_text
if (surface->resource.map_binding == WINED3D_LOCATION_DIB)
{
wined3d_resource_free_sysmem(&surface->resource);
@@ -156,7 +156,7 @@ index 8b2fb74..0599757 100644
}
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
index e702d61..075bffc 100644
index 2e91c7c..a62d245 100644
--- a/dlls/wined3d/swapchain.c
+++ b/dlls/wined3d/swapchain.c
@@ -569,19 +569,19 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT
@@ -202,10 +202,10 @@ index e702d61..075bffc 100644
}
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index d834cd8..bc9584a 100644
index 75cf863..cf6e3e3 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -798,9 +798,7 @@ static void texture2d_sub_resource_invalidate_location(struct wined3d_resource *
@@ -785,9 +785,7 @@ static void texture2d_sub_resource_invalidate_location(struct wined3d_resource *
static void texture2d_sub_resource_validate_location(struct wined3d_resource *sub_resource, DWORD location)
{
@@ -217,10 +217,10 @@ index d834cd8..bc9584a 100644
static void texture2d_sub_resource_upload_data(struct wined3d_resource *sub_resource,
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 7b5a04f..06774c8 100644
index 0aa218c..fa842fa 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2409,7 +2409,6 @@ HRESULT wined3d_surface_update_desc(struct wined3d_surface *surface,
@@ -2442,7 +2442,6 @@ HRESULT wined3d_surface_update_desc(struct wined3d_surface *surface,
const struct wined3d_gl_info *gl_info, void *mem, unsigned int pitch) DECLSPEC_HIDDEN;
HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const POINT *dst_point,
struct wined3d_surface *src_surface, const RECT *src_rect) DECLSPEC_HIDDEN;
@@ -229,5 +229,5 @@ index 7b5a04f..06774c8 100644
GLenum target, unsigned int level, unsigned int layer, DWORD flags,
struct wined3d_surface **surface) DECLSPEC_HIDDEN;
--
2.3.5
2.4.5

Some files were not shown because too many files have changed in this diff Show More