Rebase wined3d-CSMT_Main patchset on top of upstream Wine, remove wined3d-Color_Key patchset (fixed upstream).

This commit is contained in:
Sebastian Lackner 2015-01-20 03:44:15 +01:00
parent 1b743a18ea
commit 93224a7bf4
17 changed files with 271 additions and 330 deletions

View File

@ -87,7 +87,7 @@ Included bug fixes and improvements
* Fix NULL dereference in ICSeqCompressFrameStart ([Wine Bug #27595](https://bugs.winehq.org/show_bug.cgi?id=27595))
* Fix access violation when calling GetStringTypeW with NULL src. ([Wine Bug #37759](https://bugs.winehq.org/show_bug.cgi?id=37759))
* Fix black screen on startup introduced by pixelformat changes. ([Wine Bug #35950](https://bugs.winehq.org/show_bug.cgi?id=35950))
* Fix color key regression causing pink rectangles around text ([Wine Bug #37748](https://bugs.winehq.org/show_bug.cgi?id=37748))
* ~~Fix color key regression causing pink rectangles around text~~ ([Wine Bug #37748](https://bugs.winehq.org/show_bug.cgi?id=37748))
* Fix comparison of punctuation characters in lstrcmp ([Wine Bug #10767](https://bugs.winehq.org/show_bug.cgi?id=10767))
* Fix condition mask handling in RtlVerifyVersionInfo ([Wine Bug #36143](https://bugs.winehq.org/show_bug.cgi?id=36143))
* Fix crash of Trine Demo on start ([Wine Bug #19231](https://bugs.winehq.org/show_bug.cgi?id=19231))

1
debian/changelog vendored
View File

@ -15,6 +15,7 @@ wine-staging (1.7.35) UNRELEASED; urgency=low
* Removed patch to initialize irp.Tail.Overlay.OriginalFileObject with stub file object (accepted upstream).
* Removed patch to fix incorrect behaviour of PathIsDirectoryEmptyW (accepted upstream).
* Removed patch to store IOCS data in a property instead of GWLP_USERDATA (accepted upstream).
* Removed patch to fix color key regression (fixed upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Mon, 12 Jan 2015 13:06:22 +0100
wine-staging (1.7.34-1) unstable; urgency=low

View File

@ -168,7 +168,6 @@ patch_enable_all ()
enable_winecfg_Staging="$1"
enable_wined3d_CSMT_Helper="$1"
enable_wined3d_CSMT_Main="$1"
enable_wined3d_Color_Key="$1"
enable_wined3d_DXTn="$1"
enable_wined3d_Revert_PixelFormat="$1"
enable_winedevice_Fix_Relocation="$1"
@ -529,9 +528,6 @@ patch_enable ()
wined3d-CSMT_Main)
enable_wined3d_CSMT_Main="$2"
;;
wined3d-Color_Key)
enable_wined3d_Color_Key="$2"
;;
wined3d-DXTn)
enable_wined3d_DXTn="$2"
;;
@ -790,11 +786,7 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then
if test "$enable_wined3d_CSMT_Helper" -gt 1; then
abort "Patchset wined3d-CSMT_Helper disabled, but wined3d-CSMT_Main depends on that."
fi
if test "$enable_wined3d_Color_Key" -gt 1; then
abort "Patchset wined3d-Color_Key disabled, but wined3d-CSMT_Main depends on that."
fi
enable_wined3d_CSMT_Helper=1
enable_wined3d_Color_Key=1
fi
if test "$enable_wined3d_CSMT_Helper" -eq 1; then
@ -2811,21 +2803,6 @@ if test "$enable_winebuild_LinkerVersion" -eq 1; then
) >> "$patchlist"
fi
# Patchset wined3d-Color_Key
# |
# | This patchset fixes the following Wine bugs:
# | * [#37748] Fix color key regression causing pink rectangles around text
# |
# | Modified files:
# | * dlls/wined3d/surface.c
# |
if test "$enable_wined3d_Color_Key" -eq 1; then
patch_apply wined3d-Color_Key/0001-wined3d-Use-proper-color-key-type-define-when-callin.patch
(
echo '+ { "Christian Costa", "wined3d: Use proper color key type define when calling wined3d_texture_set_color_key.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-CSMT_Helper
# |
# | Modified files:

View File

@ -1,4 +1,4 @@
From b41b544254e1074c64732e641d8eaa962418a7d6 Mon Sep 17 00:00:00 2001
From cc8b1bb0366f3fe8fb103eb2a50e5238ec1d30b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Sun, 17 Nov 2013 19:34:26 +0100
Subject: wined3d: Pass a context to surface_load_drawable and
@ -9,10 +9,10 @@ Subject: wined3d: Pass a context to surface_load_drawable and
1 file changed, 34 insertions(+), 6 deletions(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 9731368..93ea13b 100644
index 17ce8ef..8a569a5 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -3597,19 +3597,35 @@ void surface_translate_drawable_coords(const struct wined3d_surface *surface, HW
@@ -3604,19 +3604,35 @@ void surface_translate_drawable_coords(const struct wined3d_surface *surface, HW
rect->bottom = drawable_height - rect->bottom;
}
@ -49,7 +49,7 @@ index 9731368..93ea13b 100644
gl_info = context->gl_info;
/* Make sure the surface is up-to-date. This should probably use
@@ -3662,7 +3678,12 @@ static void surface_blt_to_drawable(const struct wined3d_device *device,
@@ -3669,7 +3685,12 @@ static void surface_blt_to_drawable(const struct wined3d_device *device,
&& dst_surface->container->swapchain->front_buffer == dst_surface->container))
gl_info->gl_ops.gl.p_glFlush(); /* Flush to ensure ordering across contexts. */
@ -63,7 +63,7 @@ index 9731368..93ea13b 100644
}
HRESULT surface_color_fill(struct wined3d_surface *s, const RECT *rect, const struct wined3d_color *color)
@@ -3813,6 +3834,7 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
@@ -3820,6 +3841,7 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
/* Blit from offscreen surface to render target */
struct wined3d_color_key old_blt_key = src_surface->container->src_blt_color_key;
DWORD old_color_key_flags = src_surface->container->color_key_flags;
@ -71,8 +71,8 @@ index 9731368..93ea13b 100644
TRACE("Blt from surface %p to rendertarget %p\n", src_surface, dst_surface);
@@ -3846,9 +3868,11 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
wined3d_texture_set_color_key(src_surface->container, WINEDDCKEY_SRCBLT, NULL);
@@ -3853,9 +3875,11 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
wined3d_texture_set_color_key(src_surface->container, WINED3D_CKEY_SRC_BLT, NULL);
}
- surface_blt_to_drawable(device, filter,
@ -83,8 +83,8 @@ index 9731368..93ea13b 100644
+ context_release(context);
/* Restore the color key parameters */
wined3d_texture_set_color_key(src_surface->container, WINEDDCKEY_SRCBLT,
@@ -4211,8 +4235,9 @@ static void surface_load_sysmem(struct wined3d_surface *surface,
wined3d_texture_set_color_key(src_surface->container, WINED3D_CKEY_SRC_BLT,
@@ -4218,8 +4242,9 @@ static void surface_load_sysmem(struct wined3d_surface *surface,
surface, wined3d_debug_location(surface->locations));
}
@ -95,7 +95,7 @@ index 9731368..93ea13b 100644
{
RECT r;
@@ -4225,7 +4250,7 @@ static HRESULT surface_load_drawable(struct wined3d_surface *surface,
@@ -4232,7 +4257,7 @@ static HRESULT surface_load_drawable(struct wined3d_surface *surface,
surface_get_rect(surface, NULL, &r);
surface_load_location(surface, WINED3D_LOCATION_TEXTURE_RGB);
@ -104,7 +104,7 @@ index 9731368..93ea13b 100644
WINED3D_TEXF_POINT, FALSE, surface, &r, surface, &r);
return WINED3D_OK;
@@ -4491,7 +4516,10 @@ HRESULT surface_load_location(struct wined3d_surface *surface, DWORD location)
@@ -4498,7 +4523,10 @@ HRESULT surface_load_location(struct wined3d_surface *surface, DWORD location)
break;
case WINED3D_LOCATION_DRAWABLE:

View File

@ -1,4 +1,4 @@
From 1a7049fa8831453c9a041085a93413b05adc9e2a Mon Sep 17 00:00:00 2001
From 574b59a0f496d7aab025e1b3a1e241b20692d5e0 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.
@ -26,7 +26,7 @@ index b85f41e..93ecb99 100644
return WINED3D_OK;
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 4ac9c3e..99f4e96 100644
index 236e041..10f29d2 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 4ac9c3e..99f4e96 100644
}
}
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index afe3c57..909d405 100644
index 6ad6ac7..3e10009 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -1224,7 +1224,7 @@ static void surface_unload(struct wined3d_resource *resource)
@@ -1223,7 +1223,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 afe3c57..909d405 100644
surface_invalidate_location(surface, ~WINED3D_LOCATION_SYSMEM);
/* We also get here when the ddraw swapchain is destroyed, for example
@@ -1736,7 +1736,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
@@ -1735,7 +1735,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
context_release(context);
@ -60,7 +60,7 @@ index afe3c57..909d405 100644
surface_invalidate_location(dst_surface, ~WINED3D_LOCATION_TEXTURE_RGB);
return WINED3D_OK;
@@ -2254,7 +2254,7 @@ HRESULT wined3d_surface_update_desc(struct wined3d_surface *surface,
@@ -2253,7 +2253,7 @@ HRESULT wined3d_surface_update_desc(struct wined3d_surface *surface,
valid_location = WINED3D_LOCATION_SYSMEM;
}
@ -69,7 +69,7 @@ index afe3c57..909d405 100644
return WINED3D_OK;
}
@@ -2799,7 +2799,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
@@ -2798,7 +2798,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 afe3c57..909d405 100644
}
else
{
@@ -3354,7 +3354,7 @@ static void fb_copy_to_texture_direct(struct wined3d_surface *dst_surface, struc
@@ -3353,7 +3353,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 afe3c57..909d405 100644
surface_invalidate_location(dst_surface, ~WINED3D_LOCATION_TEXTURE_RGB);
}
@@ -3628,7 +3628,7 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_surface *dst_surface, st
@@ -3626,7 +3626,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,16 +96,16 @@ index afe3c57..909d405 100644
surface_invalidate_location(dst_surface, ~WINED3D_LOCATION_TEXTURE_RGB);
}
@@ -3941,7 +3941,7 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
wined3d_texture_set_color_key(src_surface->container, WINEDDCKEY_SRCBLT,
(old_color_key_flags & WINEDDSD_CKSRCBLT) ? &old_blt_key : NULL);
@@ -3939,7 +3939,7 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
wined3d_texture_set_color_key(src_surface->container, WINED3D_CKEY_SRC_BLT,
(old_color_key_flags & WINED3D_CKEY_SRC_BLT) ? &old_blt_key : NULL);
- surface_validate_location(dst_surface, dst_surface->container->resource.draw_binding);
+ wined3d_resource_validate_location(&dst_surface->resource, dst_surface->container->resource.draw_binding);
surface_invalidate_location(dst_surface, ~dst_surface->container->resource.draw_binding);
return WINED3D_OK;
@@ -4186,13 +4186,6 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co
@@ -4184,13 +4184,6 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co
surface->ds_current_size.cy = surface->resource.height;
}
@ -119,7 +119,7 @@ index afe3c57..909d405 100644
void surface_invalidate_location(struct wined3d_surface *surface, DWORD location)
{
TRACE("surface %p, location %s.\n", surface, wined3d_debug_location(location));
@@ -4588,7 +4581,7 @@ void surface_load_location(struct wined3d_surface *surface, struct wined3d_conte
@@ -4586,7 +4579,7 @@ void surface_load_location(struct wined3d_surface *surface, struct wined3d_conte
break;
}
@ -128,7 +128,7 @@ index afe3c57..909d405 100644
if (location != WINED3D_LOCATION_SYSMEM && (surface->resource.locations & WINED3D_LOCATION_SYSMEM))
surface_evict_sysmem(surface);
@@ -5683,7 +5676,7 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
@@ -5681,7 +5674,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,7 +137,7 @@ index afe3c57..909d405 100644
surface_invalidate_location(dst_surface, ~dst_surface->container->resource.draw_binding);
return WINED3D_OK;
@@ -5780,7 +5773,7 @@ static HRESULT surface_init(struct wined3d_surface *surface, struct wined3d_text
@@ -5778,7 +5771,7 @@ static HRESULT surface_init(struct wined3d_surface *surface, struct wined3d_text
}
surface->container = container;
@ -146,7 +146,7 @@ index afe3c57..909d405 100644
list_init(&surface->renderbuffers);
list_init(&surface->overlays);
@@ -5812,7 +5805,7 @@ static HRESULT surface_init(struct wined3d_surface *surface, struct wined3d_text
@@ -5810,7 +5803,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);
@ -202,10 +202,10 @@ index 601d3ad..bdb4b67 100644
}
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 92f7744..6692118 100644
index 1f54c71..5b6f1ab 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -874,9 +874,7 @@ static void texture2d_sub_resource_invalidate_location(struct wined3d_resource *
@@ -783,9 +783,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 92f7744..6692118 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 9186720..3e13ae8 100644
index d5d960e..6d233b8 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2383,7 +2383,6 @@ HRESULT wined3d_surface_update_desc(struct wined3d_surface *surface,
@@ -2384,7 +2384,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;

View File

@ -1,4 +1,4 @@
From 75d61e9b6e6f30be95ef495a5c2dd6e88955c575 Mon Sep 17 00:00:00 2001
From 6859a41049de6f77771cadb3d6be474d031545ce Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Sat, 4 Jan 2014 01:02:15 +0100
Subject: wined3d: Remove surface_invalidate_location.
@ -28,10 +28,10 @@ index 93ecb99..f7bea42 100644
return WINED3D_OK;
}
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index d214037..3c17b03 100644
index 13eebf1..068dfa9 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -3085,7 +3085,7 @@ static void context_setup_target(struct wined3d_context *context, struct wined3d
@@ -3161,7 +3161,7 @@ static void context_setup_target(struct wined3d_context *context, struct wined3d
if (texture->texture_srgb.name)
wined3d_texture_load(texture, context, TRUE);
wined3d_texture_load(texture, context, FALSE);
@ -41,7 +41,7 @@ index d214037..3c17b03 100644
}
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index a26f1b0..2ef0efc 100644
index e61eba3..b8c444b 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -393,7 +393,7 @@ void device_clear_render_targets(struct wined3d_device *device, UINT rt_count, c
@ -67,10 +67,10 @@ index 7034b25..eef7e2c 100644
}
}
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 9f74a39..d3bbb54 100644
index 968c39e..69cc9ca 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -599,7 +599,7 @@ static void surface_evict_sysmem(struct wined3d_surface *surface)
@@ -598,7 +598,7 @@ static void surface_evict_sysmem(struct wined3d_surface *surface)
return;
wined3d_resource_free_sysmem(&surface->resource);
@ -79,7 +79,7 @@ index 9f74a39..d3bbb54 100644
}
static void surface_release_client_storage(struct wined3d_surface *surface)
@@ -1185,7 +1185,7 @@ static void surface_remove_pbo(struct wined3d_surface *surface, const struct win
@@ -1184,7 +1184,7 @@ static void surface_remove_pbo(struct wined3d_surface *surface, const struct win
checkGLcall("glDeleteBuffers(1, &surface->pbo)");
surface->pbo = 0;
@ -88,7 +88,7 @@ index 9f74a39..d3bbb54 100644
}
static ULONG surface_resource_incref(struct wined3d_resource *resource)
@@ -1225,7 +1225,7 @@ static void surface_unload(struct wined3d_resource *resource)
@@ -1224,7 +1224,7 @@ static void surface_unload(struct wined3d_resource *resource)
surface_prepare_system_memory(surface);
memset(surface->resource.heap_memory, 0, surface->resource.size);
wined3d_resource_validate_location(&surface->resource, WINED3D_LOCATION_SYSMEM);
@ -97,7 +97,7 @@ index 9f74a39..d3bbb54 100644
/* We also get here when the ddraw swapchain is destroyed, for example
* for a mode switch. In this case this surface won't necessarily be
@@ -1237,7 +1237,7 @@ static void surface_unload(struct wined3d_resource *resource)
@@ -1236,7 +1236,7 @@ static void surface_unload(struct wined3d_resource *resource)
{
surface_prepare_map_memory(surface);
surface_load_location(surface, context, surface->resource.map_binding);
@ -106,7 +106,7 @@ index 9f74a39..d3bbb54 100644
}
/* Destroy PBOs, but load them into real sysmem before */
@@ -1275,7 +1275,10 @@ static void surface_unload(struct wined3d_resource *resource)
@@ -1274,7 +1274,10 @@ static void surface_unload(struct wined3d_resource *resource)
static void wined3d_surface_location_invalidated(struct wined3d_resource *resource, DWORD location)
{
@ -118,7 +118,7 @@ index 9f74a39..d3bbb54 100644
}
static const struct wined3d_resource_ops surface_resource_ops =
@@ -1743,7 +1746,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
@@ -1742,7 +1745,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
context_release(context);
wined3d_resource_validate_location(&dst_surface->resource, WINED3D_LOCATION_TEXTURE_RGB);
@ -127,7 +127,7 @@ index 9f74a39..d3bbb54 100644
return WINED3D_OK;
}
@@ -1874,7 +1877,7 @@ void surface_load(struct wined3d_surface *surface, struct wined3d_context *conte
@@ -1873,7 +1876,7 @@ void surface_load(struct wined3d_surface *surface, struct wined3d_context *conte
surface_prepare_map_memory(surface);
surface_load_location(surface, context, surface->resource.map_binding);
@ -136,7 +136,7 @@ index 9f74a39..d3bbb54 100644
/* Switching color keying on / off may change the internal format. */
if (ck_changed)
wined3d_texture_force_reload(surface->container);
@@ -2822,7 +2825,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
@@ -2821,7 +2824,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
}
if (!(flags & (WINED3D_MAP_NO_DIRTY_UPDATE | WINED3D_MAP_READONLY)))
@ -145,7 +145,7 @@ index 9f74a39..d3bbb54 100644
switch (surface->resource.map_binding)
{
@@ -2938,7 +2941,7 @@ HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc)
@@ -2937,7 +2940,7 @@ HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc)
}
surface_load_location(surface, context, WINED3D_LOCATION_DIB);
@ -154,7 +154,7 @@ index 9f74a39..d3bbb54 100644
if (context)
context_release(context);
@@ -2987,7 +2990,7 @@ HRESULT CDECL wined3d_surface_releasedc(struct wined3d_surface *surface, HDC dc)
@@ -2986,7 +2989,7 @@ HRESULT CDECL wined3d_surface_releasedc(struct wined3d_surface *surface, HDC dc)
context = context_acquire(device, NULL);
surface_load_location(surface, context, surface->resource.map_binding);
@ -163,7 +163,7 @@ index 9f74a39..d3bbb54 100644
if (context)
context_release(context);
}
@@ -3361,7 +3364,7 @@ static void fb_copy_to_texture_direct(struct wined3d_surface *dst_surface, struc
@@ -3360,7 +3363,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. */
wined3d_resource_validate_location(&dst_surface->resource, WINED3D_LOCATION_TEXTURE_RGB);
@ -172,7 +172,7 @@ index 9f74a39..d3bbb54 100644
}
/* Uses the hardware to stretch and flip the image */
@@ -3429,7 +3432,7 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_surface *dst_surface, st
@@ -3428,7 +3431,7 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_surface *dst_surface, st
checkGLcall("glEnable(texture_target)");
/* For now invalidate the texture copy of the back buffer. Drawable and sysmem copy are untouched */
@ -181,7 +181,7 @@ index 9f74a39..d3bbb54 100644
}
/* Make sure that the top pixel is always above the bottom pixel, and keep a separate upside down flag
@@ -3635,7 +3638,7 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_surface *dst_surface, st
@@ -3633,7 +3636,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. */
wined3d_resource_validate_location(&dst_surface->resource, WINED3D_LOCATION_TEXTURE_RGB);
@ -190,8 +190,8 @@ index 9f74a39..d3bbb54 100644
}
/* Front buffer coordinates are always full screen coordinates, but our GL
@@ -3948,7 +3951,7 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
(old_color_key_flags & WINEDDSD_CKSRCBLT) ? &old_blt_key : NULL);
@@ -3946,7 +3949,7 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
(old_color_key_flags & WINED3D_CKEY_SRC_BLT) ? &old_blt_key : NULL);
wined3d_resource_validate_location(&dst_surface->resource, dst_surface->container->resource.draw_binding);
- surface_invalidate_location(dst_surface, ~dst_surface->container->resource.draw_binding);
@ -199,7 +199,7 @@ index 9f74a39..d3bbb54 100644
return WINED3D_OK;
}
@@ -4192,18 +4195,6 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co
@@ -4190,18 +4193,6 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co
surface->ds_current_size.cy = surface->resource.height;
}
@ -218,7 +218,7 @@ index 9f74a39..d3bbb54 100644
static DWORD resource_access_from_location(DWORD location)
{
switch (location)
@@ -5683,7 +5674,7 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
@@ -5681,7 +5672,7 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
context_release(context);
wined3d_resource_validate_location(&dst_surface->resource, dst_surface->container->resource.draw_binding);
@ -227,7 +227,7 @@ index 9f74a39..d3bbb54 100644
return WINED3D_OK;
}
@@ -5812,7 +5803,7 @@ static HRESULT surface_init(struct wined3d_surface *surface, struct wined3d_text
@@ -5810,7 +5801,7 @@ static HRESULT surface_init(struct wined3d_surface *surface, struct wined3d_text
{
wined3d_resource_free_sysmem(&surface->resource);
wined3d_resource_validate_location(&surface->resource, WINED3D_LOCATION_DIB);
@ -287,10 +287,10 @@ index bdb4b67..e64715e 100644
/* MSDN says we're only allowed a single fullscreen swapchain per device,
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index f2bba1a..6d82ce6 100644
index b574123..5e8847c 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -855,7 +855,7 @@ static void texture2d_sub_resource_add_dirty_region(struct wined3d_resource *sub
@@ -764,7 +764,7 @@ static void texture2d_sub_resource_add_dirty_region(struct wined3d_resource *sub
context = context_acquire(surface->resource.device, NULL);
surface_load_location(surface, context, surface->resource.map_binding);
context_release(context);
@ -299,7 +299,7 @@ index f2bba1a..6d82ce6 100644
}
static void texture2d_sub_resource_cleanup(struct wined3d_resource *sub_resource)
@@ -867,9 +867,7 @@ static void texture2d_sub_resource_cleanup(struct wined3d_resource *sub_resource
@@ -776,9 +776,7 @@ static void texture2d_sub_resource_cleanup(struct wined3d_resource *sub_resource
static void texture2d_sub_resource_invalidate_location(struct wined3d_resource *sub_resource, DWORD location)
{
@ -311,10 +311,10 @@ index f2bba1a..6d82ce6 100644
static void texture2d_sub_resource_validate_location(struct wined3d_resource *sub_resource, DWORD location)
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index acee894..878a98c 100644
index f64521c..bc4ca48 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2365,7 +2365,6 @@ HRESULT surface_color_fill(struct wined3d_surface *s,
@@ -2366,7 +2366,6 @@ HRESULT surface_color_fill(struct wined3d_surface *s,
GLenum surface_get_gl_buffer(const struct wined3d_surface *surface) DECLSPEC_HIDDEN;
void surface_get_drawable_size(const struct wined3d_surface *surface, const struct wined3d_context *context,
unsigned int *width, unsigned int *height) DECLSPEC_HIDDEN;

View File

@ -1,4 +1,4 @@
From 25c76a39621543e2650531aef15d131d04927f3b Mon Sep 17 00:00:00 2001
From f329e2cef96141fd66cd2957eafa665b6b1289da Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Thu, 20 Dec 2012 14:19:52 +0100
Subject: wined3d: Get rid of state access in shader_generate_glsl_declarations
@ -8,10 +8,10 @@ Subject: wined3d: Get rid of state access in shader_generate_glsl_declarations
1 file changed, 6 insertions(+), 15 deletions(-)
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 4ef473b..3b049e6 100644
index 9c0d052..7fc6289 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -954,10 +954,8 @@ static void shader_generate_glsl_declarations(const struct wined3d_context *cont
@@ -949,10 +949,8 @@ static void shader_generate_glsl_declarations(const struct wined3d_context *cont
const struct wined3d_shader_reg_maps *reg_maps, const struct shader_glsl_ctx_priv *ctx_priv)
{
const struct wined3d_shader_version *version = &reg_maps->shader_version;
@ -22,16 +22,16 @@ index 4ef473b..3b049e6 100644
unsigned int i, extra_constants_needed = 0;
const struct wined3d_shader_lconst *lconst;
const char *prefix;
@@ -1186,7 +1184,7 @@ static void shader_generate_glsl_declarations(const struct wined3d_context *cont
@@ -1190,7 +1188,7 @@ static void shader_generate_glsl_declarations(const struct wined3d_context *cont
{
UINT in_count = min(vec4_varyings(version->major, gl_info), shader->limits->packed_input);
- if (use_vs(state))
+ if (ps_args->vp_mode == vertexshader)
shader_addline(buffer, "varying vec4 %s_in[%u];\n", prefix, in_count);
else
/* TODO: Write a replacement shader for the fixed function
@@ -1233,21 +1231,14 @@ static void shader_generate_glsl_declarations(const struct wined3d_context *cont
shader_addline(buffer, "varying vec4 %s_link[%u];\n", prefix, in_count);
shader_addline(buffer, "vec4 %s_in[%u];\n", prefix, in_count);
}
@@ -1231,21 +1229,14 @@ static void shader_generate_glsl_declarations(const struct wined3d_context *cont
}
else
{
@ -59,5 +59,5 @@ index 4ef473b..3b049e6 100644
shader_addline(buffer, "vec4 vpos;\n");
}
--
2.1.3
2.2.1

View File

@ -1,4 +1,4 @@
From 5b81c252f4f8dbb4073e28b5a6d0c181b74facdc Mon Sep 17 00:00:00 2001
From 28c64ddb55487597d6542e81e47d27b08cb8351c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Tue, 1 Oct 2013 14:31:56 +0200
Subject: wined3d: Hackily introduce a multithreaded command stream
@ -10,7 +10,7 @@ Subject: wined3d: Hackily introduce a multithreaded command stream
3 files changed, 365 insertions(+), 38 deletions(-)
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
index 7bebe80..1122073 100644
index 408e9b5..625012f 100644
--- a/dlls/wined3d/cs.c
+++ b/dlls/wined3d/cs.c
@@ -24,8 +24,19 @@ WINE_DEFAULT_DEBUG_CHANNEL(d3d);
@ -476,7 +476,7 @@ index 7bebe80..1122073 100644
}
void wined3d_cs_emit_set_texture(struct wined3d_cs *cs, UINT stage, struct wined3d_texture *texture)
@@ -699,11 +878,13 @@ void wined3d_cs_emit_set_texture(struct wined3d_cs *cs, UINT stage, struct wined
@@ -699,12 +878,14 @@ void wined3d_cs_emit_set_texture(struct wined3d_cs *cs, UINT stage, struct wined
cs->ops->submit(cs);
}
@ -486,12 +486,13 @@ index 7bebe80..1122073 100644
const struct wined3d_cs_set_shader_resource_view *op = data;
cs->state.shader_resource_view[op->type][op->view_idx] = op->view;
device_invalidate_state(cs->device, STATE_SHADER_RESOURCE_BINDING);
+
+ return sizeof(*op);
}
void wined3d_cs_emit_set_shader_resource_view(struct wined3d_cs *cs, enum wined3d_shader_type type,
@@ -720,11 +901,13 @@ void wined3d_cs_emit_set_shader_resource_view(struct wined3d_cs *cs, enum wined3
@@ -721,12 +902,14 @@ void wined3d_cs_emit_set_shader_resource_view(struct wined3d_cs *cs, enum wined3
cs->ops->submit(cs);
}
@ -501,12 +502,13 @@ index 7bebe80..1122073 100644
const struct wined3d_cs_set_sampler *op = data;
cs->state.sampler[op->type][op->sampler_idx] = op->sampler;
device_invalidate_state(cs->device, STATE_SHADER_RESOURCE_BINDING);
+
+ return sizeof(*op);
}
void wined3d_cs_emit_set_sampler(struct wined3d_cs *cs, enum wined3d_shader_type type,
@@ -741,12 +924,14 @@ void wined3d_cs_emit_set_sampler(struct wined3d_cs *cs, enum wined3d_shader_type
@@ -743,13 +926,15 @@ void wined3d_cs_emit_set_sampler(struct wined3d_cs *cs, enum wined3d_shader_type
cs->ops->submit(cs);
}
@ -517,12 +519,13 @@ index 7bebe80..1122073 100644
cs->state.shader[op->type] = op->shader;
device_invalidate_state(cs->device, STATE_SHADER(op->type));
device_invalidate_state(cs->device, STATE_SHADER_RESOURCE_BINDING);
+
+ return sizeof(*op);
}
void wined3d_cs_emit_set_shader(struct wined3d_cs *cs, enum wined3d_shader_type type, struct wined3d_shader *shader)
@@ -761,12 +946,14 @@ void wined3d_cs_emit_set_shader(struct wined3d_cs *cs, enum wined3d_shader_type
@@ -764,12 +949,14 @@ void wined3d_cs_emit_set_shader(struct wined3d_cs *cs, enum wined3d_shader_type
cs->ops->submit(cs);
}
@ -538,7 +541,7 @@ index 7bebe80..1122073 100644
}
void wined3d_cs_emit_set_render_state(struct wined3d_cs *cs, enum wined3d_render_state state, DWORD value)
@@ -781,12 +968,14 @@ void wined3d_cs_emit_set_render_state(struct wined3d_cs *cs, enum wined3d_render
@@ -784,12 +971,14 @@ void wined3d_cs_emit_set_render_state(struct wined3d_cs *cs, enum wined3d_render
cs->ops->submit(cs);
}
@ -554,7 +557,7 @@ index 7bebe80..1122073 100644
}
void wined3d_cs_emit_set_texture_state(struct wined3d_cs *cs, UINT stage,
@@ -803,12 +992,14 @@ void wined3d_cs_emit_set_texture_state(struct wined3d_cs *cs, UINT stage,
@@ -806,12 +995,14 @@ void wined3d_cs_emit_set_texture_state(struct wined3d_cs *cs, UINT stage,
cs->ops->submit(cs);
}
@ -570,7 +573,7 @@ index 7bebe80..1122073 100644
}
void wined3d_cs_emit_set_sampler_state(struct wined3d_cs *cs, UINT sampler_idx,
@@ -825,13 +1016,15 @@ void wined3d_cs_emit_set_sampler_state(struct wined3d_cs *cs, UINT sampler_idx,
@@ -828,13 +1019,15 @@ void wined3d_cs_emit_set_sampler_state(struct wined3d_cs *cs, UINT sampler_idx,
cs->ops->submit(cs);
}
@ -588,7 +591,7 @@ index 7bebe80..1122073 100644
}
void wined3d_cs_emit_set_transform(struct wined3d_cs *cs, enum wined3d_transform_state state,
@@ -842,17 +1035,19 @@ void wined3d_cs_emit_set_transform(struct wined3d_cs *cs, enum wined3d_transform
@@ -845,17 +1038,19 @@ void wined3d_cs_emit_set_transform(struct wined3d_cs *cs, enum wined3d_transform
op = cs->ops->require_space(cs, sizeof(*op));
op->opcode = WINED3D_CS_OP_SET_TRANSFORM;
op->state = state;
@ -611,7 +614,7 @@ index 7bebe80..1122073 100644
}
void wined3d_cs_emit_set_clip_plane(struct wined3d_cs *cs, UINT plane_idx, const struct wined3d_vec4 *plane)
@@ -862,17 +1057,19 @@ void wined3d_cs_emit_set_clip_plane(struct wined3d_cs *cs, UINT plane_idx, const
@@ -865,17 +1060,19 @@ void wined3d_cs_emit_set_clip_plane(struct wined3d_cs *cs, UINT plane_idx, const
op = cs->ops->require_space(cs, sizeof(*op));
op->opcode = WINED3D_CS_OP_SET_CLIP_PLANE;
op->plane_idx = plane_idx;
@ -634,7 +637,7 @@ index 7bebe80..1122073 100644
}
void wined3d_cs_emit_set_material(struct wined3d_cs *cs, const struct wined3d_material *material)
@@ -881,12 +1078,12 @@ void wined3d_cs_emit_set_material(struct wined3d_cs *cs, const struct wined3d_ma
@@ -884,12 +1081,12 @@ void wined3d_cs_emit_set_material(struct wined3d_cs *cs, const struct wined3d_ma
op = cs->ops->require_space(cs, sizeof(*op));
op->opcode = WINED3D_CS_OP_SET_MATERIAL;
@ -649,7 +652,7 @@ index 7bebe80..1122073 100644
{
struct wined3d_adapter *adapter = cs->device->adapter;
HRESULT hr;
@@ -896,6 +1093,8 @@ static void wined3d_cs_exec_reset_state(struct wined3d_cs *cs, const void *data)
@@ -899,6 +1096,8 @@ static void wined3d_cs_exec_reset_state(struct wined3d_cs *cs, const void *data)
if (FAILED(hr = state_init(&cs->state, &adapter->gl_info, &adapter->d3d_info,
WINED3D_STATE_NO_REF | WINED3D_STATE_INIT_DEFAULT)))
ERR("Failed to initialize CS state, hr %#x.\n", hr);
@ -658,7 +661,7 @@ index 7bebe80..1122073 100644
}
void wined3d_cs_emit_reset_state(struct wined3d_cs *cs)
@@ -908,8 +1107,9 @@ void wined3d_cs_emit_reset_state(struct wined3d_cs *cs)
@@ -911,8 +1110,9 @@ void wined3d_cs_emit_reset_state(struct wined3d_cs *cs)
cs->ops->submit(cs);
}
@ -669,7 +672,7 @@ index 7bebe80..1122073 100644
/* WINED3D_CS_OP_PRESENT */ wined3d_cs_exec_present,
/* WINED3D_CS_OP_CLEAR */ wined3d_cs_exec_clear,
/* WINED3D_CS_OP_DRAW */ wined3d_cs_exec_draw,
@@ -967,6 +1167,58 @@ static const struct wined3d_cs_ops wined3d_cs_st_ops =
@@ -970,6 +1170,58 @@ static const struct wined3d_cs_ops wined3d_cs_st_ops =
wined3d_cs_st_submit,
};
@ -728,7 +731,7 @@ index 7bebe80..1122073 100644
struct wined3d_cs *wined3d_cs_create(struct wined3d_device *device)
{
const struct wined3d_gl_info *gl_info = &device->adapter->gl_info;
@@ -992,12 +1244,60 @@ struct wined3d_cs *wined3d_cs_create(struct wined3d_device *device)
@@ -995,12 +1247,60 @@ struct wined3d_cs *wined3d_cs_create(struct wined3d_device *device)
return NULL;
}
@ -790,7 +793,7 @@ index 7bebe80..1122073 100644
HeapFree(GetProcessHeap(), 0, cs);
}
diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c
index 758ba43..5471e6e 100644
index 08021a2..088e59a 100644
--- a/dlls/wined3d/wined3d_main.c
+++ b/dlls/wined3d/wined3d_main.c
@@ -85,6 +85,7 @@ struct wined3d_settings wined3d_settings =
@ -817,10 +820,10 @@ index 758ba43..5471e6e 100644
if (appkey) RegCloseKey( appkey );
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 9c05b6c..5c5d52c 100644
index 9a9097e..a32634d 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -279,6 +279,7 @@ struct wined3d_settings
@@ -278,6 +278,7 @@ struct wined3d_settings
unsigned int max_sm_gs;
unsigned int max_sm_ps;
BOOL no_3d;
@ -828,7 +831,7 @@ index 9c05b6c..5c5d52c 100644
};
extern struct wined3d_settings wined3d_settings DECLSPEC_HIDDEN;
@@ -2525,6 +2526,18 @@ HRESULT state_init(struct wined3d_state *state, const struct wined3d_gl_info *gl
@@ -2547,6 +2548,18 @@ HRESULT state_init(struct wined3d_state *state, const struct wined3d_gl_info *gl
const struct wined3d_d3d_info *d3d_info, DWORD flags) DECLSPEC_HIDDEN;
void state_unbind_resources(struct wined3d_state *state) DECLSPEC_HIDDEN;
@ -847,7 +850,7 @@ index 9c05b6c..5c5d52c 100644
struct wined3d_cs_ops
{
void *(*require_space)(struct wined3d_cs *cs, size_t size);
@@ -2536,9 +2549,14 @@ struct wined3d_cs
@@ -2558,9 +2571,14 @@ struct wined3d_cs
const struct wined3d_cs_ops *ops;
struct wined3d_device *device;
struct wined3d_state state;
@ -863,5 +866,5 @@ index 9c05b6c..5c5d52c 100644
struct wined3d_cs *wined3d_cs_create(struct wined3d_device *device) DECLSPEC_HIDDEN;
--
2.1.3
2.2.1

View File

@ -1,4 +1,4 @@
From 121bee481f27a42d6a759a29a01b002ecffec65e Mon Sep 17 00:00:00 2001
From c83ce498b74f5b547be9e158619a20079ea77681 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Thu, 4 Jul 2013 20:40:39 +0200
Subject: wined3d: Add cs waiting debug code
@ -8,10 +8,10 @@ Subject: wined3d: Add cs waiting debug code
1 file changed, 6 insertions(+)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 8212c96..b7891d9 100644
index 084b4db..ac41088 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -667,6 +667,12 @@ HRESULT CDECL wined3d_texture_set_color_key(struct wined3d_texture *texture,
@@ -576,6 +576,12 @@ HRESULT CDECL wined3d_texture_set_color_key(struct wined3d_texture *texture,
return WINED3DERR_INVALIDCALL;
}
@ -23,7 +23,7 @@ index 8212c96..b7891d9 100644
+
if (color_key)
{
switch (flags & ~WINEDDCKEY_COLORSPACE)
switch (flags & ~WINED3D_CKEY_COLORSPACE)
--
2.1.3
2.2.1

View File

@ -1,4 +1,4 @@
From 1e5a27c212131073531e6c1cf8d45b9d67d70693 Mon Sep 17 00:00:00 2001
From a0e7463e86758e478993d59c339f590283e3532b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Wed, 2 Oct 2013 23:28:56 +0200
Subject: wined3d: Unload resources through the CS in uninit_3d.
@ -8,10 +8,10 @@ Subject: wined3d: Unload resources through the CS in uninit_3d.
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 29a4d33..8d896a0 100644
index e0e2c82..1d7d733 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -1067,9 +1067,10 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
@@ -1066,9 +1066,10 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
LIST_FOR_EACH_ENTRY_SAFE(resource, cursor, &device->resources, struct wined3d_resource, resource_list_entry)
{
TRACE("Unloading resource %p.\n", resource);
@ -22,7 +22,7 @@ index 29a4d33..8d896a0 100644
+ if (wined3d_settings.cs_multithreaded)
+ device->cs->ops->finish(device->cs);
wine_rb_for_each_entry(&device->samplers, device_free_sampler, device);
wine_rb_clear(&device->samplers, device_free_sampler, NULL);
--
2.2.1

View File

@ -1,4 +1,4 @@
From 07c7bd93784b29a1b75f701b9a358c85babfc003 Mon Sep 17 00:00:00 2001
From f706600f7ffc7710a06809ff57ea8d59793f7d87 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Fri, 11 Oct 2013 10:17:42 +0200
Subject: wined3d: Delete GL contexts through the CS in uninit_3d.
@ -8,10 +8,10 @@ Subject: wined3d: Delete GL contexts through the CS in uninit_3d.
1 file changed, 4 insertions(+), 27 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index f171df8..2d00ada 100644
index 8d80044..bffeebb 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -1014,8 +1014,6 @@ static void device_free_sampler(struct wine_rb_entry *entry, void *context)
@@ -1013,8 +1013,6 @@ static void device_free_sampler(struct wine_rb_entry *entry, void *context)
HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
{
struct wined3d_resource *resource, *cursor;
@ -20,7 +20,7 @@ index f171df8..2d00ada 100644
struct wined3d_surface *surface;
UINT i;
@@ -1027,12 +1025,6 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
@@ -1026,12 +1024,6 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
if (wined3d_settings.cs_multithreaded)
device->cs->ops->finish(device->cs);
@ -33,14 +33,14 @@ index f171df8..2d00ada 100644
if (device->logo_texture)
wined3d_texture_decref(device->logo_texture);
@@ -1062,24 +1054,8 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
@@ -1061,24 +1053,8 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
TRACE("Unloading resource %p.\n", resource);
wined3d_cs_emit_evict_resource(device->cs, resource);
}
- if (wined3d_settings.cs_multithreaded)
- device->cs->ops->finish(device->cs);
-
- wine_rb_for_each_entry(&device->samplers, device_free_sampler, device);
- wine_rb_clear(&device->samplers, device_free_sampler, NULL);
-
- /* Destroy the depth blt resources, they will be invalid after the reset. Also free shader
- * private data, it might contain opengl pointers
@ -59,7 +59,7 @@ index f171df8..2d00ada 100644
if (device->back_buffer_view)
{
@@ -1087,8 +1063,6 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
@@ -1086,8 +1062,6 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
device->back_buffer_view = NULL;
}
@ -68,16 +68,16 @@ index f171df8..2d00ada 100644
for (i = 0; i < device->swapchain_count; ++i)
{
TRACE("Releasing the implicit swapchain %u.\n", i);
@@ -4166,6 +4140,8 @@ void device_delete_opengl_contexts_cs(struct wined3d_device *device, struct wine
@@ -4165,6 +4139,8 @@ void device_delete_opengl_contexts_cs(struct wined3d_device *device, struct wine
context = context_acquire(device, NULL);
gl_info = context->gl_info;
+ wine_rb_for_each_entry(&device->samplers, device_free_sampler, device);
+ wine_rb_clear(&device->samplers, device_free_sampler, NULL);
+
if (device->depth_blt_texture)
{
gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->depth_blt_texture);
@@ -4185,6 +4161,7 @@ void device_delete_opengl_contexts_cs(struct wined3d_device *device, struct wine
@@ -4184,6 +4160,7 @@ void device_delete_opengl_contexts_cs(struct wined3d_device *device, struct wine
HeapFree(GetProcessHeap(), 0, swapchain->context);
swapchain->context = NULL;

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,3 @@
Fixes: [11674] Support for CSMT (command stream) to increase graphic performance
Depends: wined3d-CSMT_Helper
Depends: wined3d-Color_Key
IfDefined: STAGING_CSMT

View File

@ -1,43 +0,0 @@
From 4e1dac79637c3e4f1e606a3a7fcb6dd2974de7c5 Mon Sep 17 00:00:00 2001
From: Christian Costa <titan.costa@gmail.com>
Date: Thu, 8 Jan 2015 00:16:39 +0100
Subject: wined3d: Use proper color key type define when calling
wined3d_texture_set_color_key.
Fix bug https://bugs.winehq.org/show_bug.cgi?id=37748 which was a regression caused
by commit a8ab56941577a01e17b947cddd374ba52ffd8245.
---
dlls/wined3d/surface.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index fb27c8a..ad41834 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -3687,12 +3687,12 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
else if (flags & WINEDDBLT_KEYSRCOVERRIDE)
{
/* Use color key from DDBltFx */
- wined3d_texture_set_color_key(src_surface->container, WINEDDSD_CKSRCBLT, &DDBltFx->ddckSrcColorkey);
+ wined3d_texture_set_color_key(src_surface->container, WINEDDCKEY_SRCBLT, &DDBltFx->ddckSrcColorkey);
}
else
{
/* Do not use color key */
- wined3d_texture_set_color_key(src_surface->container, WINEDDSD_CKSRCBLT, NULL);
+ wined3d_texture_set_color_key(src_surface->container, WINEDDCKEY_SRCBLT, NULL);
}
surface_blt_to_drawable(device, filter,
@@ -3700,7 +3700,7 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
src_surface, src_rect, dst_surface, dst_rect);
/* Restore the color key parameters */
- wined3d_texture_set_color_key(src_surface->container, WINEDDSD_CKSRCBLT,
+ wined3d_texture_set_color_key(src_surface->container, WINEDDCKEY_SRCBLT,
(old_color_key_flags & WINEDDSD_CKSRCBLT) ? &old_blt_key : NULL);
surface_validate_location(dst_surface, dst_surface->container->resource.draw_binding);
--
2.2.1

View File

@ -1 +0,0 @@
Fixes: [37748] Fix color key regression causing pink rectangles around text

View File

@ -1,4 +1,4 @@
From 61ed71d54a87884d8c771c548b8311fe48ee3c6a Mon Sep 17 00:00:00 2001
From 864636075386f9057b53c8e076978d95dd782360 Mon Sep 17 00:00:00 2001
From: Ken Thomases <ken@codeweavers.com>
Date: Sun, 14 Sep 2014 19:46:53 -0500
Subject: Revert "wined3d: Track if a context's private hdc has had its pixel
@ -11,7 +11,7 @@ This reverts commit f3aa4812382caa459b9b612f66998c6ea8257594.
2 files changed, 6 insertions(+), 19 deletions(-)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 693267e..402878d 100644
index d3f7629..11c8804 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -800,13 +800,9 @@ static BOOL context_restore_pixel_format(struct wined3d_context *ctx)
@ -87,19 +87,20 @@ index 693267e..402878d 100644
ret->needs_set = 1;
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index ff98ec0..16323ca 100644
index 4373805..d98fcae 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1103,8 +1103,7 @@ struct wined3d_context
@@ -1158,9 +1158,8 @@ struct wined3d_context
DWORD rebind_fbo : 1;
DWORD needs_set : 1;
DWORD hdc_is_private : 1;
- DWORD hdc_has_format : 1; /* only meaningful if hdc_is_private */
- DWORD padding : 16;
+ DWORD padding : 17;
DWORD update_shader_resource_bindings : 1;
- DWORD padding : 15;
+ DWORD padding : 16;
DWORD shader_update_mask;
DWORD constant_update_mask;
DWORD numbered_array_mask;
--
2.1.0
2.2.1

View File

@ -1,4 +1,4 @@
From 9266e76fa92231e5186cbd8bd9e0b2c2ba1c47d4 Mon Sep 17 00:00:00 2001
From 65c52a9b806970acd90fc23461373a3df6632c76 Mon Sep 17 00:00:00 2001
From: Ken Thomases <ken@codeweavers.com>
Date: Sun, 14 Sep 2014 19:47:03 -0500
Subject: Revert "wined3d: Track if a context's hdc is private so we never need
@ -11,7 +11,7 @@ This reverts commit 272873823e9beff91ea1a62845fc7e5f94a9636f.
2 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 402878d..a347a8b 100644
index 11c8804..f49c9b9 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -797,7 +797,7 @@ static BOOL context_restore_pixel_format(struct wined3d_context *ctx)
@ -110,19 +110,20 @@ index 402878d..a347a8b 100644
ret->needs_set = 1;
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 16323ca..849a44a 100644
index d98fcae..1c6c345 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1102,8 +1102,7 @@ struct wined3d_context
@@ -1157,9 +1157,8 @@ struct wined3d_context
DWORD lowest_disabled_stage : 4; /* Max MAX_TEXTURES, 8 */
DWORD rebind_fbo : 1;
DWORD needs_set : 1;
- DWORD hdc_is_private : 1;
- DWORD padding : 17;
+ DWORD padding : 18;
DWORD update_shader_resource_bindings : 1;
- DWORD padding : 16;
+ DWORD padding : 17;
DWORD shader_update_mask;
DWORD constant_update_mask;
DWORD numbered_array_mask;
--
2.1.0
2.2.1