Commit Graph

130 Commits

Author SHA1 Message Date
Henri Verbeet f08342f573 wined3d: Use the global memory allocation helpers.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-14 09:06:58 +01:00
Matteo Bruni cc8e873720 wined3d: Get rid of most of the redundant query flushes.
This way we avoid queueing up CS packets on each
wined3d_query_get_data() call, which has been seen in some degenerate
cases to starve other client threads that are trying to submit actual
work into the CS (sort-of a livelock).

Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-11 18:42:35 +02:00
Robert Xiao b2303d90af wined3d: Reduce timeout to avoid GL_TIMEOUT_EXPIRED on macOS.
Signed-off-by: Robert Xiao <brx@cs.cmu.edu>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-16 11:04:12 +09:00
Sebastian Lackner c683372bca wined3d: Return hr result in wined3d_event_query_create.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-13 11:42:01 +02:00
Józef Kucia c45b908abc wined3d: Introduce wined3d fence objects.
Use fences for the APPLESYNC codepath, and implement event queries
on top of fences.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-10 20:51:10 +02:00
Józef Kucia 0edb71a35f wined3d: Avoid creating event queries manually.
Fixes a regression introduced by commit
be20ddc38b.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-10 20:51:10 +02:00
Józef Kucia 10748ab9d8 wined3d: Rearrange wined3d_query_type enum values.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-05 19:47:40 +02:00
Józef Kucia 54a0ce3685 wined3d: Introduce get_query_result64() helper function.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-05 19:47:38 +02:00
Michael Müller f52ead4b4d wined3d: Implement WINED3D_QUERY_TYPE_PIPELINE_STATISTICS.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-05 19:47:31 +02:00
Józef Kucia be20ddc38b wined3d: Introduce query operation to destroy queries.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-30 11:03:55 +02:00
Józef Kucia dfa3be5c9d wined3d: Implement SO statistics queries.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-25 20:47:47 +02:00
Józef Kucia 6c5a90e193 wined3d: Add "parent_ops" for query objects.
In order to implement proper refcounting for
d3d11_immediate_context_SetPredication().

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-11 10:17:48 -05:00
Henri Verbeet e97ed10d09 wined3d: Introduce a multi-threaded command stream implementation.
The primary purpose of this patch is to serialise draws from multiple threads,
without the overhead of extra flushes that "StrictDrawOrdering" imposes.
With additional work, offloading state processing and driver overhead to a
separate thread may also allow for improved performance in some applications,
but that's not a goal of this patch.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-13 09:09:05 +02:00
Józef Kucia 1d27b69f32 wined3d: Simplify logic in wined3d_event_query_issue().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-05 19:10:48 +02:00
Józef Kucia 8b9ece6797 wined3d: Introduce context_reacquire() helper function.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-05 19:10:46 +02:00
Henri Verbeet 9e2498f25e wined3d: Send sampler GL initialisation through the command stream.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-16 08:30:56 +01:00
Henri Verbeet 2641c5c28f wined3d: Pass a texture and sub-resource index to context_acquire().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-15 16:16:20 +01:00
Józef Kucia 8d6af6d932 wined3d: Return WINED3DERR_INVALIDCALL for not started queries.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-03 19:05:12 +01:00
Henri Verbeet 5d470a6e7f wined3d: Pass GL_SYNC_FLUSH_COMMANDS_BIT to glClientWaitSync() if WINED3DGETDATA_FLUSH was specified.
Otherwise the application may keep spinning on wined3d_query_get_data() in
case the query wasn't submitted to the GPU yet when wined3d_query_get_data()
was called. This issue was exposed by commit
70889d6866. Note that this won't fix the issue
if the query was created in a different GL context.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-04 11:11:21 +01:00
Józef Kucia 6fbb93a3a1 wined3d: Use glGetQueryObjectui64v() for occlusion queries when available.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-22 16:34:44 +01:00
Józef Kucia c0fb3fb9e1 wined3d: Increase data size for occlusion queries to 8 bytes.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-22 16:34:36 +01:00
Henri Verbeet 7cda73e818 wined3d: Issue queries through the command stream.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 20:17:52 +09:00
Henri Verbeet 18d60012e8 wined3d: Use the context's gl_info in wined3d_timestamp_query_ops_issue().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 20:17:50 +09:00
Henri Verbeet 92e9f4401d wined3d: Unify the query issue() implementations.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-28 21:38:13 +09:00
Henri Verbeet 70889d6866 wined3d: Unify the query get_data() implementations.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-28 21:38:12 +09:00
Henri Verbeet b1861cb86c wined3d: Introduce a separate function for creating timestamp disjoint queries.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-22 11:51:30 +09:00
Henri Verbeet 654e960e34 wined3d: Use a single allocation for timestamp queries.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-22 11:51:28 +09:00
Henri Verbeet 51c7df4f37 wined3d: Use a single allocation for occlusion queries.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-22 11:51:27 +09:00
Henri Verbeet fac012f2e1 wined3d: Use a single allocation for event queries.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-22 11:51:25 +09:00
Henri Verbeet be2908ed07 wined3d: Get rid of redundant ARB_timer_query checks.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-22 11:51:23 +09:00
Henri Verbeet a02c7ce751 wined3d: Get rid of redundant ARB_occlusion_query checks.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-21 23:36:07 +09:00
Henri Verbeet d18ff87af9 wined3d: Fail event query creation when event queries are not supported.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-21 23:36:07 +09:00
Henri Verbeet 0a5e205c06 wined3d: Get rid of redundant NULL checks for event query "extendedData".
If creation succeeded this is non-NULL.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-21 23:36:07 +09:00
Henri Verbeet 97eb359588 wined3d: Send query destruction through the command stream.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-22 22:10:05 +09:00
Henri Verbeet d6e2f650d5 wined3d: Store the context's current rendertarget as a texture and sub-resource index.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-30 11:54:13 +09:00
Andrey Gusev 3c8635c8d7 wined3d: TRACE fixes. 2015-10-01 00:00:46 +09:00
Matteo Bruni 4b35cf730f wined3d: Fix the TIMESTAMP_DISJOINT query.
Spotted by Patrick Rudolph.
2015-05-05 18:51:10 +09:00
Matteo Bruni 9defaa53a1 wined3d: Use the core version of the asynchronous queries functions. 2015-02-02 22:39:05 +09:00
Henri Verbeet a3daed9604 d3d10core: Implement d3d10_device_GetPredication(). 2014-09-19 10:49:24 +02:00
Matteo Bruni b42fe709d6 wined3d: Validate and handle query size parameter. 2014-06-16 13:56:35 +02:00
Matteo Bruni a1784d9ed9 wined3d: Add support for timestamp queries. 2014-04-17 13:53:00 +02:00
Michael Stefaniuc 50a9fb579c wined3d: Remove ERR() on HeapAlloc failure for small sizes known at compile time. 2013-02-06 09:04:41 +01:00
Henri Verbeet 78984cf46c wined3d: Get rid of ENTER_GL / LEAVE_GL. 2012-12-11 12:03:39 +01:00
Henri Verbeet 54976a033b wined3d: Use a slightly shorter timeout in wined3d_event_query_finish(). 2012-08-20 11:01:15 +02:00
Francois Gouget 19ba80e7c2 wined3d: We must include Wine's port.h before using NAN. 2012-06-01 17:41:52 +02:00
Henri Verbeet ae2e5d65ff wined3d: Get rid of the WINED3DQUERYTYPE typedef. 2012-01-18 12:37:38 +01:00
Henri Verbeet f8e7b1e80c wined3d: Make the device parameter to wined3d_event_query_issue() const. 2011-10-31 16:46:20 +01:00
Henri Verbeet 76b5b8a67b wined3d: Make the device parameter to wined3d_event_query_finish() const. 2011-10-31 16:46:20 +01:00
Henri Verbeet eebad6a17a wined3d: Make the device parameter to wined3d_event_query_test() const. 2011-10-27 19:34:23 +02:00
Henri Verbeet 6ffd066834 wined3d: Make the query parameter to wined3d_event_query_finish() const. 2011-07-19 14:06:05 +02:00