Stefan Dösinger
5d1d07abcf
wined3d: Call glFlush after updating a buffer.
2011-08-24 11:52:06 +02:00
Henri Verbeet
b06e32184b
wined3d: Only invalidate state for the current context in wined3d_buffer_unmap().
2011-07-29 12:09:17 +02:00
Henri Verbeet
487cc9729b
wined3d: Only invalidate state for the current context in wined3d_buffer_map().
2011-07-28 11:29:27 +02:00
Henri Verbeet
7ee4bda63e
wined3d: Add stream offsets in device_stream_info_from_declaration().
...
They're not going to change until the next time the stream info is updated.
This would of course mainly be useful if we managed to do more than one or two
draws with the same stream info.
2011-07-15 10:08:02 +02:00
Henri Verbeet
cf421e1b3f
wined3d: Don't set GL_MAP_UNSYNCHRONIZED_BIT for WINED3D_BUFFER_DISCARD maps.
...
WINED3D_BUFFER_DISCARD means the (current) buffer contents are undefined for
subsequent operations. I.e., the map doesn't have to wait for any pending
operations to finish, and can just return a new buffer with undefined
contents. GL_MAP_UNSYNCHRONIZED_BIT means the driver doesn't wait for previous
operations to finish, and just maps a buffer that's potentially in use. Proper
synchronization is left to the application. Note that we set both
GL_MAP_INVALIDATE_BUFFER_BIT and GL_MAP_UNSYNCHRONIZED_BIT.
GL_MAP_INVALIDATE_BUFFER_BIT corresponds to WINED3D_BUFFER_DISCARD, and might
cause the driver to return a new buffer, but it's not required to make that
optimization.
2011-07-15 10:07:41 +02:00
Henri Verbeet
c5d457c8b4
wined3d: Store a struct wined3d_bo_address in struct wined3d_stream_info_element.
...
Instead of using separate fields for the buffer object and offset.
2011-07-11 11:53:42 +02:00
Henri Verbeet
89bf30a25e
wined3d: Return data as struct wined3d_bo_address in buffer_get_memory().
2011-07-11 11:53:39 +02:00
Henri Verbeet
b1664a2c85
wined3d: Get rid of some IWineD3D* references.
2011-07-04 13:44:41 +02:00
Henri Verbeet
c3c131ab34
wined3d: Only invalidate STATE_STREAMSRC for bound buffers.
2011-06-23 09:47:35 +02:00
Henri Verbeet
14bc0e9ef2
wined3d: Invalidate STATE_STREAMSRC when dropping VBOs.
2011-06-22 11:25:34 +02:00
Stefan Dösinger
68b15bc5ff
wined3d: Give GL_ARB_map_buffer_range another try.
...
Nvidia's 270.xx.yy driver series fix the glMapBuffer alignment issues that caused major
performance problems. If the user is using an older driver we now drop the VBO instead of using
doublebuffered loading, which means that we fall back to the current behavior(no dynamic VBO) as
needed. Dynamic VBOs are needed on Nvidia drivers for GL_ARB_instanced_arrays.
2011-06-17 15:37:45 +02:00
Stefan Dösinger
12140b5158
wined3d: Drop the VBO when the GL alignment doesn't fit on dynamic buffers.
2011-06-17 15:37:41 +02:00
Henri Verbeet
37d70103a1
d3d8: Implement IDirect3DIndexBuffer8 private data handling on top of wined3d_resource.
2011-06-17 11:02:43 +02:00
Henri Verbeet
469eba24c0
d3d9: Implement IDirect3DVertexBuffer9 private data handling on top of wined3d_resource.
2011-06-17 11:02:28 +02:00
Henri Verbeet
c8f26a1345
wined3d: Rename IWineD3DDeviceImpl_MarkStateDirty() to device_invalidate_state().
2011-06-06 16:18:41 +02:00
Henri Verbeet
0e0e5c3e38
wined3d: Get rid of the IWineD3DDevice typedefs.
2011-05-17 10:06:23 +02:00
Henri Verbeet
00a5f38595
wined3d: Remove object creation methods from the IWineD3DDevice interface.
2011-05-11 14:56:48 +02:00
Henri Verbeet
efc080e3a3
wined3d: Get rid of wined3d_buffer_get_type().
2011-04-22 10:44:20 +02:00
Stefan Dösinger
c79864f871
wined3d: Only acquire a context in buffer::PreLoad if we have to.
2011-04-13 16:03:27 +02:00
Stefan Dösinger
5627ee49ea
wined3d: Remove FLOAT16 vertex attribute conversion support.
...
All mayor drivers support GL_ARB_half_float_vertex now and the half
float conversion doesn't work well in practise. The only game that was
ever playable with it was Eve online.
2011-04-12 17:42:12 +02:00
Stefan Dösinger
46d879eef6
wined3d: Don't drop VBOs for full buffer reloading without conversion.
2011-04-12 17:42:12 +02:00
Henri Verbeet
adb1e10979
wined3d: Get rid of wined3d_buffer_get_desc().
2011-03-11 11:40:47 +01:00
Henri Verbeet
4be256a47c
wined3d: Introduce wined3d_resource_get_desc() to retrieve the resource desc.
2011-03-10 12:52:58 +01:00
Henri Verbeet
ac9c592ca9
wined3d: Store all the resource desc information in struct wined3d_resource.
2011-03-09 12:29:17 +01:00
Henri Verbeet
756fdb7c5a
wined3d: Merge the various resource desc structures.
2011-03-09 12:28:58 +01:00
Henri Verbeet
bea8d0a713
wined3d: Get rid of the IWineD3DBuffer typedef.
2011-03-04 16:25:58 +01:00
Henri Verbeet
a27ee75ed2
wined3d: Remove COM from the buffer implementation.
2011-03-04 16:25:58 +01:00
Henri Verbeet
1de6adfbae
wined3d: Make IWineD3DResourceImpl an independent structure.
2011-03-01 13:21:59 +01:00
Henri Verbeet
39497ff4d1
wined3d: Remove IWineD3DResource::UnLoad() from the public interface.
2011-02-28 11:09:48 +01:00
Henri Verbeet
c117248bd1
wined3d: Pass an IWineD3DResourceImpl pointer to resource_get_type().
2011-01-07 10:23:37 +01:00
Henri Verbeet
7e67bcedfd
wined3d: Pass an IWineD3DResourceImpl pointer to resource_set_priority().
2011-01-07 10:23:25 +01:00
Henri Verbeet
2d9748b1e3
wined3d: Pass an IWineD3DResourceImpl pointer to resource_get_priority().
2011-01-07 10:23:21 +01:00
Henri Verbeet
a80749fd57
wined3d: Pass an IWineD3DResourceImpl pointer to resource_set_private_data().
2011-01-07 10:23:17 +01:00
Henri Verbeet
92e439b0f0
wined3d: Pass an IWineD3DResourceImpl pointer to resource_get_private_data().
2011-01-06 11:33:33 +01:00
Henri Verbeet
a97ae0db6a
wined3d: Pass an IWineD3DResourceImpl pointer to resource_free_private_data().
2011-01-06 11:33:29 +01:00
Henri Verbeet
134137cdb4
wined3d: Pass an IWineD3DResourceImpl pointer to resource_cleanup().
2011-01-06 11:33:24 +01:00
Henri Verbeet
7080922e0e
wined3d: Pass an IWineD3DResourceImpl pointer to resource_init().
2011-01-06 11:33:19 +01:00
Henri Verbeet
5fc53941ef
wined3d: Pass a wined3d_buffer structure to buffer_get_memory().
2010-12-08 11:27:40 +01:00
Henri Verbeet
a147fd9c36
wined3d: Fix the indentation in buffer_direct_upload().
2010-11-23 13:15:39 +01:00
Henri Verbeet
fadd192cba
wined3d: buffer_get_sysmem() potentially invalidates the current element array buffer binding.
...
This fixes a regression introduced by commit
2a7a237170
.
2010-11-16 13:48:46 +01:00
Henri Verbeet
70f4e66f84
wined3d: IWineD3DBuffer_Unmap() can't fail.
2010-10-15 16:19:54 +02:00
Henri Verbeet
9224751a13
wined3d: Pass a wined3d_state structure to use_vs().
2010-09-28 17:33:17 +02:00
Henri Verbeet
153d8d43aa
wined3d: Move stream state to wined3d_state.
2010-09-21 14:16:58 +02:00
Henri Verbeet
e31ea51bab
wined3d: Move the vertex declaration to wined3d_state.
2010-09-18 13:05:54 +02:00
Henri Verbeet
6ce848bee4
wined3d: Introduce a structure for stream state.
2010-09-14 11:43:54 -05:00
Henri Verbeet
b68d257710
wined3d: Get rid of redundant comparisons against NULL / 0.
2010-09-14 09:43:33 -05:00
Henri Verbeet
fd7c1cbf05
wined3d: IWineD3DBuffer_GetDesc() should never fail.
2010-09-14 09:43:22 -05:00
Henri Verbeet
bc2db78c3a
wined3d: Explicitly document some more consequences of GL locking policy.
...
The basic rule is that you can't call anything that takes the user32 / gdi32
lock while under the GL (winex11) lock. As a consequence, you can't call
anything like context_acquire() or context_destroy() either.
2010-09-03 11:05:10 +02:00
Henri Verbeet
6c4c351791
wined3d: Don't require wined3d object parents to be COM objects.
2010-09-01 14:01:02 +02:00
Henri Verbeet
3a7f08a56f
wined3d: Rename wined3d_format_desc to wined3d_format.
2010-08-31 14:23:47 +02:00