Rebase against b8a8e1bde9382897927945ec0b58b8a2fcfcfe59.

This commit is contained in:
Sebastian Lackner 2017-05-24 23:55:00 +02:00
parent 2ca6aebfaa
commit 8b1d3d07ab
8 changed files with 173 additions and 1638 deletions

View File

@ -1,4 +1,4 @@
From 988abb92ab5dc363b9ea734e256959eb542391e2 Mon Sep 17 00:00:00 2001
From 0c9c23711c9608551eebd1d60159e2fe523347f0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 12 Apr 2016 01:02:34 +0200
Subject: uiautomationcore: Add dll and stub some functions.
@ -11,7 +11,7 @@ Subject: uiautomationcore: Add dll and stub some functions.
4 files changed, 61 insertions(+), 12 deletions(-)
diff --git a/dlls/uiautomationcore/Makefile.in b/dlls/uiautomationcore/Makefile.in
index 78d6254a01..029fc2e499 100644
index 78d6254a015..029fc2e4995 100644
--- a/dlls/uiautomationcore/Makefile.in
+++ b/dlls/uiautomationcore/Makefile.in
@@ -1,4 +1,5 @@
@ -21,7 +21,7 @@ index 78d6254a01..029fc2e499 100644
C_SRCS = \
uia_main.c
diff --git a/dlls/uiautomationcore/uia_main.c b/dlls/uiautomationcore/uia_main.c
index 6e795ab88f..37c56dacd5 100644
index 31b7d3e7aa1..ff0506dc7d9 100644
--- a/dlls/uiautomationcore/uia_main.c
+++ b/dlls/uiautomationcore/uia_main.c
@@ -1,4 +1,5 @@
@ -124,7 +124,7 @@ index 6e795ab88f..37c56dacd5 100644
return 1;
}
@@ -81,6 +122,6 @@ int WINAPI UiaLookupId(enum AutomationIdentifierType type, const GUID *guid)
@@ -81,7 +122,7 @@ int WINAPI UiaLookupId(enum AutomationIdentifierType type, const GUID *guid)
LRESULT WINAPI UiaReturnRawElementProvider(HWND hwnd, WPARAM wParam,
LPARAM lParam, IRawElementProviderSimple *elprov)
{
@ -132,8 +132,9 @@ index 6e795ab88f..37c56dacd5 100644
+ FIXME("(%p, %lx, %lx, %p): stub!\n", hwnd, wParam, lParam, elprov);
return 0;
}
diff --git a/dlls/uiautomationcore/uiautomationcore.spec b/dlls/uiautomationcore/uiautomationcore.spec
index bff1303eda..221711c41d 100644
index 48a06b2fdad..8e676adaae1 100644
--- a/dlls/uiautomationcore/uiautomationcore.spec
+++ b/dlls/uiautomationcore/uiautomationcore.spec
@@ -53,6 +53,8 @@
@ -160,7 +161,7 @@ index bff1303eda..221711c41d 100644
+@ stub UiaProviderForNonClient
+@ stub UiaProviderFromIAccessible
@ stub UiaRaiseAsyncContentLoadedEvent
@ stub UiaRaiseAutomationEvent
@ stdcall UiaRaiseAutomationEvent(ptr long)
@ stub UiaRaiseAutomationPropertyChangedEvent
@ stub UiaRaiseStructureChangedEvent
+@ stub UiaRaiseTextEditTextChangedEvent
@ -168,7 +169,7 @@ index bff1303eda..221711c41d 100644
@ stub UiaRemoveEvent
@ stdcall UiaReturnRawElementProvider(long long long ptr)
diff --git a/include/uiautomationcoreapi.h b/include/uiautomationcoreapi.h
index 6c1752ec64..1a844d0cb7 100644
index 12c509fbec8..5ddf4b67e3d 100644
--- a/include/uiautomationcoreapi.h
+++ b/include/uiautomationcoreapi.h
@@ -39,18 +39,19 @@ DECLARE_HANDLE(HUIAPATTERNOBJECT);
@ -193,8 +194,8 @@ index 6c1752ec64..1a844d0cb7 100644
-int WINAPI UiaLookupId(enum AutomationIdentifierType type, const GUID *guid);
+int WINAPI UiaLookupId(AutomationIdentifierType type, const GUID *guid);
BOOL WINAPI UiaPatternRelease(HUIAPATTERNOBJECT hobj);
HRESULT WINAPI UiaRaiseAutomationEvent(IRawElementProviderSimple *provider, EVENTID id);
LRESULT WINAPI UiaReturnRawElementProvider(HWND hwnd, WPARAM wParam, LPARAM lParam, IRawElementProviderSimple *elprov);
BOOL WINAPI UiaTextRangeRelease(HUIATEXTRANGE hobj);
--
2.11.0
2.12.2

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "3f01ab4c39ffa50e26916a5f33d82dec1a2e42dc"
echo "b8a8e1bde9382897927945ec0b58b8a2fcfcfe59"
}
# Show version information
@ -8868,9 +8868,8 @@ fi
# | * [#11674] Support for CSMT (command stream) to increase graphic performance
# |
# | Modified files:
# | * dlls/wined3d/buffer.c, dlls/wined3d/cs.c, dlls/wined3d/device.c, dlls/wined3d/resource.c, dlls/wined3d/surface.c,
# | dlls/wined3d/swapchain.c, dlls/wined3d/texture.c, dlls/wined3d/view.c, dlls/wined3d/wined3d_main.c,
# | dlls/wined3d/wined3d_private.h
# | * dlls/wined3d/buffer.c, dlls/wined3d/cs.c, dlls/wined3d/device.c, dlls/wined3d/surface.c, dlls/wined3d/swapchain.c,
# | dlls/wined3d/texture.c, dlls/wined3d/view.c, dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h
# |
if test "$enable_wined3d_CSMT_Main" -eq 1; then
patch_apply wined3d-CSMT_Main/9999-IfDefined.patch
@ -8878,8 +8877,6 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then
printf '%s\n' '+ { "Sebastian Lackner", "wined3d: Add additional synchronization CS ops.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Send blits through the command stream.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Wrap GL BOs in a structure.", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "wined3d: Introduce a separate priority queue.", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "wined3d: Use priority queue for maps/unmaps.", 1 },';
printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Don'\''t call glFinish before swapping.", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "wined3d: Use priority queue for update_sub_resource.", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "wined3d: Reset context before destruction.", 1 },';

View File

@ -1,4 +1,4 @@
From ee2d4cc10c524a813e4eefcf3935c63479bb84be Mon Sep 17 00:00:00 2001
From 443951f5ef3359b18334b50d72724f99ce77f72e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Mon, 29 Apr 2013 18:49:53 +0200
Subject: wined3d: Send blits through the command stream.
@ -11,10 +11,10 @@ between surface_blt and surface_blt_ugly isn't particularly nice.
2 files changed, 18 insertions(+), 11 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index cbb0406dccf..613df2077a5 100644
index cf446c7cd17..b3fea23c821 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -4199,16 +4199,17 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
@@ -4241,16 +4241,17 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
return WINED3DERR_INVALIDCALL;
}
@ -31,7 +31,7 @@ index cbb0406dccf..613df2077a5 100644
- WARN("Source sub-resource %u is mapped.\n", src_sub_resource_idx);
- return WINED3DERR_INVALIDCALL;
+ struct wined3d_device *device = dst_texture->resource.device;
+ device->cs->ops->finish(device->cs);
+ device->cs->ops->finish(device->cs, WINED3D_CS_QUEUE_DEFAULT);
+ if (dst_texture->sub_resources[dst_sub_resource_idx].map_count ||
+ src_texture->sub_resources[src_sub_resource_idx].map_count)
+ {
@ -42,7 +42,7 @@ index cbb0406dccf..613df2077a5 100644
if (!src_box)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index ebc317bd43d..d43ee068a30 100644
index a77c9835bbb..55cc49be5e0 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -3231,8 +3231,14 @@ HRESULT CDECL wined3d_texture_blt(struct wined3d_texture *dst_texture, unsigned
@ -52,7 +52,7 @@ index ebc317bd43d..d43ee068a30 100644
- WARN("Sub-resource is busy, returning WINEDDERR_SURFACEBUSY.\n");
- return WINEDDERR_SURFACEBUSY;
+ struct wined3d_device *device = dst_texture->resource.device;
+ device->cs->ops->finish(device->cs);
+ device->cs->ops->finish(device->cs, WINED3D_CS_QUEUE_DEFAULT);
+ if (dst_texture->sub_resources[dst_sub_resource_idx].map_count
+ || (src_texture && src_texture->sub_resources[src_sub_resource_idx].map_count))
+ {

View File

@ -1,59 +0,0 @@
From 1ad08ef9f2b5f2830990b179bb38041212b3459e Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 8 Feb 2017 00:21:56 +0100
Subject: wined3d: Use priority queue for maps/unmaps.
---
dlls/wined3d/cs.c | 4 ++--
dlls/wined3d/resource.c | 6 ++++++
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
index c74fd1749ca..cb49f38acd3 100644
--- a/dlls/wined3d/cs.c
+++ b/dlls/wined3d/cs.c
@@ -1874,7 +1874,7 @@ HRESULT wined3d_cs_map(struct wined3d_cs *cs, struct wined3d_resource *resource,
* increasing the map count would be visible to applications. */
wined3d_not_from_cs(cs);
- op = cs->ops->require_space(cs, sizeof(*op), 0);
+ op = cs->ops->require_space(cs, sizeof(*op), 1);
op->opcode = WINED3D_CS_OP_MAP;
op->resource = resource;
op->sub_resource_idx = sub_resource_idx;
@@ -1904,7 +1904,7 @@ HRESULT wined3d_cs_unmap(struct wined3d_cs *cs, struct wined3d_resource *resourc
wined3d_not_from_cs(cs);
- op = cs->ops->require_space(cs, sizeof(*op), 0);
+ op = cs->ops->require_space(cs, sizeof(*op), 1);
op->opcode = WINED3D_CS_OP_UNMAP;
op->resource = resource;
op->sub_resource_idx = sub_resource_idx;
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
index e343067f943..fffa6fbf25c 100644
--- a/dlls/wined3d/resource.c
+++ b/dlls/wined3d/resource.c
@@ -363,6 +363,9 @@ HRESULT CDECL wined3d_resource_map(struct wined3d_resource *resource, unsigned i
flags = wined3d_resource_sanitise_map_flags(resource, flags);
+ if (wined3d_settings.cs_multithreaded)
+ wined3d_resource_wait_idle(resource);
+
return wined3d_cs_map(resource->device->cs, resource, sub_resource_idx, map_desc, box, flags);
}
@@ -378,6 +381,9 @@ HRESULT CDECL wined3d_resource_unmap(struct wined3d_resource *resource, unsigned
{
TRACE("resource %p, sub_resource_idx %u.\n", resource, sub_resource_idx);
+ if (wined3d_settings.cs_multithreaded)
+ wined3d_resource_wait_idle(resource);
+
return wined3d_cs_unmap(resource->device->cs, resource, sub_resource_idx);
}
--
2.12.2

View File

@ -1,31 +1,44 @@
From 9316955f860efa52c6b58edb4998c120bd43c377 Mon Sep 17 00:00:00 2001
From 606dbb843b9fc141ba8c904798d542696d82af32 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 12 Feb 2017 00:08:28 +0100
Subject: wined3d: Use priority queue for update_sub_resource.
---
dlls/wined3d/cs.c | 2 +-
dlls/wined3d/cs.c | 6 +++---
dlls/wined3d/device.c | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
index f146cbe4633..8dea530b413 100644
index 6bd6f3ed056..b20008d55e7 100644
--- a/dlls/wined3d/cs.c
+++ b/dlls/wined3d/cs.c
@@ -2143,7 +2143,7 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r
@@ -2139,7 +2139,7 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r
{
struct wined3d_cs_update_sub_resource *op;
- op = cs->ops->require_space(cs, sizeof(*op), 0);
+ op = cs->ops->require_space(cs, sizeof(*op), 1);
- op = cs->ops->require_space(cs, sizeof(*op), WINED3D_CS_QUEUE_DEFAULT);
+ op = cs->ops->require_space(cs, sizeof(*op), WINED3D_CS_QUEUE_MAP);
op->opcode = WINED3D_CS_OP_UPDATE_SUB_RESOURCE;
op->resource = resource;
op->sub_resource_idx = sub_resource_idx;
@@ -2150,10 +2150,10 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r
wined3d_resource_acquire(resource);
- cs->ops->submit(cs, WINED3D_CS_QUEUE_DEFAULT);
+ cs->ops->submit(cs, WINED3D_CS_QUEUE_MAP);
/* The data pointer may go away, so we need to wait until it is read.
* Copying the data may be faster if it's small. */
- cs->ops->finish(cs, WINED3D_CS_QUEUE_DEFAULT);
+ cs->ops->finish(cs, WINED3D_CS_QUEUE_MAP);
}
static void wined3d_cs_exec_add_dirty_texture_region(struct wined3d_cs *cs, const void *data)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 07d5970e4b3..56d52952a10 100644
index d3b9a1b55b1..24bc2ba54b2 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -4286,6 +4286,8 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str
@@ -4297,6 +4297,8 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str
TRACE("device %p, resource %p, sub_resource_idx %u, box %s, data %p, row_pitch %u, depth_pitch %u.\n",
device, resource, sub_resource_idx, debug_box(box), data, row_pitch, depth_pitch);

View File

@ -1,19 +1,19 @@
From 6c606d8f44420417fc8cbb248f57556a26125d0b Mon Sep 17 00:00:00 2001
From cd32330bc6d35331524eb1deef302fa8f5f6d4de Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Mon, 20 Feb 2017 00:27:25 +0100
Subject: wined3d: Improve wined3d_cs_emit_update_sub_resource.
---
dlls/wined3d/cs.c | 68 ++++++++++++++++++++++++++++++++++++++++++
dlls/wined3d/cs.c | 74 ++++++++++++++++++++++++++++++++++++++++--
dlls/wined3d/device.c | 2 --
dlls/wined3d/wined3d_private.h | 1 +
3 files changed, 69 insertions(+), 2 deletions(-)
3 files changed, 73 insertions(+), 4 deletions(-)
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
index 8dea530b413..fc67672fff2 100644
index b20008d55e7..aa83a546e87 100644
--- a/dlls/wined3d/cs.c
+++ b/dlls/wined3d/cs.c
@@ -401,6 +401,7 @@ struct wined3d_cs_update_sub_resource
@@ -402,6 +402,7 @@ struct wined3d_cs_update_sub_resource
unsigned int sub_resource_idx;
struct wined3d_box box;
struct wined3d_sub_resource_data data;
@ -21,7 +21,7 @@ index 8dea530b413..fc67672fff2 100644
};
struct wined3d_cs_add_dirty_texture_region
@@ -2142,6 +2143,49 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r
@@ -2138,6 +2139,49 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r
unsigned int slice_pitch)
{
struct wined3d_cs_update_sub_resource *op;
@ -48,10 +48,10 @@ index 8dea530b413..fc67672fff2 100644
+ }
+
+ size = FIELD_OFFSET(struct wined3d_cs_update_sub_resource, copy_data[data_size]);
+ if (!cs->ops->check_space(cs, size, 0))
+ if (!cs->ops->check_space(cs, size, WINED3D_CS_QUEUE_DEFAULT))
+ goto no_async;
+
+ op = cs->ops->require_space(cs, size, 0);
+ op = cs->ops->require_space(cs, size, WINED3D_CS_QUEUE_DEFAULT);
+ op->opcode = WINED3D_CS_OP_UPDATE_SUB_RESOURCE;
+ op->resource = resource;
+ op->sub_resource_idx = sub_resource_idx;
@ -63,27 +63,36 @@ index 8dea530b413..fc67672fff2 100644
+
+ wined3d_resource_acquire(resource);
+
+ cs->ops->submit(cs);
+ cs->ops->submit(cs, WINED3D_CS_QUEUE_DEFAULT);
+ return;
+
+no_async:
+ wined3d_resource_wait_idle(resource);
op = cs->ops->require_space(cs, sizeof(*op), 1);
op = cs->ops->require_space(cs, sizeof(*op), WINED3D_CS_QUEUE_MAP);
op->opcode = WINED3D_CS_OP_UPDATE_SUB_RESOURCE;
@@ -2282,6 +2326,11 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
@@ -2151,8 +2195,6 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r
wined3d_resource_acquire(resource);
cs->ops->submit(cs, WINED3D_CS_QUEUE_MAP);
- /* The data pointer may go away, so we need to wait until it is read.
- * Copying the data may be faster if it's small. */
cs->ops->finish(cs, WINED3D_CS_QUEUE_MAP);
}
@@ -2279,6 +2321,11 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
/* WINED3D_CS_OP_CLEAR_UNORDERED_ACCESS_VIEW */ wined3d_cs_exec_clear_unordered_access_view,
};
+static BOOL wined3d_cs_st_check_space(struct wined3d_cs *cs, size_t size, int priority)
+static BOOL wined3d_cs_st_check_space(struct wined3d_cs *cs, size_t size, enum wined3d_cs_queue_id queue_id)
+{
+ return TRUE;
+}
+
static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size, int priority)
static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size, enum wined3d_cs_queue_id queue_id)
{
if (size > (cs->data_size - cs->end))
@@ -2335,6 +2384,7 @@ static void wined3d_cs_st_finish(struct wined3d_cs *cs)
@@ -2332,6 +2379,7 @@ static void wined3d_cs_st_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id
static const struct wined3d_cs_ops wined3d_cs_st_ops =
{
@ -91,19 +100,15 @@ index 8dea530b413..fc67672fff2 100644
wined3d_cs_st_require_space,
wined3d_cs_st_submit,
wined3d_cs_st_finish,
@@ -2363,6 +2413,23 @@ static void wined3d_cs_mt_submit(struct wined3d_cs *cs)
SetEvent(cs->event);
@@ -2364,6 +2412,19 @@ static void wined3d_cs_mt_submit(struct wined3d_cs *cs, enum wined3d_cs_queue_id
wined3d_cs_queue_submit(&cs->queue[queue_id], cs);
}
+static BOOL wined3d_cs_mt_check_space(struct wined3d_cs *cs, size_t size, int priority)
+static BOOL wined3d_cs_queue_check_space(struct wined3d_cs_queue *queue, size_t size)
+{
+ struct wined3d_cs_queue *queue = priority ? &cs->prio_queue : &cs->norm_queue;
+ size_t queue_size = ARRAY_SIZE(queue->data);
+ size_t header_size, packet_size, remaining;
+
+ if (cs->thread_id == GetCurrentThreadId())
+ return wined3d_cs_st_check_space(cs, size, priority);
+
+ header_size = FIELD_OFFSET(struct wined3d_cs_packet, data[0]);
+ size = (size + header_size - 1) & ~(header_size - 1);
+ packet_size = FIELD_OFFSET(struct wined3d_cs_packet, data[size]);
@ -112,10 +117,25 @@ index 8dea530b413..fc67672fff2 100644
+ return (remaining >= packet_size);
+}
+
static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, int priority)
static void *wined3d_cs_queue_require_space(struct wined3d_cs_queue *queue, size_t size, struct wined3d_cs *cs)
{
struct wined3d_cs_queue *queue = priority ? &cs->prio_queue : &cs->norm_queue;
@@ -2444,6 +2511,7 @@ static void wined3d_cs_mt_finish(struct wined3d_cs *cs)
size_t queue_size = ARRAY_SIZE(queue->data);
@@ -2425,6 +2486,14 @@ static void *wined3d_cs_queue_require_space(struct wined3d_cs_queue *queue, size
return packet->data;
}
+static BOOL wined3d_cs_mt_check_space(struct wined3d_cs *cs, size_t size, enum wined3d_cs_queue_id queue_id)
+{
+ if (cs->thread_id == GetCurrentThreadId())
+ return wined3d_cs_st_check_space(cs, size, queue_id);
+
+ return wined3d_cs_queue_check_space(&cs->queue[queue_id], size);
+}
+
static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, enum wined3d_cs_queue_id queue_id)
{
if (cs->thread_id == GetCurrentThreadId())
@@ -2444,6 +2513,7 @@ static void wined3d_cs_mt_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id
static const struct wined3d_cs_ops wined3d_cs_mt_ops =
{
@ -124,10 +144,10 @@ index 8dea530b413..fc67672fff2 100644
wined3d_cs_mt_submit,
wined3d_cs_mt_finish,
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 1e17106cddc..adf6ded131f 100644
index fa01f8a15e0..0a638ecf19a 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -4287,8 +4287,6 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str
@@ -4298,8 +4298,6 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str
TRACE("device %p, resource %p, sub_resource_idx %u, box %s, data %p, row_pitch %u, depth_pitch %u.\n",
device, resource, sub_resource_idx, debug_box(box), data, row_pitch, depth_pitch);
@ -137,17 +157,17 @@ index 1e17106cddc..adf6ded131f 100644
{
if (sub_resource_idx > 0)
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index b647f4e23b4..093f33eee77 100644
index 6920b29329f..b6f0dd3a90c 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -3267,6 +3267,7 @@ struct wined3d_cs_queue
@@ -3318,6 +3318,7 @@ struct wined3d_cs_queue
struct wined3d_cs_ops
{
+ BOOL (*check_space)(struct wined3d_cs *cs, size_t size, int priority);
void *(*require_space)(struct wined3d_cs *cs, size_t size, int priority);
void (*submit)(struct wined3d_cs *cs);
void (*finish)(struct wined3d_cs *cs);
+ BOOL (*check_space)(struct wined3d_cs *cs, size_t size, enum wined3d_cs_queue_id queue_id);
void *(*require_space)(struct wined3d_cs *cs, size_t size, enum wined3d_cs_queue_id queue_id);
void (*submit)(struct wined3d_cs *cs, enum wined3d_cs_queue_id queue_id);
void (*finish)(struct wined3d_cs *cs, enum wined3d_cs_queue_id queue_id);
--
2.12.2

File diff suppressed because it is too large Load Diff