mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Rebase against 51c7df4f376fa7924752dc32a9715a4475e038df.
This commit is contained in:
parent
857c2fcfe2
commit
3f111101a8
@ -51,7 +51,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "fac012f2e114870c9628e5ea5b5c8312284c0f3e"
|
||||
echo "51c7df4f376fa7924752dc32a9715a4475e038df"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 685b6529a527c91b4f66a82080d68cc46189dc6f Mon Sep 17 00:00:00 2001
|
||||
From c7352c62f7ed224bd01b3ee734a73e864f39c617 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Sat, 6 Jul 2013 18:15:00 +0200
|
||||
Subject: wined3d: wined3d_*_query_issue never fails
|
||||
@ -9,10 +9,10 @@ Subject: wined3d: wined3d_*_query_issue never fails
|
||||
2 files changed, 10 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
index c8e693f..8281193 100644
|
||||
index d692054..5169e60 100644
|
||||
--- a/dlls/wined3d/query.c
|
||||
+++ b/dlls/wined3d/query.c
|
||||
@@ -297,7 +297,8 @@ HRESULT CDECL wined3d_query_issue(struct wined3d_query *query, DWORD flags)
|
||||
@@ -321,7 +321,8 @@ HRESULT CDECL wined3d_query_issue(struct wined3d_query *query, DWORD flags)
|
||||
{
|
||||
TRACE("query %p, flags %#x.\n", query, flags);
|
||||
|
||||
@ -22,7 +22,7 @@ index c8e693f..8281193 100644
|
||||
}
|
||||
|
||||
static void fill_query_data(void *out, unsigned int out_size, const void *result, unsigned int result_size)
|
||||
@@ -426,7 +427,7 @@ enum wined3d_query_type CDECL wined3d_query_get_type(const struct wined3d_query
|
||||
@@ -450,7 +451,7 @@ enum wined3d_query_type CDECL wined3d_query_get_type(const struct wined3d_query
|
||||
return query->type;
|
||||
}
|
||||
|
||||
@ -31,7 +31,7 @@ index c8e693f..8281193 100644
|
||||
{
|
||||
TRACE("query %p, flags %#x.\n", query, flags);
|
||||
|
||||
@@ -447,11 +448,9 @@ static HRESULT wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
@@ -470,11 +471,9 @@ static HRESULT wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
query->state = QUERY_BUILDING;
|
||||
else
|
||||
query->state = QUERY_SIGNALLED;
|
||||
@ -42,9 +42,9 @@ index c8e693f..8281193 100644
|
||||
-static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||
+static void wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||
{
|
||||
struct wined3d_occlusion_query *oq = query->extendedData;
|
||||
struct wined3d_occlusion_query *oq = wined3d_occlusion_query_from_query(query);
|
||||
struct wined3d_device *device = query->device;
|
||||
@@ -523,7 +522,7 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
|
||||
@@ -546,7 +545,7 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
|
||||
else
|
||||
query->state = QUERY_SIGNALLED;
|
||||
|
||||
@ -53,7 +53,7 @@ index c8e693f..8281193 100644
|
||||
}
|
||||
|
||||
static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -586,7 +585,7 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -609,7 +608,7 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
|
||||
return res;
|
||||
}
|
||||
|
||||
@ -62,7 +62,7 @@ index c8e693f..8281193 100644
|
||||
{
|
||||
struct wined3d_timestamp_query *tq = query->extendedData;
|
||||
struct wined3d_device *device = query->device;
|
||||
@@ -611,8 +610,6 @@ static HRESULT wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DW
|
||||
@@ -634,8 +633,6 @@ static HRESULT wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DW
|
||||
|
||||
query->state = QUERY_SIGNALLED;
|
||||
}
|
||||
@ -71,7 +71,7 @@ index c8e693f..8281193 100644
|
||||
}
|
||||
|
||||
static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -641,7 +638,7 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer
|
||||
@@ -664,7 +661,7 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@ -80,7 +80,7 @@ index c8e693f..8281193 100644
|
||||
{
|
||||
TRACE("query %p, flags %#x.\n", query, flags);
|
||||
|
||||
@@ -649,8 +646,6 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query *
|
||||
@@ -672,8 +669,6 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query *
|
||||
query->state = QUERY_BUILDING;
|
||||
if (flags & WINED3DISSUE_END)
|
||||
query->state = QUERY_SIGNALLED;
|
||||
@ -89,7 +89,7 @@ index c8e693f..8281193 100644
|
||||
}
|
||||
|
||||
static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -665,10 +660,9 @@ static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query
|
||||
@@ -688,10 +683,9 @@ static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@ -101,7 +101,7 @@ index c8e693f..8281193 100644
|
||||
}
|
||||
|
||||
static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -683,10 +677,9 @@ static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -706,10 +700,9 @@ static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query,
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@ -114,10 +114,10 @@ index c8e693f..8281193 100644
|
||||
|
||||
static const struct wined3d_query_ops event_query_ops =
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index a26f176..ef9cead 100644
|
||||
index 28b2345..db2793b 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -3118,7 +3118,7 @@ enum query_state {
|
||||
@@ -1382,7 +1382,7 @@ enum wined3d_query_state
|
||||
struct wined3d_query_ops
|
||||
{
|
||||
HRESULT (*query_get_data)(struct wined3d_query *query, void *data, DWORD data_size, DWORD flags);
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 5c86878b28887e4f38ca371c1006e4ee47d53525 Mon Sep 17 00:00:00 2001
|
||||
From 27c40b29b5eabe6a2c131152282fa8568b4abcb7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Sat, 6 Jul 2013 19:18:48 +0200
|
||||
Subject: wined3d: Poll queries automatically in the CS
|
||||
@ -143,7 +143,7 @@ index 94232db..213943f 100644
|
||||
{
|
||||
continue;
|
||||
diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
index 7e7c993..262295f 100644
|
||||
index 1a26fa9..e3b91b0 100644
|
||||
--- a/dlls/wined3d/query.c
|
||||
+++ b/dlls/wined3d/query.c
|
||||
@@ -35,6 +35,7 @@ static void wined3d_query_init(struct wined3d_query *query, struct wined3d_devic
|
||||
@ -154,7 +154,7 @@ index 7e7c993..262295f 100644
|
||||
}
|
||||
|
||||
static struct wined3d_event_query *wined3d_event_query_from_query(struct wined3d_query *query)
|
||||
@@ -289,7 +290,18 @@ ULONG CDECL wined3d_query_decref(struct wined3d_query *query)
|
||||
@@ -296,7 +297,18 @@ ULONG CDECL wined3d_query_decref(struct wined3d_query *query)
|
||||
TRACE("%p decreasing refcount to %u.\n", query, refcount);
|
||||
|
||||
if (!refcount)
|
||||
@ -173,7 +173,7 @@ index 7e7c993..262295f 100644
|
||||
|
||||
return refcount;
|
||||
}
|
||||
@@ -297,20 +309,10 @@ ULONG CDECL wined3d_query_decref(struct wined3d_query *query)
|
||||
@@ -304,20 +316,10 @@ ULONG CDECL wined3d_query_decref(struct wined3d_query *query)
|
||||
HRESULT CDECL wined3d_query_get_data(struct wined3d_query *query,
|
||||
void *data, UINT data_size, DWORD flags)
|
||||
{
|
||||
@ -195,10 +195,10 @@ index 7e7c993..262295f 100644
|
||||
}
|
||||
|
||||
UINT CDECL wined3d_query_get_data_size(const struct wined3d_query *query)
|
||||
@@ -340,14 +342,7 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -347,14 +349,7 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
void *data, DWORD size, DWORD flags)
|
||||
{
|
||||
struct wined3d_occlusion_query *oq = query->extendedData;
|
||||
struct wined3d_occlusion_query *oq = wined3d_occlusion_query_from_query(query);
|
||||
- struct wined3d_device *device = query->device;
|
||||
- const struct wined3d_gl_info *gl_info = &device->adapter->gl_info;
|
||||
- struct wined3d_context *context;
|
||||
@ -210,7 +210,7 @@ index 7e7c993..262295f 100644
|
||||
|
||||
if (!oq->context)
|
||||
query->state = QUERY_CREATED;
|
||||
@@ -361,6 +356,8 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -368,6 +363,8 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@ -219,7 +219,7 @@ index 7e7c993..262295f 100644
|
||||
if (query->state == QUERY_BUILDING)
|
||||
{
|
||||
/* Msdn says this returns an error, but our tests show that S_FALSE is returned */
|
||||
@@ -368,12 +365,37 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -375,12 +372,37 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
return S_FALSE;
|
||||
}
|
||||
|
||||
@ -241,7 +241,7 @@ index 7e7c993..262295f 100644
|
||||
+
|
||||
+static BOOL wined3d_occlusion_query_ops_poll(struct wined3d_query *query)
|
||||
+{
|
||||
+ struct wined3d_occlusion_query *oq = query->extendedData;
|
||||
+ struct wined3d_occlusion_query *oq = wined3d_occlusion_query_from_query(query);
|
||||
+ struct wined3d_device *device = query->device;
|
||||
+ const struct wined3d_gl_info *gl_info = &device->adapter->gl_info;
|
||||
+ struct wined3d_context *context;
|
||||
@ -260,7 +260,7 @@ index 7e7c993..262295f 100644
|
||||
}
|
||||
|
||||
context = context_acquire(device, context_get_rt_surface(oq->context));
|
||||
@@ -384,61 +406,71 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -391,61 +413,71 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
|
||||
if (available)
|
||||
{
|
||||
@ -360,7 +360,7 @@ index 7e7c993..262295f 100644
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
@@ -558,33 +590,57 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -565,33 +597,57 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
|
||||
void *data, DWORD size, DWORD flags)
|
||||
{
|
||||
struct wined3d_timestamp_query *tq = query->extendedData;
|
||||
@ -404,11 +404,11 @@ index 7e7c993..262295f 100644
|
||||
- HRESULT res;
|
||||
-
|
||||
- TRACE("query %p, data %p, size %#x, flags %#x.\n", query, data, size, flags);
|
||||
-
|
||||
- if (!tq->context)
|
||||
- query->state = QUERY_CREATED;
|
||||
+ BOOL ret;
|
||||
|
||||
- if (!tq->context)
|
||||
- query->state = QUERY_CREATED;
|
||||
-
|
||||
- if (query->state == QUERY_CREATED)
|
||||
+ if (!gl_info->supported[ARB_TIMER_QUERY])
|
||||
{
|
||||
@ -433,7 +433,7 @@ index 7e7c993..262295f 100644
|
||||
}
|
||||
|
||||
context = context_acquire(device, context_get_rt_surface(tq->context));
|
||||
@@ -595,23 +651,20 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -602,23 +658,20 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
|
||||
|
||||
if (available)
|
||||
{
|
||||
@ -464,7 +464,7 @@ index 7e7c993..262295f 100644
|
||||
}
|
||||
|
||||
static void wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||
@@ -645,7 +698,6 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer
|
||||
@@ -652,7 +705,6 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer
|
||||
void *data, DWORD size, DWORD flags)
|
||||
{
|
||||
TRACE("query %p, data %p, size %#x, flags %#x.\n", query, data, size, flags);
|
||||
@ -472,7 +472,7 @@ index 7e7c993..262295f 100644
|
||||
if (query->type == WINED3D_QUERY_TYPE_TIMESTAMP_DISJOINT)
|
||||
{
|
||||
static const struct wined3d_query_data_timestamp_disjoint disjoint_data = {1000 * 1000 * 1000, FALSE};
|
||||
@@ -667,6 +719,11 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer
|
||||
@@ -674,6 +726,11 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@ -484,7 +484,7 @@ index 7e7c993..262295f 100644
|
||||
static void wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||
{
|
||||
TRACE("query %p, flags %#x.\n", query, flags);
|
||||
@@ -689,6 +746,11 @@ static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query
|
||||
@@ -696,6 +753,11 @@ static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@ -496,7 +496,7 @@ index 7e7c993..262295f 100644
|
||||
static void wined3d_statistics_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||
{
|
||||
FIXME("query %p, flags %#x.\n", query, flags);
|
||||
@@ -706,6 +768,11 @@ static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -713,6 +775,11 @@ static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query,
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@ -508,7 +508,7 @@ index 7e7c993..262295f 100644
|
||||
static void wined3d_overflow_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||
{
|
||||
FIXME("query %p, flags %#x.\n", query, flags);
|
||||
@@ -714,6 +781,7 @@ static void wined3d_overflow_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
@@ -721,6 +788,7 @@ static void wined3d_overflow_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
static const struct wined3d_query_ops event_query_ops =
|
||||
{
|
||||
wined3d_event_query_ops_get_data,
|
||||
@ -516,7 +516,7 @@ index 7e7c993..262295f 100644
|
||||
wined3d_event_query_ops_issue,
|
||||
};
|
||||
|
||||
@@ -745,30 +813,35 @@ static HRESULT wined3d_event_query_create(struct wined3d_device *device,
|
||||
@@ -752,6 +820,7 @@ static HRESULT wined3d_event_query_create(struct wined3d_device *device,
|
||||
static const struct wined3d_query_ops occlusion_query_ops =
|
||||
{
|
||||
wined3d_occlusion_query_ops_get_data,
|
||||
@ -524,6 +524,7 @@ index 7e7c993..262295f 100644
|
||||
wined3d_occlusion_query_ops_issue,
|
||||
};
|
||||
|
||||
@@ -783,24 +852,28 @@ static HRESULT wined3d_occlusion_query_create(struct wined3d_device *device,
|
||||
static const struct wined3d_query_ops timestamp_query_ops =
|
||||
{
|
||||
wined3d_timestamp_query_ops_get_data,
|
||||
@ -552,7 +553,7 @@ index 7e7c993..262295f 100644
|
||||
wined3d_overflow_query_ops_issue
|
||||
};
|
||||
|
||||
@@ -863,6 +936,7 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de
|
||||
@@ -877,6 +950,7 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de
|
||||
query->state = QUERY_CREATED;
|
||||
query->device = device;
|
||||
query->ref = 1;
|
||||
@ -561,7 +562,7 @@ index 7e7c993..262295f 100644
|
||||
return WINED3D_OK;
|
||||
}
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 2aa2623..db946cc 100644
|
||||
index eda6563..9e8b8ad 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -1382,6 +1382,7 @@ enum wined3d_query_state
|
||||
@ -582,15 +583,15 @@ index 2aa2623..db946cc 100644
|
||||
|
||||
void *extendedData;
|
||||
};
|
||||
@@ -1405,6 +1407,7 @@ struct wined3d_occlusion_query
|
||||
@@ -1437,6 +1439,7 @@ struct wined3d_occlusion_query
|
||||
struct list entry;
|
||||
GLuint id;
|
||||
struct wined3d_context *context;
|
||||
+ DWORD samples;
|
||||
};
|
||||
|
||||
union wined3d_gl_query_object
|
||||
@@ -1442,6 +1445,7 @@ struct wined3d_timestamp_query
|
||||
struct wined3d_timestamp_query
|
||||
@@ -1444,6 +1447,7 @@ struct wined3d_timestamp_query
|
||||
struct list entry;
|
||||
GLuint id;
|
||||
struct wined3d_context *context;
|
||||
@ -598,7 +599,7 @@ index 2aa2623..db946cc 100644
|
||||
};
|
||||
|
||||
void context_alloc_timestamp_query(struct wined3d_context *context, struct wined3d_timestamp_query *query) DECLSPEC_HIDDEN;
|
||||
@@ -3057,6 +3061,7 @@ struct wined3d_cs
|
||||
@@ -3059,6 +3063,7 @@ struct wined3d_cs
|
||||
struct wined3d_cs_queue queue;
|
||||
|
||||
LONG pending_presents;
|
||||
|
@ -1,18 +1,18 @@
|
||||
From 56b4e37209099adf0c6304ac1eeef6cbb367cc1f Mon Sep 17 00:00:00 2001
|
||||
From bdc6e270b4f3c17a4e59d8a2fa0a18986317d438 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Wed, 24 Jul 2013 16:34:17 +0200
|
||||
Subject: wined3d: Separate main and worker thread query state
|
||||
|
||||
---
|
||||
dlls/wined3d/query.c | 33 ++++++++++++---------------------
|
||||
dlls/wined3d/query.c | 29 ++++++++++-------------------
|
||||
dlls/wined3d/wined3d_private.h | 1 +
|
||||
2 files changed, 13 insertions(+), 21 deletions(-)
|
||||
2 files changed, 11 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
index 6147cb4..e3ec9be 100644
|
||||
index 2af86b8..8d4213e 100644
|
||||
--- a/dlls/wined3d/query.c
|
||||
+++ b/dlls/wined3d/query.c
|
||||
@@ -321,6 +321,12 @@ HRESULT CDECL wined3d_query_issue(struct wined3d_query *query, DWORD flags)
|
||||
@@ -329,6 +329,12 @@ HRESULT CDECL wined3d_query_issue(struct wined3d_query *query, DWORD flags)
|
||||
query->counter_main++;
|
||||
|
||||
wined3d_cs_emit_query_issue(query->device->cs, query, flags);
|
||||
@ -25,7 +25,7 @@ index 6147cb4..e3ec9be 100644
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
@@ -495,11 +501,6 @@ static void wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD fla
|
||||
@@ -503,11 +509,6 @@ static void wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD fla
|
||||
/* Started implicitly at query creation. */
|
||||
ERR("Event query issued with START flag - what to do?\n");
|
||||
}
|
||||
@ -37,7 +37,7 @@ index 6147cb4..e3ec9be 100644
|
||||
}
|
||||
|
||||
static void wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||
@@ -515,7 +516,7 @@ static void wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
@@ -523,7 +524,7 @@ static void wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
* restart. */
|
||||
if (flags & WINED3DISSUE_BEGIN)
|
||||
{
|
||||
@ -46,7 +46,7 @@ index 6147cb4..e3ec9be 100644
|
||||
{
|
||||
if (oq->context->tid != GetCurrentThreadId())
|
||||
{
|
||||
@@ -545,13 +546,14 @@ static void wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
@@ -553,13 +554,14 @@ static void wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
checkGLcall("glBeginQuery()");
|
||||
|
||||
context_release(context);
|
||||
@ -62,7 +62,7 @@ index 6147cb4..e3ec9be 100644
|
||||
{
|
||||
if (oq->context->tid != GetCurrentThreadId())
|
||||
{
|
||||
@@ -567,13 +569,9 @@ static void wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
@@ -575,13 +577,9 @@ static void wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
context_release(context);
|
||||
}
|
||||
}
|
||||
@ -77,7 +77,7 @@ index 6147cb4..e3ec9be 100644
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -680,8 +678,6 @@ static void wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
@@ -688,8 +686,6 @@ static void wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
GL_EXTCALL(glQueryCounter(tq->id, GL_TIMESTAMP));
|
||||
checkGLcall("glQueryCounter()");
|
||||
context_release(context);
|
||||
@ -86,7 +86,7 @@ index 6147cb4..e3ec9be 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -718,11 +714,6 @@ static BOOL wined3d_timestamp_disjoint_query_ops_poll(struct wined3d_query *quer
|
||||
@@ -726,11 +722,6 @@ static BOOL wined3d_timestamp_disjoint_query_ops_poll(struct wined3d_query *quer
|
||||
static void wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||
{
|
||||
TRACE("query %p, flags %#x.\n", query, flags);
|
||||
@ -98,34 +98,18 @@ index 6147cb4..e3ec9be 100644
|
||||
}
|
||||
|
||||
static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -854,13 +845,13 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de
|
||||
}
|
||||
query->query_ops = &occlusion_query_ops;
|
||||
query->data_size = sizeof(DWORD);
|
||||
- query->extendedData = HeapAlloc(GetProcessHeap(), 0, sizeof(struct wined3d_occlusion_query));
|
||||
+ query->extendedData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
|
||||
+ sizeof(struct wined3d_occlusion_query));
|
||||
if (!query->extendedData)
|
||||
{
|
||||
ERR("Failed to allocate occlusion query extended data.\n");
|
||||
return E_OUTOFMEMORY;
|
||||
}
|
||||
- ((struct wined3d_occlusion_query *)query->extendedData)->context = NULL;
|
||||
break;
|
||||
|
||||
case WINED3D_QUERY_TYPE_SO_STATISTICS:
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index bbc9eea..e81ebc6 100644
|
||||
index 2029c0a..52038aa 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -1408,6 +1408,7 @@ struct wined3d_occlusion_query
|
||||
@@ -1440,6 +1440,7 @@ struct wined3d_occlusion_query
|
||||
GLuint id;
|
||||
struct wined3d_context *context;
|
||||
DWORD samples;
|
||||
+ BOOL started;
|
||||
};
|
||||
|
||||
union wined3d_gl_query_object
|
||||
struct wined3d_timestamp_query
|
||||
--
|
||||
2.8.0
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From c7d7d750b08d361b93070b5064aa69c6089a6d37 Mon Sep 17 00:00:00 2001
|
||||
From 1f6b44c380c0157cc08d25af4798f365944a9b4b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Wed, 24 Jul 2013 17:27:35 +0200
|
||||
Subject: wined3d: Don't poll queries that failed to start
|
||||
@ -28,10 +28,10 @@ index 2f66eff..7178624 100644
|
||||
list_add_tail(&cs->query_poll_list, &query->poll_list_entry);
|
||||
|
||||
diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
index e3ec9be..dd81df0 100644
|
||||
index 8d4213e..2a9dc2f 100644
|
||||
--- a/dlls/wined3d/query.c
|
||||
+++ b/dlls/wined3d/query.c
|
||||
@@ -486,7 +486,7 @@ enum wined3d_query_type CDECL wined3d_query_get_type(const struct wined3d_query
|
||||
@@ -494,7 +494,7 @@ enum wined3d_query_type CDECL wined3d_query_get_type(const struct wined3d_query
|
||||
return query->type;
|
||||
}
|
||||
|
||||
@ -40,7 +40,7 @@ index e3ec9be..dd81df0 100644
|
||||
{
|
||||
TRACE("query %p, flags %#x.\n", query, flags);
|
||||
|
||||
@@ -495,20 +495,23 @@ static void wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD fla
|
||||
@@ -503,20 +503,23 @@ static void wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD fla
|
||||
struct wined3d_event_query *event_query = wined3d_event_query_from_query(query);
|
||||
|
||||
wined3d_event_query_issue(event_query, query->device);
|
||||
@ -57,7 +57,7 @@ index e3ec9be..dd81df0 100644
|
||||
-static void wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||
+static BOOL wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||
{
|
||||
struct wined3d_occlusion_query *oq = query->extendedData;
|
||||
struct wined3d_occlusion_query *oq = wined3d_occlusion_query_from_query(query);
|
||||
struct wined3d_device *device = query->device;
|
||||
const struct wined3d_gl_info *gl_info = &device->adapter->gl_info;
|
||||
struct wined3d_context *context;
|
||||
@ -65,7 +65,7 @@ index e3ec9be..dd81df0 100644
|
||||
|
||||
TRACE("query %p, flags %#x.\n", query, flags);
|
||||
|
||||
@@ -570,9 +573,10 @@ static void wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
@@ -578,9 +581,10 @@ static void wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
}
|
||||
}
|
||||
oq->started = FALSE;
|
||||
@ -77,7 +77,7 @@ index e3ec9be..dd81df0 100644
|
||||
}
|
||||
|
||||
static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -656,7 +660,7 @@ static BOOL wined3d_timestamp_query_ops_poll(struct wined3d_query *query)
|
||||
@@ -664,7 +668,7 @@ static BOOL wined3d_timestamp_query_ops_poll(struct wined3d_query *query)
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -86,7 +86,7 @@ index e3ec9be..dd81df0 100644
|
||||
{
|
||||
struct wined3d_timestamp_query *tq = query->extendedData;
|
||||
struct wined3d_device *device = query->device;
|
||||
@@ -679,6 +683,10 @@ static void wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
@@ -687,6 +691,10 @@ static void wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
checkGLcall("glQueryCounter()");
|
||||
context_release(context);
|
||||
}
|
||||
@ -97,7 +97,7 @@ index e3ec9be..dd81df0 100644
|
||||
}
|
||||
|
||||
static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -711,9 +719,10 @@ static BOOL wined3d_timestamp_disjoint_query_ops_poll(struct wined3d_query *quer
|
||||
@@ -719,9 +727,10 @@ static BOOL wined3d_timestamp_disjoint_query_ops_poll(struct wined3d_query *quer
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -109,7 +109,7 @@ index e3ec9be..dd81df0 100644
|
||||
}
|
||||
|
||||
static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -733,9 +742,10 @@ static BOOL wined3d_statistics_query_ops_poll(struct wined3d_query *query)
|
||||
@@ -741,9 +750,10 @@ static BOOL wined3d_statistics_query_ops_poll(struct wined3d_query *query)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -121,7 +121,7 @@ index e3ec9be..dd81df0 100644
|
||||
}
|
||||
|
||||
static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -755,9 +765,10 @@ static BOOL wined3d_overflow_query_ops_poll(struct wined3d_query *query)
|
||||
@@ -763,9 +773,10 @@ static BOOL wined3d_overflow_query_ops_poll(struct wined3d_query *query)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -134,7 +134,7 @@ index e3ec9be..dd81df0 100644
|
||||
|
||||
static const struct wined3d_query_ops event_query_ops =
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index e81ebc6..277d891 100644
|
||||
index 52038aa..13e72f8 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -1383,7 +1383,7 @@ struct wined3d_query_ops
|
||||
|
@ -1,4 +1,4 @@
|
||||
From f19ff597a700ba81ae64535e5b7d8c36839bb821 Mon Sep 17 00:00:00 2001
|
||||
From b8bb97c977b85a946ba508538bd5d621b03b0488 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Mon, 5 Aug 2013 13:07:42 +0200
|
||||
Subject: wined3d: Don't reset the query state if it doesn't have a ctx
|
||||
@ -13,11 +13,11 @@ and if it is needed with the multithreaded and/or singlethreaded CS.
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
index dd89f2e..4176d61 100644
|
||||
index 2a9dc2f..c115c04 100644
|
||||
--- a/dlls/wined3d/query.c
|
||||
+++ b/dlls/wined3d/query.c
|
||||
@@ -321,9 +321,6 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
struct wined3d_occlusion_query *oq = query->extendedData;
|
||||
@@ -349,9 +349,6 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
struct wined3d_occlusion_query *oq = wined3d_occlusion_query_from_query(query);
|
||||
GLuint samples;
|
||||
|
||||
- if (!oq->context)
|
||||
|
@ -5050,7 +5050,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
}
|
||||
|
||||
static struct wined3d_event_query *wined3d_event_query_from_query(struct wined3d_query *query)
|
||||
@@ -254,6 +257,11 @@ static void wined3d_query_destroy_object(void *object)
|
||||
@@ -259,6 +262,11 @@ static void wined3d_query_destroy_object(void *object)
|
||||
{
|
||||
struct wined3d_query *query = object;
|
||||
|
||||
@ -5062,7 +5062,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
/* Queries are specific to the GL context that created them. Not
|
||||
* deleting the query will obviously leak it, but that's still better
|
||||
* than potentially deleting a different query with the same id in this
|
||||
@@ -314,7 +322,21 @@ HRESULT CDECL wined3d_query_issue(struct wined3d_query *query, DWORD flags)
|
||||
@@ -321,7 +329,21 @@ HRESULT CDECL wined3d_query_issue(struct wined3d_query *query, DWORD flags)
|
||||
{
|
||||
TRACE("query %p, flags %#x.\n", query, flags);
|
||||
|
||||
@ -5084,15 +5084,15 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
}
|
||||
|
||||
static void fill_query_data(void *out, unsigned int out_size, const void *result, unsigned int result_size)
|
||||
@@ -326,6 +348,7 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -333,6 +355,7 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
void *data, DWORD size, DWORD flags)
|
||||
{
|
||||
struct wined3d_occlusion_query *oq = query->extendedData;
|
||||
struct wined3d_occlusion_query *oq = wined3d_occlusion_query_from_query(query);
|
||||
+#if !defined(STAGING_CSMT)
|
||||
struct wined3d_device *device = query->device;
|
||||
const struct wined3d_gl_info *gl_info = &device->adapter->gl_info;
|
||||
struct wined3d_context *context;
|
||||
@@ -337,6 +360,9 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -344,6 +367,9 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
|
||||
if (!oq->context)
|
||||
query->state = QUERY_CREATED;
|
||||
@ -5102,7 +5102,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
|
||||
if (query->state == QUERY_CREATED)
|
||||
{
|
||||
@@ -347,6 +373,10 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -354,6 +380,10 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@ -5113,7 +5113,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
if (query->state == QUERY_BUILDING)
|
||||
{
|
||||
/* Msdn says this returns an error, but our tests show that S_FALSE is returned */
|
||||
@@ -354,12 +384,45 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -361,12 +391,45 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
return S_FALSE;
|
||||
}
|
||||
|
||||
@ -5136,7 +5136,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
+
|
||||
+static BOOL wined3d_occlusion_query_ops_poll(struct wined3d_query *query)
|
||||
+{
|
||||
+ struct wined3d_occlusion_query *oq = query->extendedData;
|
||||
+ struct wined3d_occlusion_query *oq = wined3d_occlusion_query_from_query(query);
|
||||
+ struct wined3d_device *device = query->device;
|
||||
+ const struct wined3d_gl_info *gl_info = &device->adapter->gl_info;
|
||||
+ struct wined3d_context *context;
|
||||
@ -5159,7 +5159,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
}
|
||||
|
||||
context = context_acquire(device, context_get_rt_surface(oq->context));
|
||||
@@ -370,6 +433,7 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -377,6 +440,7 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
|
||||
if (available)
|
||||
{
|
||||
@ -5167,7 +5167,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
if (size)
|
||||
{
|
||||
GL_EXTCALL(glGetQueryObjectuiv(oq->id, GL_QUERY_RESULT, &samples));
|
||||
@@ -378,34 +442,55 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -385,34 +449,55 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
|
||||
fill_query_data(data, size, &samples, sizeof(samples));
|
||||
}
|
||||
res = S_OK;
|
||||
@ -5223,7 +5223,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
signaled = TRUE;
|
||||
fill_query_data(data, size, &signaled, sizeof(signaled));
|
||||
break;
|
||||
@@ -414,17 +499,58 @@ static HRESULT wined3d_event_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -421,17 +506,58 @@ static HRESULT wined3d_event_query_ops_get_data(struct wined3d_query *query,
|
||||
signaled = FALSE;
|
||||
fill_query_data(data, size, &signaled, sizeof(signaled));
|
||||
break;
|
||||
@ -5282,7 +5282,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
@@ -443,7 +569,11 @@ enum wined3d_query_type CDECL wined3d_query_get_type(const struct wined3d_query
|
||||
@@ -450,7 +576,11 @@ enum wined3d_query_type CDECL wined3d_query_get_type(const struct wined3d_query
|
||||
return query->type;
|
||||
}
|
||||
|
||||
@ -5294,7 +5294,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
{
|
||||
TRACE("query %p, flags %#x.\n", query, flags);
|
||||
|
||||
@@ -452,12 +582,16 @@ static HRESULT wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
@@ -459,12 +589,16 @@ static HRESULT wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
struct wined3d_event_query *event_query = wined3d_event_query_from_query(query);
|
||||
|
||||
wined3d_event_query_issue(event_query, query->device);
|
||||
@ -5311,7 +5311,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
|
||||
if (flags & WINED3DISSUE_BEGIN)
|
||||
query->state = QUERY_BUILDING;
|
||||
@@ -468,11 +602,20 @@ static HRESULT wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
@@ -475,11 +609,20 @@ static HRESULT wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD
|
||||
}
|
||||
|
||||
static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||
@ -5322,7 +5322,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
+static BOOL wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||
+#endif /* STAGING_CSMT */
|
||||
{
|
||||
struct wined3d_occlusion_query *oq = query->extendedData;
|
||||
struct wined3d_occlusion_query *oq = wined3d_occlusion_query_from_query(query);
|
||||
struct wined3d_device *device = query->device;
|
||||
const struct wined3d_gl_info *gl_info = &device->adapter->gl_info;
|
||||
struct wined3d_context *context;
|
||||
@ -5332,7 +5332,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
|
||||
TRACE("query %p, flags %#x.\n", query, flags);
|
||||
|
||||
@@ -480,7 +623,11 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
|
||||
@@ -487,7 +630,11 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
|
||||
* restart. */
|
||||
if (flags & WINED3DISSUE_BEGIN)
|
||||
{
|
||||
@ -5344,7 +5344,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
{
|
||||
if (oq->context->tid != GetCurrentThreadId())
|
||||
{
|
||||
@@ -510,13 +657,20 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
|
||||
@@ -517,13 +664,20 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
|
||||
checkGLcall("glBeginQuery()");
|
||||
|
||||
context_release(context);
|
||||
@ -5365,7 +5365,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
{
|
||||
if (oq->context->tid != GetCurrentThreadId())
|
||||
{
|
||||
@@ -530,6 +684,7 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
|
||||
@@ -537,6 +691,7 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
|
||||
checkGLcall("glEndQuery()");
|
||||
|
||||
context_release(context);
|
||||
@ -5373,7 +5373,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -540,17 +695,61 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
|
||||
@@ -547,17 +702,61 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
|
||||
query->state = QUERY_SIGNALLED;
|
||||
|
||||
return WINED3D_OK; /* can be WINED3DERR_INVALIDCALL. */
|
||||
@ -5435,7 +5435,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
HRESULT res;
|
||||
|
||||
TRACE("query %p, data %p, size %#x, flags %#x.\n", query, data, size, flags);
|
||||
@@ -565,14 +764,28 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -572,14 +771,28 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
|
||||
timestamp = 0;
|
||||
fill_query_data(data, size, ×tamp, sizeof(timestamp));
|
||||
return S_OK;
|
||||
@ -5464,7 +5464,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
}
|
||||
|
||||
context = context_acquire(device, context_get_rt_surface(tq->context));
|
||||
@@ -583,6 +796,7 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -590,6 +803,7 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
|
||||
|
||||
if (available)
|
||||
{
|
||||
@ -5472,7 +5472,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
if (size)
|
||||
{
|
||||
GL_EXTCALL(glGetQueryObjectui64v(tq->id, GL_QUERY_RESULT, ×tamp));
|
||||
@@ -591,18 +805,36 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -598,18 +812,36 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
|
||||
fill_query_data(data, size, ×tamp, sizeof(timestamp));
|
||||
}
|
||||
res = S_OK;
|
||||
@ -5509,7 +5509,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
{
|
||||
struct wined3d_timestamp_query *tq = query->extendedData;
|
||||
struct wined3d_device *device = query->device;
|
||||
@@ -624,18 +856,28 @@ static HRESULT wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DW
|
||||
@@ -631,18 +863,28 @@ static HRESULT wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DW
|
||||
GL_EXTCALL(glQueryCounter(tq->id, GL_TIMESTAMP));
|
||||
checkGLcall("glQueryCounter()");
|
||||
context_release(context);
|
||||
@ -5538,7 +5538,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
if (query->type == WINED3D_QUERY_TYPE_TIMESTAMP_DISJOINT)
|
||||
{
|
||||
static const struct wined3d_query_data_timestamp_disjoint disjoint_data = {1000 * 1000 * 1000, FALSE};
|
||||
@@ -657,6 +899,7 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer
|
||||
@@ -664,6 +906,7 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@ -5546,7 +5546,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
static HRESULT wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||
{
|
||||
TRACE("query %p, flags %#x.\n", query, flags);
|
||||
@@ -667,6 +910,17 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query *
|
||||
@@ -674,6 +917,17 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query *
|
||||
query->state = QUERY_SIGNALLED;
|
||||
|
||||
return WINED3D_OK;
|
||||
@ -5564,7 +5564,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
}
|
||||
|
||||
static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -681,10 +935,22 @@ static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query
|
||||
@@ -688,10 +942,22 @@ static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@ -5587,7 +5587,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
}
|
||||
|
||||
static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -699,15 +965,30 @@ static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query,
|
||||
@@ -706,15 +972,30 @@ static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query,
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@ -5618,7 +5618,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
wined3d_event_query_ops_issue,
|
||||
};
|
||||
|
||||
@@ -739,30 +1020,45 @@ static HRESULT wined3d_event_query_create(struct wined3d_device *device,
|
||||
@@ -746,6 +1027,9 @@ static HRESULT wined3d_event_query_create(struct wined3d_device *device,
|
||||
static const struct wined3d_query_ops occlusion_query_ops =
|
||||
{
|
||||
wined3d_occlusion_query_ops_get_data,
|
||||
@ -5628,6 +5628,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
wined3d_occlusion_query_ops_issue,
|
||||
};
|
||||
|
||||
@@ -777,24 +1061,36 @@ static HRESULT wined3d_occlusion_query_create(struct wined3d_device *device,
|
||||
static const struct wined3d_query_ops timestamp_query_ops =
|
||||
{
|
||||
wined3d_timestamp_query_ops_get_data,
|
||||
@ -5664,28 +5665,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
wined3d_overflow_query_ops_issue
|
||||
};
|
||||
|
||||
@@ -784,13 +1080,20 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de
|
||||
}
|
||||
query->query_ops = &occlusion_query_ops;
|
||||
query->data_size = sizeof(DWORD);
|
||||
+#if !defined(STAGING_CSMT)
|
||||
query->extendedData = HeapAlloc(GetProcessHeap(), 0, sizeof(struct wined3d_occlusion_query));
|
||||
+#else /* STAGING_CSMT */
|
||||
+ query->extendedData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
|
||||
+ sizeof(struct wined3d_occlusion_query));
|
||||
+#endif /* STAGING_CSMT */
|
||||
if (!query->extendedData)
|
||||
{
|
||||
ERR("Failed to allocate occlusion query extended data.\n");
|
||||
return E_OUTOFMEMORY;
|
||||
}
|
||||
+#if !defined(STAGING_CSMT)
|
||||
((struct wined3d_occlusion_query *)query->extendedData)->context = NULL;
|
||||
+#endif /* STAGING_CSMT */
|
||||
break;
|
||||
|
||||
case WINED3D_QUERY_TYPE_SO_STATISTICS:
|
||||
@@ -857,6 +1160,9 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de
|
||||
@@ -871,6 +1167,9 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de
|
||||
query->state = QUERY_CREATED;
|
||||
query->device = device;
|
||||
query->ref = 1;
|
||||
@ -8729,7 +8709,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
void *extendedData;
|
||||
};
|
||||
@@ -1402,6 +1417,10 @@ struct wined3d_occlusion_query
|
||||
@@ -1434,6 +1449,10 @@ struct wined3d_occlusion_query
|
||||
struct list entry;
|
||||
GLuint id;
|
||||
struct wined3d_context *context;
|
||||
@ -8739,8 +8719,8 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
+#endif /* STAGING_CSMT */
|
||||
};
|
||||
|
||||
union wined3d_gl_query_object
|
||||
@@ -1439,11 +1458,46 @@ struct wined3d_timestamp_query
|
||||
struct wined3d_timestamp_query
|
||||
@@ -1441,11 +1460,46 @@ struct wined3d_timestamp_query
|
||||
struct list entry;
|
||||
GLuint id;
|
||||
struct wined3d_context *context;
|
||||
@ -8787,7 +8767,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
struct wined3d_context
|
||||
{
|
||||
const struct wined3d_gl_info *gl_info;
|
||||
@@ -1458,6 +1512,9 @@ struct wined3d_context
|
||||
@@ -1460,6 +1514,9 @@ struct wined3d_context
|
||||
DWORD dirtyArray[STATE_HIGHEST + 1]; /* Won't get bigger than that, a state is never marked dirty 2 times */
|
||||
DWORD numDirtyEntries;
|
||||
DWORD isStateDirty[STATE_HIGHEST / (sizeof(DWORD) * CHAR_BIT) + 1]; /* Bitmap to find out quickly if a state is dirty */
|
||||
@ -8797,7 +8777,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
struct wined3d_swapchain *swapchain;
|
||||
struct
|
||||
@@ -1566,12 +1623,14 @@ struct wined3d_context
|
||||
@@ -1568,12 +1625,14 @@ struct wined3d_context
|
||||
GLuint dummy_arbfp_prog;
|
||||
};
|
||||
|
||||
@ -8812,7 +8792,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
typedef void (*APPLYSTATEFUNC)(struct wined3d_context *ctx, const struct wined3d_state *state, DWORD state_id);
|
||||
|
||||
struct StateEntry
|
||||
@@ -1710,7 +1769,11 @@ void context_alloc_event_query(struct wined3d_context *context,
|
||||
@@ -1712,7 +1771,11 @@ void context_alloc_event_query(struct wined3d_context *context,
|
||||
void context_alloc_occlusion_query(struct wined3d_context *context,
|
||||
struct wined3d_occlusion_query *query) DECLSPEC_HIDDEN;
|
||||
void context_apply_blit_state(struct wined3d_context *context, const struct wined3d_device *device) DECLSPEC_HIDDEN;
|
||||
@ -8824,7 +8804,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
UINT rt_count, const struct wined3d_fb_state *fb) DECLSPEC_HIDDEN;
|
||||
BOOL context_apply_draw_state(struct wined3d_context *context,
|
||||
const struct wined3d_device *device, const struct wined3d_state *state) DECLSPEC_HIDDEN;
|
||||
@@ -2336,7 +2399,11 @@ struct wined3d_stream_state
|
||||
@@ -2338,7 +2401,11 @@ struct wined3d_stream_state
|
||||
struct wined3d_state
|
||||
{
|
||||
DWORD flags;
|
||||
@ -8836,7 +8816,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
struct wined3d_vertex_declaration *vertex_declaration;
|
||||
struct wined3d_stream_output stream_output[MAX_STREAM_OUT];
|
||||
@@ -2382,6 +2449,16 @@ struct wined3d_state
|
||||
@@ -2384,6 +2451,16 @@ struct wined3d_state
|
||||
DWORD render_states[WINEHIGHEST_RENDER_STATE + 1];
|
||||
};
|
||||
|
||||
@ -8853,7 +8833,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
#define WINED3D_UNMAPPED_STAGE ~0U
|
||||
|
||||
/* Multithreaded flag. Removed from the public header to signal that
|
||||
@@ -2434,16 +2511,21 @@ struct wined3d_device
|
||||
@@ -2436,16 +2513,21 @@ struct wined3d_device
|
||||
struct wined3d_rendertarget_view *back_buffer_view;
|
||||
struct wined3d_swapchain **swapchains;
|
||||
UINT swapchain_count;
|
||||
@ -8875,7 +8855,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
/* For rendering to a texture using glCopyTexImage */
|
||||
GLuint depth_blt_texture;
|
||||
|
||||
@@ -2490,9 +2572,23 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
||||
@@ -2492,9 +2574,23 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
||||
UINT message, WPARAM wparam, LPARAM lparam, WNDPROC proc) DECLSPEC_HIDDEN;
|
||||
void device_resource_add(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void device_resource_released(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
@ -8899,7 +8879,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state)
|
||||
{
|
||||
@@ -2536,7 +2632,11 @@ struct wined3d_resource
|
||||
@@ -2538,7 +2634,11 @@ struct wined3d_resource
|
||||
UINT depth;
|
||||
UINT size;
|
||||
DWORD priority;
|
||||
@ -8911,7 +8891,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
struct list resource_list_entry;
|
||||
LONG access_count;
|
||||
|
||||
@@ -2643,6 +2743,9 @@ struct wined3d_texture
|
||||
@@ -2645,6 +2745,9 @@ struct wined3d_texture
|
||||
DWORD flags;
|
||||
GLenum target;
|
||||
DWORD update_map_binding;
|
||||
@ -8921,7 +8901,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
GLuint rb_multisample;
|
||||
GLuint rb_resolved;
|
||||
@@ -2680,7 +2783,12 @@ struct wined3d_texture
|
||||
@@ -2682,7 +2785,12 @@ struct wined3d_texture
|
||||
|
||||
unsigned int map_count;
|
||||
DWORD locations;
|
||||
@ -8934,7 +8914,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
} sub_resources[1];
|
||||
};
|
||||
|
||||
@@ -2731,11 +2839,23 @@ void wined3d_texture_bind(struct wined3d_texture *texture,
|
||||
@@ -2733,11 +2841,23 @@ void wined3d_texture_bind(struct wined3d_texture *texture,
|
||||
struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN;
|
||||
void wined3d_texture_bind_and_dirtify(struct wined3d_texture *texture,
|
||||
struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN;
|
||||
@ -8958,7 +8938,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
struct wined3d_texture_sub_resource *wined3d_texture_get_sub_resource(struct wined3d_texture *texture,
|
||||
unsigned int sub_resource_idx) DECLSPEC_HIDDEN;
|
||||
void wined3d_texture_invalidate_location(struct wined3d_texture *texture,
|
||||
@@ -2746,13 +2866,28 @@ void *wined3d_texture_map_bo_address(const struct wined3d_bo_address *data, size
|
||||
@@ -2748,13 +2868,28 @@ void *wined3d_texture_map_bo_address(const struct wined3d_bo_address *data, size
|
||||
const struct wined3d_gl_info *gl_info, GLenum binding, DWORD flags) DECLSPEC_HIDDEN;
|
||||
BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned int sub_resource_idx,
|
||||
struct wined3d_context *context, DWORD location) DECLSPEC_HIDDEN;
|
||||
@ -8987,7 +8967,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
void wined3d_texture_validate_location(struct wined3d_texture *texture,
|
||||
unsigned int sub_resource_idx, DWORD location) DECLSPEC_HIDDEN;
|
||||
|
||||
@@ -2870,7 +3005,11 @@ void surface_get_drawable_size(const struct wined3d_surface *surface, const stru
|
||||
@@ -2872,7 +3007,11 @@ void surface_get_drawable_size(const struct wined3d_surface *surface, const stru
|
||||
unsigned int *width, unsigned int *height) DECLSPEC_HIDDEN;
|
||||
void surface_load_fb_texture(struct wined3d_surface *surface, BOOL srgb,
|
||||
struct wined3d_context *context) DECLSPEC_HIDDEN;
|
||||
@ -8999,7 +8979,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
struct wined3d_context *context, DWORD location) DECLSPEC_HIDDEN;
|
||||
void surface_modify_ds_location(struct wined3d_surface *surface, DWORD location, UINT w, UINT h) DECLSPEC_HIDDEN;
|
||||
void surface_set_compatible_renderbuffer(struct wined3d_surface *surface,
|
||||
@@ -2881,6 +3020,11 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
|
||||
@@ -2883,6 +3022,11 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
|
||||
void wined3d_surface_upload_data(struct wined3d_surface *surface, const struct wined3d_gl_info *gl_info,
|
||||
const struct wined3d_format *format, const RECT *src_rect, UINT src_pitch, const POINT *dst_point,
|
||||
BOOL srgb, const struct wined3d_const_bo_address *data) DECLSPEC_HIDDEN;
|
||||
@ -9011,7 +8991,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
void draw_textured_quad(const struct wined3d_surface *src_surface, struct wined3d_context *context,
|
||||
const RECT *src_rect, const RECT *dst_rect, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN;
|
||||
@@ -2895,6 +3039,12 @@ struct wined3d_sampler
|
||||
@@ -2897,6 +3041,12 @@ struct wined3d_sampler
|
||||
GLuint name;
|
||||
};
|
||||
|
||||
@ -9024,7 +9004,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
struct wined3d_vertex_declaration_element
|
||||
{
|
||||
const struct wined3d_format *format;
|
||||
@@ -2990,6 +3140,7 @@ struct wined3d_stateblock
|
||||
@@ -2992,6 +3142,7 @@ struct wined3d_stateblock
|
||||
void stateblock_init_contained_states(struct wined3d_stateblock *stateblock) DECLSPEC_HIDDEN;
|
||||
|
||||
void state_cleanup(struct wined3d_state *state) DECLSPEC_HIDDEN;
|
||||
@ -9032,7 +9012,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
void state_init(struct wined3d_state *state, struct wined3d_fb_state *fb,
|
||||
const struct wined3d_gl_info *gl_info, const struct wined3d_d3d_info *d3d_info,
|
||||
DWORD flags) DECLSPEC_HIDDEN;
|
||||
@@ -3003,29 +3154,74 @@ enum wined3d_push_constants
|
||||
@@ -3005,29 +3156,74 @@ enum wined3d_push_constants
|
||||
WINED3D_PUSH_CONSTANTS_PS_I,
|
||||
WINED3D_PUSH_CONSTANTS_VS_B,
|
||||
WINED3D_PUSH_CONSTANTS_PS_B,
|
||||
@ -9107,7 +9087,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects,
|
||||
DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil) DECLSPEC_HIDDEN;
|
||||
@@ -3076,12 +3272,70 @@ void wined3d_cs_emit_set_transform(struct wined3d_cs *cs, enum wined3d_transform
|
||||
@@ -3078,12 +3274,70 @@ void wined3d_cs_emit_set_transform(struct wined3d_cs *cs, enum wined3d_transform
|
||||
void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs,
|
||||
struct wined3d_vertex_declaration *declaration) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_viewport *viewport) DECLSPEC_HIDDEN;
|
||||
@ -9178,7 +9158,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
/* TODO: Add tests and support for FLOAT16_4 POSITIONT, D3DCOLOR position, other
|
||||
* fixed function semantics as D3DCOLOR or FLOAT16 */
|
||||
@@ -3108,6 +3362,9 @@ struct wined3d_buffer
|
||||
@@ -3110,6 +3364,9 @@ struct wined3d_buffer
|
||||
GLenum buffer_object_usage;
|
||||
GLenum buffer_type_hint;
|
||||
DWORD flags;
|
||||
@ -9188,7 +9168,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
void *map_ptr;
|
||||
|
||||
struct wined3d_map_range *maps;
|
||||
@@ -3132,11 +3389,19 @@ void buffer_get_memory(struct wined3d_buffer *buffer, struct wined3d_context *co
|
||||
@@ -3134,11 +3391,19 @@ void buffer_get_memory(struct wined3d_buffer *buffer, struct wined3d_context *co
|
||||
BYTE *buffer_get_sysmem(struct wined3d_buffer *buffer, struct wined3d_context *context) DECLSPEC_HIDDEN;
|
||||
void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_context *context,
|
||||
const struct wined3d_state *state) DECLSPEC_HIDDEN;
|
||||
@ -9208,7 +9188,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
|
||||
struct wined3d_rendertarget_view
|
||||
{
|
||||
@@ -3198,7 +3463,12 @@ struct wined3d_unordered_access_view
|
||||
@@ -3200,7 +3465,12 @@ struct wined3d_unordered_access_view
|
||||
struct wined3d_swapchain_ops
|
||||
{
|
||||
void (*swapchain_present)(struct wined3d_swapchain *swapchain,
|
||||
@ -9221,7 +9201,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
void (*swapchain_frontbuffer_updated)(struct wined3d_swapchain *swapchain);
|
||||
};
|
||||
|
||||
@@ -3234,6 +3504,10 @@ struct wined3d_swapchain
|
||||
@@ -3236,6 +3506,10 @@ struct wined3d_swapchain
|
||||
|
||||
void wined3d_swapchain_activate(struct wined3d_swapchain *swapchain, BOOL activate) DECLSPEC_HIDDEN;
|
||||
struct wined3d_context *swapchain_get_context(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 15bd32c3feb6982a1197f2bd59e4a529fd63b50c Mon Sep 17 00:00:00 2001
|
||||
From 5c8a708a60962f1495e22d13240f62b5ff6a2eea Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 16 Apr 2016 18:18:54 +0200
|
||||
Subject: wined3d: Add stubs for QUERY_TYPE_SO_STATISTICS and
|
||||
@ -42,10 +42,10 @@ index df45eb5..4c65997 100644
|
||||
{D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0, D3D_FEATURE_LEVEL_11_0, TRUE, FALSE, TRUE},
|
||||
{D3D11_QUERY_SO_STATISTICS_STREAM1, D3D_FEATURE_LEVEL_11_0, FALSE, FALSE, TRUE},
|
||||
diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
index 54e8bb1..ff9475e 100644
|
||||
index 3168c30..d692054 100644
|
||||
--- a/dlls/wined3d/query.c
|
||||
+++ b/dlls/wined3d/query.c
|
||||
@@ -669,6 +669,42 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query *
|
||||
@@ -676,6 +676,42 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query *
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
@ -88,7 +88,7 @@ index 54e8bb1..ff9475e 100644
|
||||
static const struct wined3d_query_ops event_query_ops =
|
||||
{
|
||||
wined3d_event_query_ops_get_data,
|
||||
@@ -718,6 +754,18 @@ static const struct wined3d_query_ops timestamp_disjoint_query_ops =
|
||||
@@ -750,6 +786,18 @@ static const struct wined3d_query_ops timestamp_disjoint_query_ops =
|
||||
wined3d_timestamp_disjoint_query_ops_issue,
|
||||
};
|
||||
|
||||
@ -107,10 +107,10 @@ index 54e8bb1..ff9475e 100644
|
||||
static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *device,
|
||||
enum wined3d_query_type type, void *parent)
|
||||
{
|
||||
@@ -745,6 +793,20 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de
|
||||
((struct wined3d_occlusion_query *)query->extendedData)->context = NULL;
|
||||
break;
|
||||
@@ -759,6 +807,20 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de
|
||||
|
||||
switch (type)
|
||||
{
|
||||
+ case WINED3D_QUERY_TYPE_SO_STATISTICS:
|
||||
+ FIXME("Statistics query.\n");
|
||||
+ query->query_ops = &statistics_query_ops;
|
||||
|
Loading…
x
Reference in New Issue
Block a user