diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 4c796562..95807f8b 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "a02c7ce7518b19d401ae854f18d2401a489f60db" + echo "be2908ed071dd11de5dc2fae270aad15e5df7d17" } # Show version information diff --git a/patches/wined3d-CSMT_Main/0040-wined3d-wined3d_-_query_issue-never-fails.patch b/patches/wined3d-CSMT_Main/0040-wined3d-wined3d_-_query_issue-never-fails.patch index 18ade3cb..f4a08c03 100644 --- a/patches/wined3d-CSMT_Main/0040-wined3d-wined3d_-_query_issue-never-fails.patch +++ b/patches/wined3d-CSMT_Main/0040-wined3d-wined3d_-_query_issue-never-fails.patch @@ -1,4 +1,4 @@ -From d8d88af87fdff19251a7a489619ee76ebe06f3af Mon Sep 17 00:00:00 2001 +From 685b6529a527c91b4f66a82080d68cc46189dc6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Sat, 6 Jul 2013 18:15:00 +0200 Subject: wined3d: wined3d_*_query_issue never fails @@ -9,7 +9,7 @@ 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 822c1e0..40f8649 100644 +index c8e693f..8281193 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) @@ -60,18 +60,18 @@ index 822c1e0..40f8649 100644 -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_device *device = query->device; - const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; -@@ -620,8 +619,6 @@ static HRESULT wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DW +@@ -611,8 +610,6 @@ static HRESULT wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DW - if (flags & WINED3DISSUE_END) query->state = QUERY_SIGNALLED; + } - - return WINED3D_OK; } static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_query *query, -@@ -650,7 +647,7 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer +@@ -641,7 +638,7 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer return S_OK; } @@ -80,7 +80,7 @@ index 822c1e0..40f8649 100644 { TRACE("query %p, flags %#x.\n", query, flags); -@@ -658,8 +655,6 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query * +@@ -649,8 +646,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 822c1e0..40f8649 100644 } static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query, -@@ -674,10 +669,9 @@ 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 return S_OK; } @@ -101,7 +101,7 @@ index 822c1e0..40f8649 100644 } static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query, -@@ -692,10 +686,9 @@ 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, return S_OK; } diff --git a/patches/wined3d-CSMT_Main/0046-wined3d-Separate-main-and-worker-thread-query-state.patch b/patches/wined3d-CSMT_Main/0046-wined3d-Separate-main-and-worker-thread-query-state.patch index 784a9787..a48827c3 100644 --- a/patches/wined3d-CSMT_Main/0046-wined3d-Separate-main-and-worker-thread-query-state.patch +++ b/patches/wined3d-CSMT_Main/0046-wined3d-Separate-main-and-worker-thread-query-state.patch @@ -1,15 +1,15 @@ -From 2926e747953bb84e36c626e9561cf4b9545efb45 Mon Sep 17 00:00:00 2001 +From fe785b9c3faa38f33c228d45582d799641848378 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Wed, 24 Jul 2013 16:34:17 +0200 Subject: wined3d: Separate main and worker thread query state --- - dlls/wined3d/query.c | 34 ++++++++++++---------------------- + dlls/wined3d/query.c | 33 ++++++++++++--------------------- dlls/wined3d/wined3d_private.h | 1 + - 2 files changed, 13 insertions(+), 22 deletions(-) + 2 files changed, 13 insertions(+), 21 deletions(-) diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c -index 43f7189..56d5a1b 100644 +index acdaa0d..d469857 100644 --- a/dlls/wined3d/query.c +++ b/dlls/wined3d/query.c @@ -304,6 +304,12 @@ HRESULT CDECL wined3d_query_issue(struct wined3d_query *query, DWORD flags) @@ -77,17 +77,16 @@ index 43f7189..56d5a1b 100644 return; } -@@ -673,9 +671,6 @@ static void wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD - { - ERR("Timestamp queries not supported.\n"); - } +@@ -664,8 +662,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); - -- if (flags & WINED3DISSUE_END) - query->state = QUERY_SIGNALLED; + } } - static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_query *query, -@@ -711,11 +706,6 @@ static BOOL wined3d_timestamp_disjoint_query_ops_poll(struct wined3d_query *quer +@@ -702,11 +698,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); @@ -99,7 +98,7 @@ index 43f7189..56d5a1b 100644 } static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query, -@@ -822,13 +812,13 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de +@@ -813,13 +804,13 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de } query->query_ops = &occlusion_query_ops; query->data_size = sizeof(DWORD); diff --git a/patches/wined3d-CSMT_Main/0047-wined3d-Don-t-poll-queries-that-failed-to-start.patch b/patches/wined3d-CSMT_Main/0047-wined3d-Don-t-poll-queries-that-failed-to-start.patch index de1b26c4..012d4a52 100644 --- a/patches/wined3d-CSMT_Main/0047-wined3d-Don-t-poll-queries-that-failed-to-start.patch +++ b/patches/wined3d-CSMT_Main/0047-wined3d-Don-t-poll-queries-that-failed-to-start.patch @@ -1,4 +1,4 @@ -From 43cf824eade39ee6dede48a85c41e6b6a844fceb Mon Sep 17 00:00:00 2001 +From e032a3b18797783a291ff0cc53900d2461612c5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Wed, 24 Jul 2013 17:27:35 +0200 Subject: wined3d: Don't poll queries that failed to start @@ -28,7 +28,7 @@ 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 56d5a1b..243928c 100644 +index d469857..b7d3da2 100644 --- a/dlls/wined3d/query.c +++ b/dlls/wined3d/query.c @@ -469,7 +469,7 @@ enum wined3d_query_type CDECL wined3d_query_get_type(const struct wined3d_query @@ -84,11 +84,11 @@ index 56d5a1b..243928c 100644 -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_device *device = query->device; - const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; -@@ -671,6 +675,10 @@ static void wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD - { - ERR("Timestamp queries not supported.\n"); +@@ -663,6 +667,10 @@ static void wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD + checkGLcall("glQueryCounter()"); + context_release(context); } + + if (flags & WINED3DISSUE_END) @@ -97,7 +97,7 @@ index 56d5a1b..243928c 100644 } static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_query *query, -@@ -703,9 +711,10 @@ static BOOL wined3d_timestamp_disjoint_query_ops_poll(struct wined3d_query *quer +@@ -695,9 +703,10 @@ static BOOL wined3d_timestamp_disjoint_query_ops_poll(struct wined3d_query *quer return TRUE; } @@ -109,7 +109,7 @@ index 56d5a1b..243928c 100644 } static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query, -@@ -725,9 +734,10 @@ static BOOL wined3d_statistics_query_ops_poll(struct wined3d_query *query) +@@ -717,9 +726,10 @@ static BOOL wined3d_statistics_query_ops_poll(struct wined3d_query *query) return TRUE; } @@ -121,7 +121,7 @@ index 56d5a1b..243928c 100644 } static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query, -@@ -747,9 +757,10 @@ static BOOL wined3d_overflow_query_ops_poll(struct wined3d_query *query) +@@ -739,9 +749,10 @@ static BOOL wined3d_overflow_query_ops_poll(struct wined3d_query *query) return TRUE; } diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index afd28fd9..898522a1 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -5491,17 +5491,22 @@ 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_device *device = query->device; - const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; -@@ -619,16 +849,23 @@ static HRESULT wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DW - } - - if (flags & WINED3DISSUE_END) +@@ -608,18 +838,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); +#if !defined(STAGING_CSMT) + query->state = QUERY_SIGNALLED; + } return WINED3D_OK; +#else /* STAGING_CSMT */ ++ } ++ ++ if (flags & WINED3DISSUE_END) + return TRUE; + return FALSE; +#endif /* STAGING_CSMT */ @@ -5517,7 +5522,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}; -@@ -650,6 +887,7 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer +@@ -641,6 +881,7 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer return S_OK; } @@ -5525,7 +5530,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); -@@ -660,6 +898,17 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query * +@@ -651,6 +892,17 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query * query->state = QUERY_SIGNALLED; return WINED3D_OK; @@ -5543,7 +5548,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, -@@ -674,10 +923,22 @@ static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query +@@ -665,10 +917,22 @@ static HRESULT wined3d_statistics_query_ops_get_data(struct wined3d_query *query return S_OK; } @@ -5566,7 +5571,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, -@@ -692,45 +953,75 @@ static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query, +@@ -683,45 +947,75 @@ static HRESULT wined3d_overflow_query_ops_get_data(struct wined3d_query *query, return S_OK; } @@ -5642,7 +5647,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c wined3d_overflow_query_ops_issue }; -@@ -752,13 +1043,20 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de +@@ -743,13 +1037,20 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de } query->query_ops = &occlusion_query_ops; query->data_size = sizeof(DWORD); @@ -5663,7 +5668,7 @@ diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c break; case WINED3D_QUERY_TYPE_EVENT: -@@ -842,6 +1140,9 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de +@@ -833,6 +1134,9 @@ static HRESULT query_init(struct wined3d_query *query, struct wined3d_device *de query->state = QUERY_CREATED; query->device = device; query->ref = 1;