Commit Graph

240 Commits

Author SHA1 Message Date
Józef Kucia 8187817830 wined3d: Add initial support for shader buffer views.
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-01-26 16:57:48 +01:00
Francois Gouget 551705d65f wined3d: Make some functions static.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-09 20:49:10 +01:00
Józef Kucia a02fd72965 wined3d: Use depth/stencil formats for typeless resources only when WINED3DUSAGE_DEPTHSTENCIL is set.
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-12-12 19:40:33 +01:00
Józef Kucia e2733ed7fb wined3d: Return location from wined3d_buffer_get_memory().
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-07 16:59:46 +01:00
Józef Kucia 085ae6ed08 wined3d: Use unsynchronized buffer updates only if there has been at least one buffer map.
Fixes bc019fcbbd. We cannot use
unsynchronized updates when the application haven't called map at all.

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-07 16:59:46 +01:00
Józef Kucia c259854a0a wined3d: Avoid unsynchronized buffer update when reloading whole buffer.
Fixes bc019fcbbd. Previously, we had the
NOSYNC flag instead of the SYNC flag. When the NOSYNC flag was set the
buffer was mapped with GL_MAP_UNSYNCHRONIZED_BIT. Now, when the SYNC
flag is not set the buffer is mapped with GL_MAP_UNSYNCHRONIZED_BIT.

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-07 16:59:46 +01:00
Józef Kucia 20b989ef86 wined3d: Mark buffers as used in wined3d_buffer_copy().
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-03 17:14:05 +01:00
Józef Kucia aa11efc4af wined3d: Get rid of WINED3DFMT_VERTEXDATA.
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-03 17:14:01 +01:00
Józef Kucia 07cfeac3dd wined3d: Use wined3d_vec4 in fixup_transformed_pos().
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-02 15:23:05 +01:00
Józef Kucia de19ba7c23 wined3d: Invalidate STATE_CONSTANT_BUFFER(*) device state in buffer_destroy_buffer_object() when needed.
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-02 15:23:03 +01:00
Józef Kucia 01b8bea329 wined3d: Fix style issues in delete_gl_buffer().
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-02 15:23:01 +01:00
Józef Kucia 20eb55fdef wined3d: Pass context to delete_gl_buffer().
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-02 15:22:59 +01:00
Józef Kucia cc35b6c8b3 wined3d: Invalidate device state based on buffer bind flags when buffer is deleted.
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-02 15:22:57 +01:00
Józef Kucia e3c692151f wined3d: Compute "buffer_type_hint" from buffer bind flags.
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-02 15:22:55 +01:00
Józef Kucia 9fef0c4910 wined3d: Invalidate INDEXBUFFER device state when bound index buffer is unloaded.
Fixes a regression introduced by commit
e3a8cd20ce.

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-10-31 15:40:54 +01:00
Józef Kucia 61fef3bd1e wined3d: Use buffer_bind() in buffer_conversion_upload().
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-10-24 14:02:15 +02:00
Józef Kucia 6454242009 wined3d: Introduce buffer_conversion_upload() 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>
2016-10-24 14:02:07 +02:00
Józef Kucia 4a23e91462 wined3d: Replace wined3d_buffer_load_sysmem() calls with wined3d_buffer_load_location().
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-10-24 14:02:05 +02:00
Józef Kucia 6ced2a8293 wined3d: Prefer current locations to WINED3D_LOCATION_SYSMEM in wined3d_buffer_copy().
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-10-21 13:37:59 +02:00
Józef Kucia 2e15ae85a1 wined3d: Introduce wined3d_buffer_get_memory().
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-10-21 13:37:58 +02:00
Józef Kucia 4e7ef680e3 wined3d: Implement wined3d_buffer_prepare_location() for WINED3D_LOCATION_BUFFER.
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-10-21 13:37:58 +02:00
Józef Kucia 8db3b5512e wined3d: Move buffer_get_memory() under wined3d_buffer_load_sysmem().
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-10-21 13:37:58 +02:00
Józef Kucia 3c847a20c1 wined3d: Do not assume that WINED3D_LOCATION_SYSMEM is always valid for double buffered buffers.
We now have API that allows invalidating locations for buffers.

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-10-21 13:37:58 +02:00
Józef Kucia 645d3cac14 wined3d: Introduce wined3d_buffer_load_location().
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-10-21 13:37:58 +02:00
Józef Kucia 171e272f85 wined3d: Introduce wined3d_buffer_prepapre_location().
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-10-21 13:37:55 +02:00
Józef Kucia 2a385e420a wined3d: Explicitly track locations for buffers.
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-10-19 08:09:50 -07:00
Józef Kucia fc866d88f3 wined3d: Rename buffer_get_sysmem() to wined3d_buffer_load_sysmem().
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-10-19 08:09:48 -07:00
Józef Kucia 5f86ef7b1e wined3d: Rename buffer_internal_preload() to wined3d_buffer_load().
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-10-19 08:09:46 -07:00
Józef Kucia e3a8cd20ce wined3d: Clean up buffer_internal_preload().
The conversion should never be performed for buffers with
buffer_type_hint other than GL_ARRAY_BUFFER.

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-10-19 08:09:43 -07:00
Józef Kucia b1cc82a29f wined3d: Let buffer_direct_upload() invalidate STATE_INDEXBUFFER if needed.
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-10-19 08:09:38 -07:00
Matteo Bruni b877d4177f wined3d: Fix doublebuffer mode trace.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-27 21:43:23 +09:00
Henri Verbeet 84db05620f wined3d: Implement the initial buffer data upload on top of wined3d_device_update_sub_resource().
Mostly for consistency with the initial texture data upload.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-20 22:53:40 +09:00
Henri Verbeet 8232f371d8 wined3d: Sanitise resource map flags in wined3d_resource_map().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-02 11:27:28 +09:00
Henri Verbeet 4987ef49bd d3d9: Use resource mapping functions in d3d9_device_DrawIndexedPrimitiveUP().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-02 11:27:22 +09:00
Henri Verbeet 53165034ba wined3d: Unify resource preloads.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-11 12:08:58 +09:00
Henri Verbeet 0072830804 wined3d: Invalidate STATE_STREAMSRC in buffer_unload() if needed.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-05 09:08:50 -05:00
Matteo Bruni b62f4139ed wined3d: Swizzle D3DCOLOR attributes in the GLSL FFP replacement when necessary.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-01 09:57:38 -05:00
Matteo Bruni dcaf944e35 wined3d: Check BLENDWEIGHT and BLENDINDICES FFP attributes for fixups.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-20 22:49:57 +09:00
Józef Kucia 8c0ddf9827 wined3d: Store vertex attribute size instead of component size in wined3d_format.
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-07-19 19:59:31 +09:00
Henri Verbeet cc9c18a46d wined3d: Synchronise resource destruction with the command stream.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-08 22:35:02 +09:00
Henri Verbeet b21f3c930e wined3d: Send buffer destruction through the command stream.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-08 22:35:02 +09:00
Józef Kucia 0572f8ad9e wined3d: Introduce wined3d_buffer_drop_bo() 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>
2016-06-23 22:04:18 +09:00
Józef Kucia aa0cdc5146 wined3d: Replace WINED3D_BUFFER_CREATEBO with WINED3D_BUFFER_USE_BO.
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-05-27 20:10:05 +09:00
Józef Kucia 0dcf255b51 wined3d: Do not call wined3d_buffer_map() before "buffer->maps" is initialized.
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-05-27 20:10:01 +09:00
Józef Kucia d39560f33f wined3d: Simplify buffer_is_fully_dirty().
The buffer_invalidate_bo_range() ensures that if the whole buffer was
invalidated the dirty areas array contains exactly one element.

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-05-27 20:09:58 +09:00
Henri Verbeet 8ae3a9b624 wined3d: Introduce a helper function to allocate arrays.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-24 16:19:01 +09:00
Stefan Dösinger d3f8efe546 wined3d: Get rid of WINED3D_BUFFER_FLUSH.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-18 15:07:27 +09:00
Henri Verbeet d85706381c wined3d: Merge drawStridedFast() and drawStridedInstanced().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-07 12:57:36 +09:00
Henri Verbeet f3c155cc56 wined3d: Merge drawStridedSlow() and drawStridedSlowVs().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-07 12:57:34 +09:00
Józef Kucia 4affb95ebb wined3d: Introduce helper function for binding buffers.
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-03-22 23:51:32 +09:00