Rebase against be91fcd879a1de768a57b4a06be470c10313b08d.

[advapi32-RegNotifyChangeKeyValue]
Removed patch to fix return value of RegNotifyChangeKeyValue for pending events
(accepted upstream).
This commit is contained in:
Sebastian Lackner 2016-04-05 18:20:22 +02:00
parent 1f66129ef4
commit 476a9c608e
8 changed files with 58 additions and 236 deletions

View File

@ -1,74 +0,0 @@
From 63e3d8fa86ea5bb6dd9154754d57b680b00533ad Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 24 Mar 2016 02:42:22 +0100
Subject: advapi32: Fix return value of RegNotifyChangeKeyValue for pending
events.
Also remove handling for STATUS_TIMEOUT. Is it ever returned?
---
dlls/advapi32/registry.c | 2 +-
dlls/advapi32/tests/registry.c | 28 ++++++++++++++++++++++++++++
2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/dlls/advapi32/registry.c b/dlls/advapi32/registry.c
index 7992384..4b3d852 100644
--- a/dlls/advapi32/registry.c
+++ b/dlls/advapi32/registry.c
@@ -2760,7 +2760,7 @@ LSTATUS WINAPI RegNotifyChangeKeyValue( HKEY hkey, BOOL fWatchSubTree,
fdwNotifyFilter, fWatchSubTree, NULL, 0,
fAsync);
- if (status && status != STATUS_TIMEOUT)
+ if (status && status != STATUS_PENDING)
return RtlNtStatusToDosError( status );
return ERROR_SUCCESS;
diff --git a/dlls/advapi32/tests/registry.c b/dlls/advapi32/tests/registry.c
index f877b36..82f5015 100644
--- a/dlls/advapi32/tests/registry.c
+++ b/dlls/advapi32/tests/registry.c
@@ -3452,6 +3452,33 @@ static void test_RegOpenCurrentUser(void)
RegCloseKey(key);
}
+static void test_RegNotifyChangeKeyValue(void)
+{
+ HKEY key, subkey;
+ HANDLE event;
+ DWORD dwret;
+ LONG ret;
+
+ event = CreateEventW(NULL, FALSE, TRUE, NULL);
+ ok(event != NULL, "CreateEvent failed, error %u\n", GetLastError());
+ ret = RegCreateKeyA(hkey_main, "TestKey", &key);
+ ok(ret == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %d\n", ret);
+
+ ret = RegNotifyChangeKeyValue(key, TRUE, REG_NOTIFY_CHANGE_NAME, event, TRUE);
+ ok(ret == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %d\n", ret);
+ dwret = WaitForSingleObject(event, 0);
+ ok(dwret == WAIT_TIMEOUT, "expected WAIT_TIMEOUT, got %u\n", dwret);
+
+ ret = RegCreateKeyA(key, "SubKey", &subkey);
+ ok(ret == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %d\n", ret);
+ dwret = WaitForSingleObject(event, 0);
+ ok(dwret == WAIT_OBJECT_0, "expected WAIT_OBJECT_0, got %u\n", dwret);
+
+ RegDeleteKeyA(key, "");
+ RegCloseKey(key);
+ CloseHandle(event);
+}
+
START_TEST(registry)
{
/* Load pointers for functions that are not available in all Windows versions */
@@ -3486,6 +3513,7 @@ START_TEST(registry)
test_delete_value();
test_delete_key_value();
test_RegOpenCurrentUser();
+ test_RegNotifyChangeKeyValue();
/* cleanup */
delete_key( hkey_main );
--
2.7.1

View File

@ -1 +0,0 @@
Fixes: [39863] Fix return value of RegNotifyChangeKeyValue for pending events

View File

@ -1,90 +0,0 @@
From 3b1a8788726b7031baa66985329f4071fc0600a7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 26 Feb 2016 23:14:25 +0100
Subject: krnl386.exe16: Emulate 'mov Eb, Gb' instruction on x86 processor
architecture.
Stolen from Sebastian Lackners ntorkrnl implementation.
---
dlls/krnl386.exe16/instr.c | 35 +++++++++++++++++++++++++++++------
1 file changed, 29 insertions(+), 6 deletions(-)
diff --git a/dlls/krnl386.exe16/instr.c b/dlls/krnl386.exe16/instr.c
index b44bd55..b0de30f 100644
--- a/dlls/krnl386.exe16/instr.c
+++ b/dlls/krnl386.exe16/instr.c
@@ -113,7 +113,7 @@ static BOOL INSTR_ReplaceSelector( CONTEXT *context, WORD *sel )
/* store an operand into a register */
-static void store_reg( CONTEXT *context, BYTE regmodrm, const BYTE *addr, int long_op )
+static void store_reg_word( CONTEXT *context, BYTE regmodrm, const BYTE *addr, int long_op )
{
switch((regmodrm >> 3) & 7)
{
@@ -152,6 +152,22 @@ static void store_reg( CONTEXT *context, BYTE regmodrm, const BYTE *addr, int lo
}
}
+/* store an operand into a byte register */
+static void store_reg_byte( CONTEXT *context, BYTE regmodrm, const BYTE *addr )
+{
+ switch((regmodrm >> 3) & 7)
+ {
+ case 0: context->Eax = (context->Eax & 0xffffff00) | *addr; break;
+ case 1: context->Ecx = (context->Ecx & 0xffffff00) | *addr; break;
+ case 2: context->Edx = (context->Edx & 0xffffff00) | *addr; break;
+ case 3: context->Ebx = (context->Ebx & 0xffffff00) | *addr; break;
+ case 4: context->Eax = (context->Eax & 0xffff00ff) | (*addr << 8); break;
+ case 5: context->Ecx = (context->Ecx & 0xffff00ff) | (*addr << 8); break;
+ case 6: context->Edx = (context->Edx & 0xffff00ff) | (*addr << 8); break;
+ case 7: context->Ebx = (context->Ebx & 0xffff00ff) | (*addr << 8); break;
+ }
+}
+
/***********************************************************************
* INSTR_GetOperandAddr
*
@@ -333,7 +349,7 @@ static BOOL INSTR_EmulateLDS( CONTEXT *context, BYTE *instr, int long_op,
/* Now store the offset in the correct register */
- store_reg( context, *regmodrm, addr, long_op );
+ store_reg_word( context, *regmodrm, addr, long_op );
/* Store the correct segment in the segment register */
@@ -689,19 +705,26 @@ DWORD __wine_emulate_instruction( EXCEPTION_RECORD *rec, CONTEXT *context )
}
return ExceptionContinueExecution;
+ case 0x8a: /* mov Eb, Gb */
case 0x8b: /* mov Ev, Gv */
{
- BYTE *addr = INSTR_GetOperandAddr(context, instr + 1, long_addr,
+ BYTE *data = INSTR_GetOperandAddr(context, instr + 1, long_addr,
segprefix, &len);
+ unsigned int data_size = (*instr == 0x8b) ? (long_op ? 4 : 2) : 1;
struct idtr idtr = get_idtr();
- unsigned int offset = addr - idtr.base;
+ unsigned int offset = data - idtr.base;
- if (offset <= idtr.limit + 1 - (long_op ? 4 : 2))
+ if (offset <= idtr.limit + 1 - data_size)
{
idt[1].LimitLow = 0x100; /* FIXME */
idt[2].LimitLow = 0x11E; /* FIXME */
idt[3].LimitLow = 0x500; /* FIXME */
- store_reg( context, instr[1], (BYTE *)idt + offset, long_op );
+
+ switch (*instr)
+ {
+ case 0x8a: store_reg_byte( context, instr[1], (BYTE *)idt + offset ); break;
+ case 0x8b: store_reg_word( context, instr[1], (BYTE *)idt + offset, long_op ); break;
+ }
context->Eip += prefixlen + len + 1;
return ExceptionContinueExecution;
}
--
2.7.1

View File

@ -51,7 +51,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "f6c10b8a75943dc3a49890c9c7a64c91752a4ee0"
echo "be91fcd879a1de768a57b4a06be470c10313b08d"
}
# Show version information
@ -86,7 +86,6 @@ patch_enable_all ()
enable_Pipelight="$1"
enable_Staging="$1"
enable_advapi32_LsaLookupSids="$1"
enable_advapi32_RegNotifyChangeKeyValue="$1"
enable_advapi32_SetSecurityInfo="$1"
enable_amstream_GetMultiMediaStream="$1"
enable_api_ms_win_Stub_DLLs="$1"
@ -433,9 +432,6 @@ patch_enable ()
advapi32-LsaLookupSids)
enable_advapi32_LsaLookupSids="$2"
;;
advapi32-RegNotifyChangeKeyValue)
enable_advapi32_RegNotifyChangeKeyValue="$2"
;;
advapi32-SetSecurityInfo)
enable_advapi32_SetSecurityInfo="$2"
;;
@ -2546,21 +2542,6 @@ if test "$enable_advapi32_LsaLookupSids" -eq 1; then
) >> "$patchlist"
fi
# Patchset advapi32-RegNotifyChangeKeyValue
# |
# | This patchset fixes the following Wine bugs:
# | * [#39863] Fix return value of RegNotifyChangeKeyValue for pending events
# |
# | Modified files:
# | * dlls/advapi32/registry.c, dlls/advapi32/tests/registry.c
# |
if test "$enable_advapi32_RegNotifyChangeKeyValue" -eq 1; then
patch_apply advapi32-RegNotifyChangeKeyValue/0001-advapi32-Fix-return-value-of-RegNotifyChangeKeyValue.patch
(
echo '+ { "Sebastian Lackner", "advapi32: Fix return value of RegNotifyChangeKeyValue for pending events.", 1 },';
) >> "$patchlist"
fi
# Patchset advapi32-SetSecurityInfo
# |
# | This patchset fixes the following Wine bugs:
@ -4308,10 +4289,8 @@ fi
# | * dlls/krnl386.exe16/instr.c
# |
if test "$enable_krnl386_exe16_GDT_LDT_Emulation" -eq 1; then
patch_apply krnl386.exe16-GDT_LDT_Emulation/0001-krnl386.exe16-Emulate-mov-Eb-Gb-instruction-on-x86-p.patch
patch_apply krnl386.exe16-GDT_LDT_Emulation/0002-krnl386.exe16-Emulate-GDT-and-LDT-access.patch
patch_apply krnl386.exe16-GDT_LDT_Emulation/0001-krnl386.exe16-Emulate-GDT-and-LDT-access.patch
(
echo '+ { "Michael Müller", "krnl386.exe16: Emulate '\''mov Eb, Gb'\'' instruction on x86 processor architecture.", 1 },';
echo '+ { "Michael Müller", "krnl386.exe16: Emulate GDT and LDT access.", 1 },';
) >> "$patchlist"
fi

View File

@ -1,4 +1,4 @@
From 8e605496655d72d832a822ba6adc77fdc2540216 Mon Sep 17 00:00:00 2001
From 5c8e815ea863794e9c598e99a3b3d7357478d067 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,10 +11,10 @@ This reverts commit 272873823e9beff91ea1a62845fc7e5f94a9636f.
2 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index cfd6ec6..ed14aa4 100644
index 45dae36..ab217fc 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -812,7 +812,7 @@ static BOOL context_restore_pixel_format(struct wined3d_context *ctx)
@@ -939,7 +939,7 @@ static BOOL context_restore_pixel_format(struct wined3d_context *ctx)
return ret;
}
@ -23,7 +23,7 @@ index cfd6ec6..ed14aa4 100644
{
const struct wined3d_gl_info *gl_info = context->gl_info;
int current = GetPixelFormat(dc);
@@ -830,7 +830,7 @@ static BOOL context_set_pixel_format(struct wined3d_context *context, HDC dc, BO
@@ -957,7 +957,7 @@ static BOOL context_set_pixel_format(struct wined3d_context *context, HDC dc, BO
}
context->restore_pf = 0;
@ -32,7 +32,7 @@ index cfd6ec6..ed14aa4 100644
return TRUE;
}
@@ -849,12 +849,12 @@ static BOOL context_set_pixel_format(struct wined3d_context *context, HDC dc, BO
@@ -976,12 +976,12 @@ static BOOL context_set_pixel_format(struct wined3d_context *context, HDC dc, BO
return FALSE;
}
@ -47,7 +47,7 @@ index cfd6ec6..ed14aa4 100644
context->restore_pf_win = win;
}
@@ -875,7 +875,7 @@ static BOOL context_set_gl_context(struct wined3d_context *ctx)
@@ -1002,7 +1002,7 @@ static BOOL context_set_gl_context(struct wined3d_context *ctx)
struct wined3d_swapchain *swapchain = ctx->swapchain;
BOOL backup = FALSE;
@ -56,7 +56,7 @@ index cfd6ec6..ed14aa4 100644
{
WARN("Failed to set pixel format %d on device context %p.\n",
ctx->pixel_format, ctx->hdc);
@@ -908,7 +908,7 @@ static BOOL context_set_gl_context(struct wined3d_context *ctx)
@@ -1035,7 +1035,7 @@ static BOOL context_set_gl_context(struct wined3d_context *ctx)
return FALSE;
}
@ -65,7 +65,7 @@ index cfd6ec6..ed14aa4 100644
{
ERR("Failed to set pixel format %d on device context %p.\n",
ctx->pixel_format, dc);
@@ -952,7 +952,6 @@ static void context_update_window(struct wined3d_context *context)
@@ -1079,7 +1079,6 @@ static void context_update_window(struct wined3d_context *context)
wined3d_release_dc(context->win_handle, context->hdc);
context->win_handle = context->swapchain->win_handle;
@ -73,15 +73,15 @@ index cfd6ec6..ed14aa4 100644
context->needs_set = 1;
context->valid = 1;
@@ -1446,7 +1445,6 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain,
int swap_interval;
@@ -1573,7 +1572,6 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain,
unsigned int s;
DWORD state;
HDC hdc = 0;
- BOOL hdc_is_private = FALSE;
TRACE("swapchain %p, target %p, window %p.\n", swapchain, target, swapchain->win_handle);
@@ -1519,9 +1517,7 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain,
@@ -1651,9 +1649,7 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain,
{
WARN("Failed to retrieve device context, trying swapchain backup.\n");
@ -92,7 +92,7 @@ index cfd6ec6..ed14aa4 100644
{
ERR("Failed to retrieve a device context.\n");
goto out;
@@ -1587,7 +1583,7 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain,
@@ -1719,7 +1715,7 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain,
ret->gl_info = gl_info;
@ -101,7 +101,7 @@ index cfd6ec6..ed14aa4 100644
{
ERR("Failed to set pixel format %d on device context %p.\n", pixel_format, hdc);
context_release(ret);
@@ -1650,7 +1646,6 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain,
@@ -1783,7 +1779,6 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain,
ret->glCtx = ctx;
ret->win_handle = swapchain->win_handle;
ret->hdc = hdc;
@ -110,10 +110,10 @@ index cfd6ec6..ed14aa4 100644
ret->needs_set = 1;
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index a5e7167..00ecbc4 100644
index 7c9b4d2..8683604 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1218,9 +1218,8 @@ struct wined3d_context
@@ -1356,9 +1356,8 @@ struct wined3d_context
DWORD use_immediate_mode_draw : 1;
DWORD rebind_fbo : 1;
DWORD needs_set : 1;
@ -125,5 +125,5 @@ index a5e7167..00ecbc4 100644
DWORD constant_update_mask;
DWORD numbered_array_mask;
--
2.6.4
2.7.1

View File

@ -1,4 +1,4 @@
From 8ab4cc3db3686130a15d6698675c836cebf5f78f Mon Sep 17 00:00:00 2001
From bf05198e84d5e154902542508e769163fcda3cc8 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Mon, 21 Mar 2016 18:27:59 +0100
Subject: wined3d: Silence extremely noisy FIXME in
@ -9,10 +9,10 @@ Subject: wined3d: Silence extremely noisy FIXME in
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 4d2a94f..853564e 100644
index 3476b32e..ec2f372 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -898,7 +898,7 @@ HRESULT CDECL wined3d_texture_add_dirty_region(struct wined3d_texture *texture,
@@ -1036,7 +1036,7 @@ HRESULT CDECL wined3d_texture_add_dirty_region(struct wined3d_texture *texture,
}
if (dirty_region)
@ -20,7 +20,7 @@ index 4d2a94f..853564e 100644
+ WARN("Ignoring dirty_region %s.\n", debug_box(dirty_region));
context = context_acquire(texture->resource.device, NULL);
if (!texture->texture_ops->texture_load_location(texture, sub_resource_idx, context, sub_resource->map_binding))
if (!texture->texture_ops->texture_load_location(texture, sub_resource_idx,
--
2.7.1

View File

@ -1,4 +1,4 @@
From b1ebd3a49593c0feb4780fd9cf47910095c3c8fc Mon Sep 17 00:00:00 2001
From 70aa91068703ddf7f6edb982f1a1c37482df7dcf Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 4 Nov 2015 19:31:30 +0100
Subject: wined3d: Rename wined3d_resource_(un)map to
@ -21,7 +21,7 @@ To avoid name conflicts in the CSMT patchset.
12 files changed, 44 insertions(+), 44 deletions(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 4e84dad..551dea7 100644
index f0bb52e..b804bc4 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -273,7 +273,7 @@ static HRESULT STDMETHODCALLTYPE d3d11_immediate_context_Map(ID3D11DeviceContext
@ -227,7 +227,7 @@ index 83457fc..7f51a1d 100644
if (src_surface->surface_desc.ddsCaps.dwCaps & DDSCAPS_MIPMAP)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 62e5129..0a32e14 100644
index 5231533..42dd0f1 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -3569,7 +3569,7 @@ static HRESULT wined3d_device_update_texture_3d(struct wined3d_device *device,
@ -248,7 +248,7 @@ index 62e5129..0a32e14 100644
goto done;
}
@@ -4289,7 +4289,7 @@ static struct wined3d_texture *wined3d_device_create_cursor_texture(struct wined
@@ -4293,7 +4293,7 @@ static struct wined3d_texture *wined3d_device_create_cursor_texture(struct wined
struct wined3d_texture *texture;
HRESULT hr;
@ -257,7 +257,7 @@ index 62e5129..0a32e14 100644
{
ERR("Failed to map source texture.\n");
return NULL;
@@ -4312,7 +4312,7 @@ static struct wined3d_texture *wined3d_device_create_cursor_texture(struct wined
@@ -4316,7 +4316,7 @@ static struct wined3d_texture *wined3d_device_create_cursor_texture(struct wined
hr = wined3d_texture_create(device, &desc, 1, WINED3D_TEXTURE_CREATE_MAPPABLE,
&data, NULL, &wined3d_null_parent_ops, &texture);
@ -266,7 +266,7 @@ index 62e5129..0a32e14 100644
if (FAILED(hr))
{
ERR("Failed to create cursor texture.\n");
@@ -4392,14 +4392,14 @@ HRESULT CDECL wined3d_device_set_cursor_properties(struct wined3d_device *device
@@ -4396,14 +4396,14 @@ HRESULT CDECL wined3d_device_set_cursor_properties(struct wined3d_device *device
return E_OUTOFMEMORY;
memset(mask_bits, 0xff, mask_size);
@ -306,41 +306,49 @@ index 423d162..0821fde 100644
TRACE("resource %p, sub_resource_idx %u.\n", resource, sub_resource_idx);
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index a7dfbf5..d47f3a9 100644
index 16d03e8..aece7e5 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -1735,25 +1735,25 @@ static struct wined3d_texture *surface_convert_format(struct wined3d_texture *sr
memset(&src_map, 0, sizeof(src_map));
memset(&dst_map, 0, sizeof(dst_map));
@@ -1737,7 +1737,7 @@ static struct wined3d_texture *surface_convert_format(struct wined3d_texture *sr
}
memset(&src_map, 0, sizeof(src_map));
- if (FAILED(wined3d_resource_map(&src_texture->resource, sub_resource_idx,
+ if (FAILED(wined3d_resource_sub_resource_map(&src_texture->resource, sub_resource_idx,
&src_map, NULL, WINED3D_MAP_READONLY)))
{
ERR("Failed to map the source texture.\n");
wined3d_texture_decref(dst_texture);
return NULL;
@@ -1749,17 +1749,17 @@ static struct wined3d_texture *surface_convert_format(struct wined3d_texture *sr
struct wined3d_map_desc dst_map;
memset(&dst_map, 0, sizeof(dst_map));
- if (FAILED(wined3d_resource_map(&dst_texture->resource, 0, &dst_map, NULL, 0)))
+ if (FAILED(wined3d_resource_sub_resource_map(&dst_texture->resource, 0, &dst_map, NULL, 0)))
{
ERR("Failed to map the destination texture.\n");
- wined3d_resource_unmap(&src_texture->resource, sub_resource_idx);
+ wined3d_resource_sub_resource_unmap(&src_texture->resource, sub_resource_idx);
wined3d_texture_decref(dst_texture);
return NULL;
}
conv->convert(src_map.data, dst_map.data, src_map.row_pitch, dst_map.row_pitch, desc.width, desc.height);
- wined3d_resource_unmap(&dst_texture->resource, 0);
+ wined3d_resource_sub_resource_unmap(&dst_texture->resource, 0);
}
- if (FAILED(wined3d_resource_map(&dst_texture->resource, 0, &dst_map, NULL, 0)))
+ if (FAILED(wined3d_resource_sub_resource_map(&dst_texture->resource, 0, &dst_map, NULL, 0)))
else
{
ERR("Failed to map the destination texture.\n");
- wined3d_resource_unmap(&src_texture->resource, sub_resource_idx);
+ wined3d_resource_sub_resource_unmap(&src_texture->resource, sub_resource_idx);
wined3d_texture_decref(dst_texture);
return NULL;
@@ -1783,7 +1783,7 @@ static struct wined3d_texture *surface_convert_format(struct wined3d_texture *sr
wined3d_texture_validate_location(dst_texture, 0, WINED3D_LOCATION_TEXTURE_RGB);
wined3d_texture_invalidate_location(dst_texture, 0, ~WINED3D_LOCATION_TEXTURE_RGB);
}
conv->convert(src_map.data, dst_map.data, src_map.row_pitch, dst_map.row_pitch, desc.width, desc.height);
- wined3d_resource_unmap(&dst_texture->resource, 0);
- wined3d_resource_unmap(&src_texture->resource, sub_resource_idx);
+ wined3d_resource_sub_resource_unmap(&dst_texture->resource, 0);
+ wined3d_resource_sub_resource_unmap(&src_texture->resource, sub_resource_idx);
return dst_texture;
}
@@ -3648,7 +3648,7 @@ static HRESULT surface_cpu_blt(struct wined3d_texture *dst_texture, unsigned int
@@ -3678,7 +3678,7 @@ static HRESULT surface_cpu_blt(struct wined3d_texture *dst_texture, unsigned int
if (src_texture == dst_texture && src_sub_resource_idx == dst_sub_resource_idx)
{
same_sub_resource = TRUE;
@ -349,7 +357,7 @@ index a7dfbf5..d47f3a9 100644
src_map = dst_map;
src_format = dst_texture->resource.format;
dst_format = src_format;
@@ -3673,7 +3673,7 @@ static HRESULT surface_cpu_blt(struct wined3d_texture *dst_texture, unsigned int
@@ -3703,7 +3703,7 @@ static HRESULT surface_cpu_blt(struct wined3d_texture *dst_texture, unsigned int
src_texture = converted_texture;
src_sub_resource_idx = 0;
}
@ -358,7 +366,7 @@ index a7dfbf5..d47f3a9 100644
src_format = src_texture->resource.format;
src_fmt_flags = src_texture->resource.format_flags;
}
@@ -3683,7 +3683,7 @@ static HRESULT surface_cpu_blt(struct wined3d_texture *dst_texture, unsigned int
@@ -3713,7 +3713,7 @@ static HRESULT surface_cpu_blt(struct wined3d_texture *dst_texture, unsigned int
src_fmt_flags = dst_fmt_flags;
}
@ -367,7 +375,7 @@ index a7dfbf5..d47f3a9 100644
}
bpp = dst_format->byte_count;
@@ -4099,9 +4099,9 @@ error:
@@ -4129,9 +4129,9 @@ error:
FIXME(" Unsupported flags %#x.\n", flags);
release: