wined3d-CSMT_Main: Fix warning in CSMT patchset, move fixes for uninitialized memory accesses into corresponding patches.

This commit is contained in:
Sebastian Lackner 2015-01-10 07:35:17 +01:00
parent 09ab82e9d0
commit 595ac8afa2
5 changed files with 26 additions and 69 deletions

View File

@ -2910,8 +2910,7 @@ if [ "$enable_wined3d_CSMT_Main" -eq 1 ]; then
patch_apply wined3d-CSMT_Main/0171-wined3d-Don-t-try-to-sync-VBOs-manually-on-OSX-with-.patch
patch_apply wined3d-CSMT_Main/0172-wined3d-Render-target-lock-hack.patch
patch_apply wined3d-CSMT_Main/0173-wined3d-Avoid-calling-wined3d_surface_blt-from-surfa.patch
patch_apply wined3d-CSMT_Main/0174-wined3d-Fix-some-uninitialized-memory-accesses.patch
patch_apply wined3d-CSMT_Main/0175-wined3d-Enable-CSMT-by-default-print-a-winediag-mess.patch
patch_apply wined3d-CSMT_Main/0174-wined3d-Enable-CSMT-by-default-print-a-winediag-mess.patch
patch_apply wined3d-CSMT_Main/9999-IfDefined.patch
(
echo '+ { "Stefan Dösinger", "wined3d: Pass a context to surface_load_sysmem.", 1 },';
@ -3087,7 +3086,6 @@ if [ "$enable_wined3d_CSMT_Main" -eq 1 ]; then
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t try to sync VBOs manually on OSX with CSMT.", 1 },';
echo '+ { "Stefan Dösinger", "wined3d: Render target lock hack.", 1 },';
echo '+ { "Matteo Bruni", "wined3d: Avoid calling wined3d_surface_blt() from surface_upload_from_surface().", 1 },';
echo '+ { "Sebastian Lackner", "wined3d: Fix some uninitialized memory accesses.", 1 },';
echo '+ { "Sebastian Lackner", "wined3d: Enable CSMT by default, print a winediag message informing about this patchset.", 1 },';
echo '+ { "Wine Staging Team", "Autogenerated #ifdef patch for wined3d-CSMT_Main.", 1 },';
) >> "$patchlist"

View File

@ -1,4 +1,4 @@
From 61070d97c76557046a90cac37fbdf9c5f033adb4 Mon Sep 17 00:00:00 2001
From 0d11e8c92575dae298bcf9b830ef155689823c04 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Sun, 17 Nov 2013 19:49:38 +0100
Subject: wined3d: Pass a context to surface_blt_fbo.
@ -8,7 +8,7 @@ Subject: wined3d: Pass a context to surface_blt_fbo.
1 file changed, 42 insertions(+), 11 deletions(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 7a32f7f..a2f8112 100644
index f4b9071..8ca5bda 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -860,13 +860,15 @@ static void surface_depth_blt_fbo(const struct wined3d_device *device,
@ -42,7 +42,7 @@ index 7a32f7f..a2f8112 100644
+
+ if (required_rt && required_rt != old_ctx->current_rt)
+ {
+ restore_rt = context->current_rt;
+ restore_rt = old_ctx->current_rt;
+ context = context_acquire(device, required_rt);
+ }
+ else
@ -67,7 +67,7 @@ index 7a32f7f..a2f8112 100644
}
static BOOL fbo_blit_supported(const struct wined3d_gl_info *gl_info, enum wined3d_blit_op blit_op,
@@ -4140,13 +4158,17 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
@@ -4294,13 +4312,17 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
NULL, surface->resource.usage, surface->resource.pool, surface->resource.format,
NULL, surface->resource.usage, surface->resource.pool, surface->resource.format))
{
@ -87,7 +87,7 @@ index 7a32f7f..a2f8112 100644
return WINED3D_OK;
}
@@ -4161,8 +4183,10 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
@@ -4315,8 +4337,10 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
DWORD dst_location = srgb ? WINED3D_LOCATION_TEXTURE_SRGB : WINED3D_LOCATION_TEXTURE_RGB;
RECT rect = {0, 0, surface->resource.width, surface->resource.height};
@ -99,7 +99,7 @@ index 7a32f7f..a2f8112 100644
return WINED3D_OK;
}
@@ -4292,14 +4316,17 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
@@ -4447,14 +4471,17 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
static void surface_multisample_resolve(struct wined3d_surface *surface)
{
@ -118,7 +118,7 @@ index 7a32f7f..a2f8112 100644
}
HRESULT surface_load_location(struct wined3d_surface *surface, DWORD location)
@@ -5474,11 +5501,15 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
@@ -5629,11 +5656,15 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
&src_rect, src_surface->resource.usage, src_surface->resource.pool, src_surface->resource.format,
&dst_rect, dst_surface->resource.usage, dst_surface->resource.pool, dst_surface->resource.format))
{
@ -136,5 +136,5 @@ index 7a32f7f..a2f8112 100644
surface_invalidate_location(dst_surface, ~dst_surface->container->resource.draw_binding);
--
2.1.3
2.2.1

View File

@ -1,4 +1,4 @@
From 72175d9c8fd436a69642594990d9b671ac497f0d Mon Sep 17 00:00:00 2001
From 25b2ad076f6f9725353b5b7413ee062c68a89d6f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Thu, 29 Aug 2013 22:25:14 +0200
Subject: wined3d: Don't lock the src volume in device_update_volume
@ -9,22 +9,25 @@ assumption of the work queue.
FIXME: Maybe merge this with the previous patch or change their order.
---
dlls/wined3d/device.c | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
dlls/wined3d/device.c | 17 ++++-------------
1 file changed, 4 insertions(+), 13 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 5333f23..8d6272d 100644
index 5333f23..b2e3db7 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -3402,7 +3402,6 @@ static HRESULT device_update_volume(struct wined3d_context *context,
@@ -3401,9 +3401,7 @@ void CDECL wined3d_device_draw_indexed_primitive_instanced(struct wined3d_device
static HRESULT device_update_volume(struct wined3d_context *context,
struct wined3d_volume *src_volume, struct wined3d_volume *dst_volume)
{
struct wined3d_const_bo_address data;
- struct wined3d_const_bo_address data;
- struct wined3d_map_desc src;
HRESULT hr;
- HRESULT hr;
+ struct wined3d_bo_address data;
TRACE("src_volume %p, dst_volume %p.\n",
@@ -3421,19 +3420,12 @@ static HRESULT device_update_volume(struct wined3d_context *context,
src_volume, dst_volume);
@@ -3421,20 +3419,13 @@ static HRESULT device_update_volume(struct wined3d_context *context,
return WINED3DERR_INVALIDCALL;
}
@ -36,15 +39,18 @@ index 5333f23..8d6272d 100644
-
- data.buffer_object = 0;
- data.addr = src.data;
- wined3d_volume_upload_data(dst_volume, context, &data);
+ wined3d_resource_get_memory(&src_volume->resource, src_volume->resource.map_binding, &data);
wined3d_volume_upload_data(dst_volume, context, &data);
+ wined3d_volume_upload_data(dst_volume, context, wined3d_const_bo_address(&data));
wined3d_resource_invalidate_location(&dst_volume->resource, ~WINED3D_LOCATION_TEXTURE_RGB);
- hr = wined3d_volume_unmap(src_volume);
-
return hr;
- return hr;
+ return WINED3D_OK;
}
/* Context activation is done by the caller */
--
1.9.1
2.2.1

View File

@ -1,47 +0,0 @@
From ae26ae32cd73d0ca290196ac9dc02a641c77ed54 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 14 Dec 2014 15:24:44 +0100
Subject: wined3d: Fix some uninitialized memory accesses.
---
dlls/wined3d/device.c | 3 +--
dlls/wined3d/surface.c | 2 +-
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index be1ecd6..93331b4 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -3373,7 +3373,6 @@ static HRESULT device_update_volume(struct wined3d_context *context,
struct wined3d_volume *src_volume, struct wined3d_volume *dst_volume)
{
struct wined3d_const_bo_address data;
- HRESULT hr;
TRACE("src_volume %p, dst_volume %p.\n",
src_volume, dst_volume);
@@ -3397,7 +3396,7 @@ static HRESULT device_update_volume(struct wined3d_context *context,
wined3d_volume_upload_data(dst_volume, context, &data);
wined3d_resource_invalidate_location(&dst_volume->resource, ~WINED3D_LOCATION_TEXTURE_RGB);
- return hr;
+ return WINED3D_OK;
}
/* Context activation is done by the caller */
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index bf37b7d..9c3f7ce 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -770,7 +770,7 @@ static void surface_blt_fbo(const struct wined3d_device *device,
if (required_rt && required_rt != old_ctx->current_rt)
{
- restore_rt = context->current_rt;
+ restore_rt = old_ctx->current_rt;
context = context_acquire(device, required_rt);
}
else
--
1.9.1