Rebase against 654e960e340cc37a9282c52ba8aca5f779a13dbb.

This commit is contained in:
Sebastian Lackner 2016-07-23 15:38:42 +02:00
parent 3f111101a8
commit 5989fb0938
7 changed files with 103 additions and 103 deletions

View File

@ -51,7 +51,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "51c7df4f376fa7924752dc32a9715a4475e038df"
echo "654e960e340cc37a9282c52ba8aca5f779a13dbb"
}
# Show version information

View File

@ -1,4 +1,4 @@
From c7352c62f7ed224bd01b3ee734a73e864f39c617 Mon Sep 17 00:00:00 2001
From 52053fbf98485763b27e2fd9e4dacd62187e5643 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 d692054..5169e60 100644
index ef93d3b..09c8657 100644
--- a/dlls/wined3d/query.c
+++ b/dlls/wined3d/query.c
@@ -321,7 +321,8 @@ HRESULT CDECL wined3d_query_issue(struct wined3d_query *query, DWORD flags)
@@ -327,7 +327,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 d692054..5169e60 100644
}
static void fill_query_data(void *out, unsigned int out_size, const void *result, unsigned int result_size)
@@ -450,7 +451,7 @@ enum wined3d_query_type CDECL wined3d_query_get_type(const struct wined3d_query
@@ -456,7 +457,7 @@ enum wined3d_query_type CDECL wined3d_query_get_type(const struct wined3d_query
return query->type;
}
@ -31,7 +31,7 @@ index d692054..5169e60 100644
{
TRACE("query %p, flags %#x.\n", query, flags);
@@ -470,11 +471,9 @@ static HRESULT wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD
@@ -476,11 +477,9 @@ static HRESULT wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD
query->state = QUERY_BUILDING;
else
query->state = QUERY_SIGNALLED;
@ -44,7 +44,7 @@ index d692054..5169e60 100644
{
struct wined3d_occlusion_query *oq = wined3d_occlusion_query_from_query(query);
struct wined3d_device *device = query->device;
@@ -546,7 +545,7 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
@@ -552,7 +551,7 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
else
query->state = QUERY_SIGNALLED;
@ -53,16 +53,16 @@ index d692054..5169e60 100644
}
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,
@@ -615,7 +614,7 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
return res;
}
-static HRESULT wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD flags)
+static void wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD flags)
{
struct wined3d_timestamp_query *tq = query->extendedData;
struct wined3d_timestamp_query *tq = wined3d_timestamp_query_from_query(query);
struct wined3d_device *device = query->device;
@@ -634,8 +633,6 @@ static HRESULT wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DW
@@ -640,8 +639,6 @@ static HRESULT wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DW
query->state = QUERY_SIGNALLED;
}
@ -71,7 +71,7 @@ index d692054..5169e60 100644
}
static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_query *query,
@@ -664,7 +661,7 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer
@@ -670,7 +667,7 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer
return S_OK;
}
@ -80,7 +80,7 @@ index d692054..5169e60 100644
{
TRACE("query %p, flags %#x.\n", query, flags);
@@ -672,8 +669,6 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query *
@@ -678,8 +675,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 d692054..5169e60 100644
}
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
@@ -694,10 +689,9 @@ static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query
return S_OK;
}
@ -101,7 +101,7 @@ index d692054..5169e60 100644
}
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,
@@ -712,10 +706,9 @@ static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query,
return S_OK;
}
@ -114,7 +114,7 @@ index d692054..5169e60 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 28b2345..db2793b 100644
index 7f565bb..976e3b7 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1382,7 +1382,7 @@ enum wined3d_query_state

View File

@ -1,4 +1,4 @@
From 1149a8cf01cf52bca052748213958c0623829b1e Mon Sep 17 00:00:00 2001
From f4a2f28e195b9b5125e5360f4e7167fa2aaca230 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Sat, 6 Jul 2013 18:31:41 +0200
Subject: wined3d: Check our CS state to find out if a query is done
@ -28,10 +28,10 @@ index 4aaf259..94232db 100644
return sizeof(*op);
}
diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
index f656bd1..7e7c993 100644
index fbbd4f2..726da3b 100644
--- a/dlls/wined3d/query.c
+++ b/dlls/wined3d/query.c
@@ -301,6 +301,12 @@ HRESULT CDECL wined3d_query_get_data(struct wined3d_query *query,
@@ -314,6 +314,12 @@ HRESULT CDECL wined3d_query_get_data(struct wined3d_query *query,
TRACE("query %p, data %p, data_size %u, flags %#x.\n",
query, data, data_size, flags);
@ -44,7 +44,7 @@ index f656bd1..7e7c993 100644
wined3d_cs_emit_query_get_data(query->device->cs, query, data, data_size,
flags, &hr);
@@ -318,6 +324,9 @@ HRESULT CDECL wined3d_query_issue(struct wined3d_query *query, DWORD flags)
@@ -331,6 +337,9 @@ HRESULT CDECL wined3d_query_issue(struct wined3d_query *query, DWORD flags)
{
TRACE("query %p, flags %#x.\n", query, flags);
@ -55,7 +55,7 @@ index f656bd1..7e7c993 100644
return WINED3D_OK;
}
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index d554882..2aa2623 100644
index 6f00f06..232f099 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1395,6 +1395,7 @@ struct wined3d_query
@ -63,9 +63,9 @@ index d554882..2aa2623 100644
DWORD data_size;
const struct wined3d_query_ops *query_ops;
+ LONG counter_main, counter_worker;
void *extendedData;
};
union wined3d_gl_query_object
--
2.8.0

View File

@ -1,4 +1,4 @@
From 27c40b29b5eabe6a2c131152282fa8568b4abcb7 Mon Sep 17 00:00:00 2001
From 2353a70817f7f380819049b3d5b5d65a5d216e14 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 1a26fa9..e3b91b0 100644
index 726da3b..7d743b7 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 1a26fa9..e3b91b0 100644
}
static struct wined3d_event_query *wined3d_event_query_from_query(struct wined3d_query *query)
@@ -296,7 +297,18 @@ ULONG CDECL wined3d_query_decref(struct wined3d_query *query)
@@ -302,7 +303,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 1a26fa9..e3b91b0 100644
return refcount;
}
@@ -304,20 +316,10 @@ ULONG CDECL wined3d_query_decref(struct wined3d_query *query)
@@ -310,20 +322,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,7 +195,7 @@ index 1a26fa9..e3b91b0 100644
}
UINT CDECL wined3d_query_get_data_size(const struct wined3d_query *query)
@@ -347,14 +349,7 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
@@ -353,14 +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 = wined3d_occlusion_query_from_query(query);
@ -210,7 +210,7 @@ index 1a26fa9..e3b91b0 100644
if (!oq->context)
query->state = QUERY_CREATED;
@@ -368,6 +363,8 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
@@ -374,6 +369,8 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
return S_OK;
}
@ -219,7 +219,7 @@ index 1a26fa9..e3b91b0 100644
if (query->state == QUERY_BUILDING)
{
/* Msdn says this returns an error, but our tests show that S_FALSE is returned */
@@ -375,12 +372,37 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
@@ -381,12 +378,37 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
return S_FALSE;
}
@ -260,7 +260,7 @@ index 1a26fa9..e3b91b0 100644
}
context = context_acquire(device, context_get_rt_surface(oq->context));
@@ -391,61 +413,71 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
@@ -397,61 +419,71 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
if (available)
{
@ -360,10 +360,10 @@ index 1a26fa9..e3b91b0 100644
return S_OK;
}
@@ -565,33 +597,57 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
@@ -571,33 +603,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;
struct wined3d_timestamp_query *tq = wined3d_timestamp_query_from_query(query);
+
+ TRACE("(%p) : type D3DQUERY_TIMESTAMP, data %p, size %#x, flags %#x.\n", query, data, size, flags);
+
@ -395,7 +395,7 @@ index 1a26fa9..e3b91b0 100644
+
+static BOOL wined3d_timestamp_query_ops_poll(struct wined3d_query *query)
+{
+ struct wined3d_timestamp_query *tq = query->extendedData;
+ struct wined3d_timestamp_query *tq = wined3d_timestamp_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;
@ -433,7 +433,7 @@ index 1a26fa9..e3b91b0 100644
}
context = context_acquire(device, context_get_rt_surface(tq->context));
@@ -602,23 +658,20 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
@@ -608,23 +664,20 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
if (available)
{
@ -464,7 +464,7 @@ index 1a26fa9..e3b91b0 100644
}
static void wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD flags)
@@ -652,7 +705,6 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer
@@ -658,7 +711,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 1a26fa9..e3b91b0 100644
if (query->type == WINED3D_QUERY_TYPE_TIMESTAMP_DISJOINT)
{
static const struct wined3d_query_data_timestamp_disjoint disjoint_data = {1000 * 1000 * 1000, FALSE};
@@ -674,6 +726,11 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer
@@ -680,6 +732,11 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer
return S_OK;
}
@ -484,7 +484,7 @@ index 1a26fa9..e3b91b0 100644
static void wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query *query, DWORD flags)
{
TRACE("query %p, flags %#x.\n", query, flags);
@@ -696,6 +753,11 @@ static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query
@@ -702,6 +759,11 @@ static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query
return S_OK;
}
@ -496,7 +496,7 @@ index 1a26fa9..e3b91b0 100644
static void wined3d_statistics_query_ops_issue(struct wined3d_query *query, DWORD flags)
{
FIXME("query %p, flags %#x.\n", query, flags);
@@ -713,6 +775,11 @@ static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query,
@@ -719,6 +781,11 @@ static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query,
return S_OK;
}
@ -508,7 +508,7 @@ index 1a26fa9..e3b91b0 100644
static void wined3d_overflow_query_ops_issue(struct wined3d_query *query, DWORD flags)
{
FIXME("query %p, flags %#x.\n", query, flags);
@@ -721,6 +788,7 @@ static void wined3d_overflow_query_ops_issue(struct wined3d_query *query, DWORD
@@ -727,6 +794,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 1a26fa9..e3b91b0 100644
wined3d_event_query_ops_issue,
};
@@ -752,6 +820,7 @@ static HRESULT wined3d_event_query_create(struct wined3d_device *device,
@@ -758,6 +826,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,7 +524,7 @@ index 1a26fa9..e3b91b0 100644
wined3d_occlusion_query_ops_issue,
};
@@ -783,24 +852,28 @@ static HRESULT wined3d_occlusion_query_create(struct wined3d_device *device,
@@ -789,6 +858,7 @@ 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,
@ -532,6 +532,7 @@ index 1a26fa9..e3b91b0 100644
wined3d_timestamp_query_ops_issue,
};
@@ -820,18 +890,21 @@ static HRESULT wined3d_timestamp_query_create(struct wined3d_device *device,
static const struct wined3d_query_ops timestamp_disjoint_query_ops =
{
wined3d_timestamp_disjoint_query_ops_get_data,
@ -553,7 +554,7 @@ index 1a26fa9..e3b91b0 100644
wined3d_overflow_query_ops_issue
};
@@ -877,6 +950,7 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de
@@ -887,6 +960,7 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de
query->state = QUERY_CREATED;
query->device = device;
query->ref = 1;
@ -562,7 +563,7 @@ index 1a26fa9..e3b91b0 100644
return WINED3D_OK;
}
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index eda6563..9e8b8ad 100644
index 232f099..3688ef9 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1382,6 +1382,7 @@ enum wined3d_query_state
@ -580,10 +581,10 @@ index eda6563..9e8b8ad 100644
- LONG counter_main, counter_worker;
+ LONG counter_main, counter_retrieved;
+ struct list poll_list_entry;
void *extendedData;
};
@@ -1437,6 +1439,7 @@ struct wined3d_occlusion_query
union wined3d_gl_query_object
@@ -1435,6 +1437,7 @@ struct wined3d_occlusion_query
struct list entry;
GLuint id;
struct wined3d_context *context;

View File

@ -1,4 +1,4 @@
From 1f6b44c380c0157cc08d25af4798f365944a9b4b Mon Sep 17 00:00:00 2001
From 680600405dcf957ecaa1ff7915268afc112e33f7 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 8d4213e..2a9dc2f 100644
index 337ec9b..8682e22 100644
--- a/dlls/wined3d/query.c
+++ b/dlls/wined3d/query.c
@@ -494,7 +494,7 @@ enum wined3d_query_type CDECL wined3d_query_get_type(const struct wined3d_query
@@ -500,7 +500,7 @@ enum wined3d_query_type CDECL wined3d_query_get_type(const struct wined3d_query
return query->type;
}
@ -40,7 +40,7 @@ index 8d4213e..2a9dc2f 100644
{
TRACE("query %p, flags %#x.\n", query, flags);
@@ -503,20 +503,23 @@ static void wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD fla
@@ -509,20 +509,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);
@ -65,7 +65,7 @@ index 8d4213e..2a9dc2f 100644
TRACE("query %p, flags %#x.\n", query, flags);
@@ -578,9 +581,10 @@ static void wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD
@@ -584,9 +587,10 @@ static void wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD
}
}
oq->started = FALSE;
@ -77,16 +77,16 @@ index 8d4213e..2a9dc2f 100644
}
static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
@@ -664,7 +668,7 @@ static BOOL wined3d_timestamp_query_ops_poll(struct wined3d_query *query)
@@ -670,7 +674,7 @@ static BOOL wined3d_timestamp_query_ops_poll(struct wined3d_query *query)
return ret;
}
-static void wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD flags)
+static BOOL wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD flags)
{
struct wined3d_timestamp_query *tq = query->extendedData;
struct wined3d_timestamp_query *tq = wined3d_timestamp_query_from_query(query);
struct wined3d_device *device = query->device;
@@ -687,6 +691,10 @@ static void wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD
@@ -693,6 +697,10 @@ static void wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD
checkGLcall("glQueryCounter()");
context_release(context);
}
@ -97,7 +97,7 @@ index 8d4213e..2a9dc2f 100644
}
static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_query *query,
@@ -719,9 +727,10 @@ static BOOL wined3d_timestamp_disjoint_query_ops_poll(struct wined3d_query *quer
@@ -725,9 +733,10 @@ static BOOL wined3d_timestamp_disjoint_query_ops_poll(struct wined3d_query *quer
return TRUE;
}
@ -109,7 +109,7 @@ index 8d4213e..2a9dc2f 100644
}
static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query,
@@ -741,9 +750,10 @@ static BOOL wined3d_statistics_query_ops_poll(struct wined3d_query *query)
@@ -747,9 +756,10 @@ static BOOL wined3d_statistics_query_ops_poll(struct wined3d_query *query)
return TRUE;
}
@ -121,7 +121,7 @@ index 8d4213e..2a9dc2f 100644
}
static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query,
@@ -763,9 +773,10 @@ static BOOL wined3d_overflow_query_ops_poll(struct wined3d_query *query)
@@ -769,9 +779,10 @@ static BOOL wined3d_overflow_query_ops_poll(struct wined3d_query *query)
return TRUE;
}
@ -134,7 +134,7 @@ index 8d4213e..2a9dc2f 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 52038aa..13e72f8 100644
index b3374bf..d70804f 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1383,7 +1383,7 @@ struct wined3d_query_ops

View File

@ -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)
@@ -259,6 +262,11 @@ static void wined3d_query_destroy_object(void *object)
@@ -264,6 +267,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
@@ -321,7 +329,21 @@ HRESULT CDECL wined3d_query_issue(struct wined3d_query *query, DWORD flags)
@@ -327,7 +335,21 @@ HRESULT CDECL wined3d_query_issue(struct wined3d_query *query, DWORD flags)
{
TRACE("query %p, flags %#x.\n", query, flags);
@ -5084,7 +5084,7 @@ 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)
@@ -333,6 +355,7 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
@@ -339,6 +361,7 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
void *data, DWORD size, DWORD flags)
{
struct wined3d_occlusion_query *oq = wined3d_occlusion_query_from_query(query);
@ -5092,7 +5092,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
struct wined3d_device *device = query->device;
const struct wined3d_gl_info *gl_info = &device->adapter->gl_info;
struct wined3d_context *context;
@@ -344,6 +367,9 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
@@ -350,6 +373,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)
{
@@ -354,6 +380,10 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
@@ -360,6 +386,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 */
@@ -361,12 +391,45 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
@@ -367,12 +397,45 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
return S_FALSE;
}
@ -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));
@@ -377,6 +440,7 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
@@ -383,6 +446,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));
@@ -385,34 +449,55 @@ static HRESULT wined3d_occlusion_query_ops_get_data(struct wined3d_query *query,
@@ -391,34 +455,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;
@@ -421,17 +506,58 @@ static HRESULT wined3d_event_query_ops_get_data(struct wined3d_query *query,
@@ -427,17 +512,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;
}
@@ -450,7 +576,11 @@ enum wined3d_query_type CDECL wined3d_query_get_type(const struct wined3d_query
@@ -456,7 +582,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);
@@ -459,12 +589,16 @@ static HRESULT wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD
@@ -465,12 +595,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;
@@ -475,11 +609,20 @@ static HRESULT wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD
@@ -481,11 +615,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)
@ -5332,7 +5332,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
TRACE("query %p, flags %#x.\n", query, flags);
@@ -487,7 +630,11 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
@@ -493,7 +636,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())
{
@@ -517,13 +664,20 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
@@ -523,13 +670,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())
{
@@ -537,6 +691,7 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
@@ -543,6 +697,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
}
}
}
@@ -547,17 +702,61 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
@@ -553,17 +708,61 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
query->state = QUERY_SIGNALLED;
return WINED3D_OK; /* can be WINED3DERR_INVALIDCALL. */
@ -5391,7 +5391,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
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;
struct wined3d_timestamp_query *tq = wined3d_timestamp_query_from_query(query);
+#if defined(STAGING_CSMT)
+
+ TRACE("(%p) : type D3DQUERY_TIMESTAMP, data %p, size %#x, flags %#x.\n", query, data, size, flags);
@ -5424,7 +5424,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
+
+static BOOL wined3d_timestamp_query_ops_poll(struct wined3d_query *query)
+{
+ struct wined3d_timestamp_query *tq = query->extendedData;
+ struct wined3d_timestamp_query *tq = wined3d_timestamp_query_from_query(query);
+#endif /* STAGING_CSMT */
struct wined3d_device *device = query->device;
const struct wined3d_gl_info *gl_info = &device->adapter->gl_info;
@ -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);
@@ -572,14 +771,28 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
@@ -578,14 +777,28 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
timestamp = 0;
fill_query_data(data, size, &timestamp, 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));
@@ -590,6 +803,7 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
@@ -596,6 +809,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, &timestamp));
@@ -598,18 +812,36 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
@@ -604,18 +818,36 @@ static HRESULT wined3d_timestamp_query_ops_get_data(struct wined3d_query *query,
fill_query_data(data, size, &timestamp, sizeof(timestamp));
}
res = S_OK;
@ -5507,9 +5507,9 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
+static BOOL wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD flags)
+#endif /* STAGING_CSMT */
{
struct wined3d_timestamp_query *tq = query->extendedData;
struct wined3d_timestamp_query *tq = wined3d_timestamp_query_from_query(query);
struct wined3d_device *device = query->device;
@@ -631,18 +863,28 @@ static HRESULT wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DW
@@ -637,18 +869,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};
@@ -664,6 +906,7 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer
@@ -670,6 +912,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);
@@ -674,6 +917,17 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query *
@@ -680,6 +923,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,
@@ -688,10 +942,22 @@ static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query
@@ -694,10 +948,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,
@@ -706,15 +972,30 @@ static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query,
@@ -712,15 +978,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,
};
@@ -746,6 +1027,9 @@ static HRESULT wined3d_event_query_create(struct wined3d_device *device,
@@ -752,6 +1033,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,7 +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,
@@ -783,6 +1067,9 @@ 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,
@ -5638,6 +5638,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
wined3d_timestamp_query_ops_issue,
};
@@ -814,18 +1101,27 @@ static HRESULT wined3d_timestamp_query_create(struct wined3d_device *device,
static const struct wined3d_query_ops timestamp_disjoint_query_ops =
{
wined3d_timestamp_disjoint_query_ops_get_data,
@ -5665,7 +5666,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
wined3d_overflow_query_ops_issue
};
@@ -871,6 +1167,9 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de
@@ -881,6 +1177,9 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de
query->state = QUERY_CREATED;
query->device = device;
query->ref = 1;
@ -8706,10 +8707,10 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
+ LONG counter_main, counter_retrieved;
+ struct list poll_list_entry;
+#endif /* STAGING_CSMT */
void *extendedData;
};
@@ -1434,6 +1449,10 @@ struct wined3d_occlusion_query
union wined3d_gl_query_object
@@ -1432,6 +1447,10 @@ struct wined3d_occlusion_query
struct list entry;
GLuint id;
struct wined3d_context *context;

View File

@ -1,4 +1,4 @@
From 5c8a708a60962f1495e22d13240f62b5ff6a2eea Mon Sep 17 00:00:00 2001
From 1295d2929164a855aee33f52350cf457f8028ff9 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
@ -7,9 +7,9 @@ Subject: wined3d: Add stubs for QUERY_TYPE_SO_STATISTICS and
---
dlls/d3d10core/tests/device.c | 4 +--
dlls/d3d11/tests/d3d11.c | 4 +--
dlls/wined3d/query.c | 62 +++++++++++++++++++++++++++++++++++++++++++
dlls/wined3d/query.c | 60 +++++++++++++++++++++++++++++++++++++++++++
include/wine/wined3d.h | 6 +++++
4 files changed, 72 insertions(+), 4 deletions(-)
4 files changed, 70 insertions(+), 4 deletions(-)
diff --git a/dlls/d3d10core/tests/device.c b/dlls/d3d10core/tests/device.c
index 9b3a943..fb1ec06 100644
@ -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 3168c30..d692054 100644
index 976cdd9..ef93d3b 100644
--- a/dlls/wined3d/query.c
+++ b/dlls/wined3d/query.c
@@ -676,6 +676,42 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query *
@@ -682,6 +682,42 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query *
return WINED3D_OK;
}
@ -88,7 +88,7 @@ index 3168c30..d692054 100644
static const struct wined3d_query_ops event_query_ops =
{
wined3d_event_query_ops_get_data,
@@ -750,6 +786,18 @@ static const struct wined3d_query_ops timestamp_disjoint_query_ops =
@@ -781,6 +817,18 @@ static const struct wined3d_query_ops timestamp_disjoint_query_ops =
wined3d_timestamp_disjoint_query_ops_issue,
};
@ -107,7 +107,7 @@ index 3168c30..d692054 100644
static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *device,
enum wined3d_query_type type, void *parent)
{
@@ -759,6 +807,20 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de
@@ -790,6 +838,18 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de
switch (type)
{
@ -115,19 +115,17 @@ index 3168c30..d692054 100644
+ FIXME("Statistics query.\n");
+ query->query_ops = &statistics_query_ops;
+ query->data_size = sizeof(struct wined3d_query_data_so_statistics);
+ query->extendedData = NULL;
+ break;
+
+ case WINED3D_QUERY_TYPE_SO_OVERFLOW:
+ FIXME("Overflow query.\n");
+ query->query_ops = &overflow_query_ops;
+ query->data_size = sizeof(BOOL);
+ query->extendedData = NULL;
+ break;
+
case WINED3D_QUERY_TYPE_TIMESTAMP:
TRACE("Timestamp query.\n");
if (!gl_info->supported[ARB_TIMER_QUERY])
case WINED3D_QUERY_TYPE_TIMESTAMP_DISJOINT:
case WINED3D_QUERY_TYPE_TIMESTAMP_FREQ:
TRACE("TIMESTAMP_DISJOINT query.\n");
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 36de1de..468ce98 100644
--- a/include/wine/wined3d.h