Commit Graph

310 Commits

Author SHA1 Message Date
Zebediah Figura e4502cff81 wined3d: Check for failure from wined3d_device_context_require_space() in wined3d_device_context_emit_unmap().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51485
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-27 16:39:55 +02:00
Zebediah Figura 5ce7adaace d3d11: Implement constant buffer offsetting for OpenGL.
Based on a patch by Kimmo Myllyvirta.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45198
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-19 12:21:52 +02:00
Zebediah Figura befaf4d612 wined3d: Set an array of rendertarget views as a single CS operation.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-19 12:21:47 +02:00
Zebediah Figura 086212ba57 wined3d: Set an arary of stream sources as a single CS operation.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-19 12:21:39 +02:00
Zebediah Figura 5d588eaa4f wined3d: Set both the stream source and frequency for a given index as a single CS operation.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-19 12:21:27 +02:00
Zebediah Figura 96da563f0d wined3d: Set the entire stream output state as a single CS operation.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-19 12:21:13 +02:00
Zebediah Figura 84d6845412 wined3d: Recursively acquire queued command lists in wined3d_cs_acquire_command_list().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-19 12:19:05 +02:00
Zebediah Figura 82be8b676c wined3d: Fix some memory leaks when destroying deferred contexts.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-08 21:12:11 +02:00
Zebediah Figura bc8dcae118 wined3d: Fix some memory leaks when destroying command lists.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-08 21:12:09 +02:00
Zebediah Figura 3f60840cdc wined3d: Move the uploads array in wined3d_deferred_context_record_command_list().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51416
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-08 21:12:06 +02:00
Zebediah Figura 393ea20679 wined3d: Set an array of UAVs as a single CS operation.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-07 18:14:38 +02:00
Zebediah Figura 34a9d3e40f wined3d: Set an array of samplers as a single CS operation.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-06 16:06:14 +02:00
Zebediah Figura 7698b9e25a wined3d: Set an array of shader resource views as a single CS operation.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-06 16:06:11 +02:00
Zebediah Figura e6bbf6ee91 wined3d: Set an array of constant buffers as a single CS operation.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-06 16:06:07 +02:00
Zebediah Figura a68cdf4a41 wined3d: Pass a wined3d_cs pointer to wined3d_not_from_cs().
This partially reverts 6a9752bf5e.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-06 16:06:03 +02:00
Zebediah Figura f2fe987907 wined3d: Factor out most of the execute_command_list callback to a common function.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-06 16:06:01 +02:00
Zebediah Figura 0c36633a20 wined3d: Print a message when forcing CS serialization.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-02 16:49:09 +02:00
Zebediah Figura 6a9752bf5e wined3d: No longer queue WINED3D_CS_QUEUE_MAP operations through wined3d_device_context_ops.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-01 22:34:31 +02:00
Zebediah Figura 7186d8bef5 wined3d: Implement NOOVERWRITE maps in wined3d_deferred_context_prepare_upload_bo().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-01 22:34:31 +02:00
Zebediah Figura 65e31e4508 wined3d: Use context->ops->prepare_upload_bo() in wined3d_device_context_map() if possible.
This has the notable effect of implementing maps on deferred contexts.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-01 22:34:31 +02:00
Zebediah Figura 75928a6a88 wined3d: Implement wined3d_deferred_context_prepare_upload_bo().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-01 22:34:31 +02:00
Zebediah Figura cf55fc493c wined3d: Introduce a prepare_upload_bo device context operation and use it to upload sub-resource data.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-01 22:34:31 +02:00
Zebediah Figura f5a22e4310 wined3d: Pass a wined3d_const_bo_address to wined3d_cs_exec_update_sub_resource().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-29 15:31:28 +02:00
Zebediah Figura a260928b81 wined3d: Use wined3d_buffer_copy_bo_address() in wined3d_cs_exec_update_sub_resource().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-29 15:31:26 +02:00
Henri Verbeet 0170bb0e54 wined3d: Only invalidate valid state IDs in wined3d_cs_exec_reset_state().
Not every state ID between 0 and STATE_HIGHEST is valid; for example, there
are holes in the renderstate IDs. While invalidating these works fine,
attempting to subsequently apply them in e.g. context_apply_draw_state() ends
up calling state_undefined() and printing an ERR. This is especially visible
when running the d2d1 tests.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-25 22:48:48 +02:00
Zebediah Figura 61024aa12f wined3d: Return the map pitch in wined3d_device_context_map().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-25 22:48:47 +02:00
Henri Verbeet 81fc2e6ab6 d3d11: Implement d3d11_device_context_ClearUnorderedAccessViewFloat().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-07 21:24:29 +02:00
Zebediah Figura d0052d9127 d3d11: Implement ID3D11DeviceContext::ExecuteCommandList().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-27 21:25:29 +02:00
Zebediah Figura 5551171860 wined3d: Implement restoring context in wined3d_deferred_context_record_command_list().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-27 21:25:25 +02:00
Zebediah Figura 01658a4a8e d3d11: Implement ID3D11DeviceContext::FinishCommandList().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-27 21:25:22 +02:00
Zebediah Figura 97d3ea26b9 d3d11: Implement ID3D11DeviceContext::ClearState() using a single CS op.
Specifically, tweak and make use of the already existing
WINED3D_CS_OP_RESET_STATE.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-27 21:25:17 +02:00
Zebediah Figura eae83897f5 wined3d: Keep a list of acquired resources in struct wined3d_deferred_context.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-27 21:25:13 +02:00
Zebediah Figura 60027fcc23 d3d11: Implement ID3D11Device::CreateDeferredContext().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=42191
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-27 21:25:06 +02:00
Zebediah Figura a17c0a7213 wined3d: Store the framebuffer state inline in struct wined3d_cs_clear.
Avoid storing pointers to the CS data inside individual ops, so that we can
reallocate the queue when appending data to a deferred context, or copy the
queue contents to a command list.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-27 21:25:02 +02:00
Zebediah Figura 308dd8bd32 wined3d: Pass a wined3d_device_context to wined3d_device_set_render_state().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 18:49:10 +02:00
Zebediah Figura adb45b0ad8 wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_light().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-14 20:56:02 +02:00
Zebediah Figura 692a3128b4 wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_light_enable().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-14 20:56:02 +02:00
Zebediah Figura 7da27fc327 wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_material().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-14 20:56:02 +02:00
Zebediah Figura 30501be16d wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_clip_plane().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-14 20:56:02 +02:00
Zebediah Figura 6f9e338599 wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_transform().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-14 20:56:02 +02:00
Zebediah Figura 29e1fcdac7 wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_sampler_state().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-12 20:33:26 +02:00
Zebediah Figura 026a082daf wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_texture_state().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-12 20:33:23 +02:00
Zebediah Figura 8853b1007e wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_texture().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-12 20:33:21 +02:00
Zebediah Figura 51dc6dc614 wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_feature_level().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-12 20:33:16 +02:00
Zebediah Figura d5b42009cd wined3d: Update resources through wined3d_device_context_ops.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-06 18:53:48 +02:00
Zebediah Figura 574b715255 wined3d: Modify the query state in wined3d_cs_issue_query().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-06 18:53:48 +02:00
Zebediah Figura 3f3caa3380 wined3d: Wait for the resource to become idle in wined3d_cs_map().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-06 18:53:48 +02:00
Zebediah Figura 1ecc334df8 wined3d: Acquire resources through wined3d_device_context_ops.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-06 18:53:48 +02:00
Zebediah Figura cd704aeee4 wined3d: Flush through wined3d_device_context_ops.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-14 20:49:54 +02:00
Zebediah Figura 0bf689352b wined3d: Issue queries through wined3d_device_context_ops.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-14 20:49:46 +02:00