Commit Graph

1908 Commits

Author SHA1 Message Date
Henri Verbeet 052a863010 wined3d: Send texture binding updates through the command stream. 2013-10-03 12:55:09 +02:00
Henri Verbeet d61b14371a wined3d: Send index buffer binding updates through the command stream. 2013-10-03 12:55:04 +02:00
Henri Verbeet 264256970b wined3d: Send stream frequency updates through the command stream. 2013-10-03 12:54:59 +02:00
Henri Verbeet 57ec706dde wined3d: Send vertex buffer binding updates through the command stream. 2013-10-02 11:05:41 +02:00
Henri Verbeet 1f864bc9c3 wined3d: Send vertex declaration binding updates through the command stream. 2013-10-01 10:57:32 +02:00
Henri Verbeet fd5fc51bc5 wined3d: Send depth stencil binding updates through the command stream. 2013-10-01 10:57:29 +02:00
Henri Verbeet 438b672660 wined3d: Send render target binding updates through the command stream. 2013-10-01 10:57:27 +02:00
Henri Verbeet 0776060439 wined3d: Send scissor rect updates through the command stream. 2013-09-30 20:34:52 +02:00
Henri Verbeet 8a7744b06e wined3d: Call state_init_default() from state_init() when the appropriate flag is set. 2013-09-30 20:34:52 +02:00
Henri Verbeet bc0f990b44 wined3d: Send viewport updates through the command stream. 2013-09-30 20:34:52 +02:00
Henri Verbeet baf285d46a wined3d: Send draw operation through the command stream. 2013-09-27 10:33:36 +02:00
Henri Verbeet 708b938f64 wined3d: Send clear operations through the command stream. 2013-09-27 10:33:34 +02:00
Henri Verbeet 602c82bce8 wined3d: Send present operations through a command stream.
The eventual goal is to have a multithreaded implementation of wined3d_cs_ops
and offload some processing to a different thread.
2013-09-27 10:33:15 +02:00
Henri Verbeet 4a9da034ab wined3d: Explicitly pass gl_info to state_init_default(). 2013-09-26 10:45:52 +02:00
Henri Verbeet abbc595fc1 wined3d: Initialize the fb state pointer in state_init(). 2013-09-26 10:45:50 +02:00
Henri Verbeet 6793fa7157 wined3d: Initialize the default state in device_init(). 2013-09-26 10:45:47 +02:00
Henri Verbeet 8866d733e4 wined3d: Introduce a function to initialize swapchain specific device state. 2013-09-25 11:49:08 +02:00
Francois Gouget cccba76091 wined3d: Make device_invalidate_shader_constants() static. 2013-09-24 19:08:35 +02:00
Henri Verbeet bff80b8bab wined3d: Copy some missing fields to the new swapchain desc in wined3d_device_reset().
The ones that matter are enable_auto_depth_stencil and
auto_depth_stencil_format. auto_restore_display_mode should never change in
practice.
2013-09-23 20:37:29 +02:00
Henri Verbeet 864b25e582 wined3d: Introduce a separate function for updating the viewport and scissor rects. 2013-09-23 20:37:05 +02:00
Henri Verbeet 49c6b87a32 wined3d: Only print a warning about render target usage in wined3d_device_set_render_target(). 2013-09-20 11:27:40 +02:00
Stefan Dösinger 59e0b841c7 wined3d: Move device_preload_textures into context.c. 2013-09-16 13:06:01 +02:00
Stefan Dösinger 112617f00b wined3d: Move tex_unit_map and friends into the context. 2013-09-16 13:05:58 +02:00
Stefan Dösinger fe44be5fde wined3d: Pass the context to the internal texture_preload function. 2013-09-16 13:05:52 +02:00
Henri Verbeet fc85f4f7d6 wined3d: Never set the first render target to the front buffer in wined3d_device_init_3d(). 2013-09-13 10:57:00 +02:00
Henri Verbeet 3c023a5db5 wined3d: Just set the first render target to NULL in wined3d_device_reset(). 2013-09-13 10:56:52 +02:00
Henri Verbeet def0558b45 wined3d: Just set the first render target to NULL in wined3d_device_uninit_3d(). 2013-09-13 10:56:49 +02:00
Stefan Dösinger d8c43aabf7 wined3d: Move the decoded stream info into the context. 2013-09-12 17:48:14 +02:00
Henri Verbeet 1a78667862 wined3d: Allow the first render target to be set to NULL.
Note that it still isn't necessarily safe to render in this case, because
there are places where we assume the first render target is always non-NULL in
order to determine e.g. framebuffer dimensions. It's now the responsibility of
the caller to ensure that doesn't happen.
2013-09-12 10:59:18 +02:00
Henri Verbeet d21c26e4f6 wined3d: Get rid of surface_modify_location(). 2013-09-10 11:09:53 +02:00
Stefan Dösinger cd203b38a6 wined3d: Pass the context to the main buffer preload function. 2013-09-09 22:10:01 +02:00
Stefan Dösinger 87f931dc64 wined3d: Only invalidate STATE_INDEXBUFFER for the current context in buffer_get_sysmem(). 2013-09-09 22:10:00 +02:00
Stefan Dösinger 1cf192172e wined3d: Only invalidate STATE_INDEXBUFFER for the current context in buffer_create_buffer_object(). 2013-09-09 22:10:00 +02:00
Henri Verbeet b5e0c5d052 wined3d: Get rid of some leftover comments referring to the GL lock. 2013-09-02 18:02:26 +02:00
Henri Verbeet b85c2a74bb wined3d: Replace the "stateBlock" wined3d_device field with a wined3d_state structure. 2013-08-27 11:50:53 +02:00
Henri Verbeet fc5f9d4709 wined3d: Make stateblock_init_default_state() work with a wined3d_state structure instead. 2013-08-27 11:50:53 +02:00
Stefan Dösinger 1bd6710b6f wined3d: Check volume formats and sizes in device_update_volume. 2013-08-26 19:02:29 +02:00
Stefan Dösinger 9fbc90b8e3 wined3d: UpdateTexture requires a sysmem source and default destination. 2013-08-26 19:02:23 +02:00
Henri Verbeet 4e755d263f wined3d: Make stateblock_unbind_resources() work with a wined3d_state structure instead. 2013-08-26 10:50:46 +02:00
Henri Verbeet f02a5f45d4 wined3d: Replace the "updateStateBlock" wined3d_device field with a "update_state" field. 2013-08-26 10:50:43 +02:00
Stefan Dösinger aa3a43f769 wined3d: Don't lock the dst volume in device_update_volume. 2013-08-23 19:26:43 +02:00
Henri Verbeet b4d6f90f20 wined3d: Only update the stateblock's "changed" field if we're recording. 2013-08-23 10:41:36 +02:00
Henri Verbeet 6501f2e215 wined3d: Read from stateBlock instead of updateStateBlock in wined3d_device_get_texture_stage_state(). 2013-08-22 10:26:49 +02:00
Henri Verbeet 9b721da9a5 wined3d: Read from stateBlock instead of updateStateBlock in wined3d_device_get_scissor_rect(). 2013-08-22 10:26:46 +02:00
Henri Verbeet 7638e550b9 wined3d: Read from stateBlock instead of updateStateBlock in wined3d_device_get_material(). 2013-08-22 10:26:42 +02:00
Henri Verbeet a2e1a3d4f1 wined3d: Read from stateBlock instead of updateStateBlock in wined3d_device_get_stream_source_freq(). 2013-08-21 12:13:56 +02:00
Henri Verbeet 7e7bd87b2c wined3d: Store the original display mode in the swapchain. 2013-08-20 11:50:28 +02:00
Stefan Dösinger a4f009d847 wined3d: Keep GL_UNPACK_CLIENT_STORAGE_APPLE off by default.
This is cleaner than the other way around and avoids side effects in
code that wasn't written with client storage in mind. Contrary to the
original intention, it also means fewer client storage toggle calls.
2013-08-19 18:07:45 +02:00
Henri Verbeet 37d1e8b79c wined3d: Try to avoid redundant constant updates.
This gives a minor performance improvement. For example, in 3DMark03 Game Test
1 this gives about a 4% improvement, in the Counter Strike: Source stress test
it's about 1%. (NVIDIA GF9600M, Intel T9550, 1024x768).
2013-08-16 11:55:24 +02:00
Rico Schüller 55c190d396 wined3d: Fix typo. 2013-07-24 11:12:45 -05:00
Matteo Bruni 42cfbb825c wined3d: Add a missing destroy_dummy_textures() call. 2013-07-24 11:09:39 -05:00
Henri Verbeet ffc9f535eb wined3d: Handle pre-transformed vertices in the GLSL vertex pipe.
This also avoids a fallback to drawStridedSlow().
2013-06-14 11:46:31 +02:00
Henri Verbeet 13a38e8d5e wined3d: Pass a wined3d_resource_desc structure to device_parent_create_swapchain_surface(). 2013-06-04 10:14:28 +02:00
Henri Verbeet a3f59cf618 wined3d: Allow textures as swapchain surfaces. 2013-06-03 11:30:43 +02:00
Henri Verbeet 74c5a22daa wined3d: Only invalidate the current ffp vertex shader if the light type changed.
As opposed to any time a light parameter changed.
2013-05-29 12:12:33 +02:00
Henri Verbeet 1c2392ddb0 wined3d: Only write gl_PointSize for point primitives in shader_glsl_generate_ffp_vertex_shader(). 2013-05-29 12:12:32 +02:00
Stefan Dösinger 76941eff00 wined3d: Move gl_info->limits.max_texture_stages to d3d_info. 2013-04-25 20:25:10 +02:00
Stefan Dösinger ac99d53991 wined3d: Move valid_rt_mask to wined3d_d3d_info. 2013-04-25 20:25:10 +02:00
Stefan Dösinger cb01fb27b1 wined3d: Move max_ffp_textures to wined3d_d3d_info. 2013-04-25 20:25:09 +02:00
Stefan Dösinger 768e8c098c wined3d: Move shader limits to wined3d_d3d_info. 2013-04-25 20:25:09 +02:00
Stefan Dösinger 16e862ba9d wined3d: Add a new structure for d3d limits and other info. 2013-04-25 20:25:07 +02:00
Henri Verbeet 471991eb9a wined3d: Introduce a wined3d_vertex_pipe_ops structure. 2013-04-25 13:39:56 +02:00
Stefan Dösinger c371af0d5c wined3d: Get rid of device->view_ident. 2013-04-24 18:26:56 +02:00
Henri Verbeet c756496326 wined3d: Rename the device "strided_streams" field to "stream_info".
The "strided" in there is mostly historic, it hasn't really been accurate for
a while now.
2013-04-22 15:26:11 +02:00
Henri Verbeet c0a84454c4 wined3d: Introduce a separate debug channel for performance warnings. 2013-04-17 11:36:22 +02:00
Sam Edwards 33d31a3547 wined3d: Properly handle backbuffer_width/_height=0 in wined3d_device_reset. 2013-04-11 12:06:49 +02:00
Stefan Dösinger 822bcfdf74 wined3d: Remove the unused idx_data parameter from draw_primitive. 2013-04-10 16:16:44 +02:00
Matteo Bruni f6d2737e62 wined3d: Make the entire surface current after clearing a discarded depth buffer. 2013-04-10 15:46:49 +02:00
Matteo Bruni a0c06a94aa wined3d: Reset all the dummy textures to 0 on destroy. 2013-04-10 15:46:18 +02:00
Sam Edwards 6c43f90c50 wined3d: Ignore WS_VISIBLE and WS_EX_TOPMOST when dropping out of fullscreen. 2013-04-03 11:33:52 +02:00
Sam Edwards 6ab0ff5b9d wined3d: Make fullscreen windows use HWND_TOPMOST instead of HWND_TOP. 2013-04-03 11:33:38 +02:00
Matteo Bruni 5e28b0c974 wined3d: Add RESZ support. 2013-02-19 10:39:47 +01: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
Francois Gouget e7adf7fbf7 wined3d: Make device_stream_info_from_declaration() static. 2013-01-29 11:48:42 +01:00
Stefan Dösinger 1a3f741643 wined3d: Remove draw_primitive_strided. 2013-01-25 11:30:33 +01:00
Stefan Dösinger 149a85c2e7 d3d: Remove high level patch support.
No Windows driver ever exposed this, and no game uses this. The
only application that used this feature is a DirectX 8 SDK sample.
2013-01-25 11:29:41 +01:00
Stefan Dösinger aaa11492db wined3d: Ignore clears if count = 0 and rects != NULL. 2013-01-23 19:16:32 +01:00
Henri Verbeet c525cf381d wined3d: Move "vs_clipping" to the shader caps. 2013-01-21 12:51:22 +01:00
Henri Verbeet e73aa3e83d wined3d: Get rid of vs_selected_mode / ps_selected_mode from struct wined3d_device.
These are only used by wined3d_shader_create_vs() /
wined3d_shader_create_ps(), but they're redundant there since the "none"
shader backend doesn't support any shader version.
2013-01-18 13:29:04 +01:00
Henri Verbeet 6c7cce55a7 wined3d: Get rid of the "opengl" field in struct wined3d_adapter. 2013-01-17 12:22:05 +01:00
Henri Verbeet ce912d5149 wined3d: Get rid of the surface_type parameter to wined3d_surface_create(). 2013-01-17 12:21:55 +01:00
Henri Verbeet f3dbbba48e wined3d: Initialize the various backends in wined3d_adapter_init_nogl() as well. 2013-01-16 12:22:43 +01:00
Henri Verbeet 3e7c800e9c wined3d: Get rid of the user_stream field from wined3d_state.
All remaining uses are equivalent to "device->up_strided". (Which should of
course eventually go away as well.)
2013-01-07 11:12:23 +01:00
Henri Verbeet 44b462c9b4 wined3d: Just restore state->user_stream in wined3d_device_draw_indexed_primitive_strided(). 2013-01-04 12:17:01 +01:00
Henri Verbeet b557f5ba3a wined3d: Don't touch state->user_stream in wined3d_device_process_vertices().
device_stream_info_from_declaration() no longer cares about
state->user_stream.
2013-01-04 12:16:56 +01:00
Henri Verbeet 76a2864a3b wined3d: state->user_stream is always FALSE in device_stream_info_from_declaration().
Since user pointer draws were removed, state->user_stream will only ever be
set for "strided" draws, and device_stream_info_from_declaration() is never
called for those.
2013-01-04 12:16:49 +01:00
Stefan Dösinger 8cf55497cc wined3d: Remove draw_*_primitive_up.
Note that I can't remove the state->user_stream mess yet, because of
draw_*_primitive_strided. Another patchset will deal with that.
2012-12-19 12:53:28 +01:00
Henri Verbeet 78984cf46c wined3d: Get rid of ENTER_GL / LEAVE_GL. 2012-12-11 12:03:39 +01:00
Henri Verbeet 9fbd3bbed6 d3d10core: Implement d3d10_device_PSGetSamplers(). 2012-12-10 11:25:49 +01:00
Henri Verbeet 4c4131cd78 d3d10core: Implement d3d10_device_PSSetSamplers(). 2012-12-10 11:25:46 +01:00
Henri Verbeet 2c01e11eca d3d10core: Implement d3d10_device_GSGetSamplers(). 2012-12-07 10:35:51 +01:00
Henri Verbeet 047d607e07 d3d10core: Implement d3d10_device_GSSetSamplers(). 2012-12-07 10:35:44 +01:00
Henri Verbeet c98767a425 d3d10core: Implement d3d10_device_VSGetSamplers(). 2012-12-06 12:55:59 +01:00
Henri Verbeet e5805c316c d3d10core: Implement d3d10_device_VSSetSamplers(). 2012-12-06 12:55:50 +01:00
Henri Verbeet 6ac3c48384 d3d10core: Implement d3d10_device_PSGetConstantBuffers(). 2012-12-05 12:44:07 +01:00
Henri Verbeet b034f49183 d3d10core: Implement d3d10_device_PSSetConstantBuffers(). 2012-12-05 12:44:01 +01:00
Henri Verbeet d906c94382 d3d10core: Implement d3d10_device_GSGetConstantBuffers(). 2012-12-04 00:02:06 +01:00
Henri Verbeet feda45279e d3d10core: Implement d3d10_device_GSSetConstantBuffers(). 2012-12-04 00:02:00 +01:00
Henri Verbeet 027ef4ccdb d3d10core: Implement d3d10_device_VSGetConstantBuffers(). 2012-11-30 11:42:54 +01:00
Henri Verbeet ae5e15319e d3d10core: Implement d3d10_device_VSSetConstantBuffers(). 2012-11-30 11:42:48 +01:00
Henri Verbeet 56b3953207 wined3d: Fix a typo in wined3d_device_set_stream_output(). 2012-11-29 00:16:50 +01:00
Henri Verbeet 7f62678c16 d3d10core: Implement d3d10_device_DrawIndexedInstanced(). 2012-11-27 16:54:57 +01:00
Henri Verbeet dc67be012f d3d10core: Implement d3d10_device_SOGetTargets(). 2012-11-23 14:40:36 +01:00
Henri Verbeet 5b781d709d d3d10core: Implement d3d10_device_SOSetTargets(). 2012-11-23 14:40:30 +01:00
Henri Verbeet d0d213f7d1 d3d10core: Implement d3d10_device_IAGetIndexBuffer(). 2012-11-21 13:25:57 +01:00
Henri Verbeet 79f0b4d977 d3d9: Avoid resetting device state for d3d9ex resets. 2012-11-20 11:44:27 +01:00
Henri Verbeet 94ab9d5ef3 wined3d: Update the scissor rect and viewport even on redundant wined3d_device_set_render_target() calls. 2012-11-19 11:46:55 +01:00
Henri Verbeet 9a27b0ad71 wined3d: Add support for geometry shaders to the GLSL shader backend. 2012-11-15 12:19:36 +01:00
Henri Verbeet 25c449247f d3d10core: Implement d3d10_device_GSGetShader(). 2012-11-14 11:27:44 +01:00
Henri Verbeet 9081f8afb1 d3d10core: Implement d3d10_device_GSSetShader(). 2012-11-14 11:27:40 +01:00
Henri Verbeet 17e33e9b27 wined3d: Make the shader backend responsible for controlling the fixed function fragment pipe. 2012-10-25 11:48:31 +02:00
Henri Verbeet ddbe791d37 wined3d: Set texture_level in surface_set_texture_target() as well. 2012-10-24 11:24:22 +02:00
Henri Verbeet 5fcc1f8f70 wined3d: Just return the surface from wined3d_swapchain_get_back_buffer(). 2012-10-04 14:09:50 +02:00
Henri Verbeet 50c61959eb wined3d: Just return the surface from wined3d_device_get_surface_from_dc(). 2012-10-03 11:19:41 +02:00
Henri Verbeet 2ad5808996 wined3d: wined3d_device_get_creation_parameters() never fails. 2012-10-01 23:07:55 +02:00
Henri Verbeet 6e5cf8c698 wined3d: wined3d_device_set_depth_stencil() never fails. 2012-10-01 23:07:51 +02:00
Marcus Meissner 8ec6ebe4fb wined3d: Move texture reference decrement to end of usage (Coverity). 2012-10-01 12:20:40 +02:00
Henri Verbeet 95b4207c7f wined3d: Just return the surface from wined3d_device_get_depth_stencil(). 2012-10-01 12:11:02 +02:00
Henri Verbeet 972217fd6a wined3d: Just return the surface from wined3d_device_get_render_target(). 2012-10-01 12:10:55 +02:00
Henri Verbeet c0f52fbf1c wined3d: wined3d_device_set_software_vertex_processing() never fails. 2012-09-27 13:10:48 +02:00
Henri Verbeet f9d494294a wined3d: Just return the texture from wined3d_device_get_texture(). 2012-09-27 13:10:43 +02:00
Henri Verbeet c0a83b1d96 wined3d: wined3d_device_get_texture_stage_state() never fails. 2012-09-26 14:40:35 +02:00
Henri Verbeet 26c0714009 wined3d: wined3d_device_set_texture_stage_state() never fails. 2012-09-26 14:40:33 +02:00
Henri Verbeet 6e4c40689c wined3d: Just return the shader from wined3d_device_get_pixel_shader(). 2012-09-25 11:19:11 +02:00
Henri Verbeet fc711d4955 wined3d: wined3d_device_set_pixel_shader() never fails. 2012-09-25 11:19:07 +02:00
Henri Verbeet 6909b5143b wined3d: Just return the shader from wined3d_device_get_vertex_shader(). 2012-09-24 09:58:06 +02:00
Henri Verbeet b97ec7ae0c wined3d: wined3d_device_set_vertex_shader() never fails. 2012-09-24 09:58:03 +02:00
Henri Verbeet 2f03ad1a40 wined3d: Just return the declaration from wined3d_device_get_vertex_declaration(). 2012-09-21 10:53:10 +02:00
Henri Verbeet 01918d05ed wined3d: wined3d_device_set_vertex_declaration() never fails. 2012-09-21 10:53:06 +02:00
Henri Verbeet de1ae1eb8a wined3d: wined3d_device_get_scissor_rect() never fails. 2012-09-19 23:54:59 +02:00
Henri Verbeet 2de9fc640b wined3d: wined3d_device_set_scissor_rect() never fails. 2012-09-19 23:54:56 +02:00
Henri Verbeet fb989f1d1e wined3d: Implement version checks for geometry shaders. 2012-09-19 13:04:56 +02:00
Henri Verbeet 62670c7ba5 wined3d: wined3d_device_get_sampler_state() never fails. 2012-09-19 13:04:52 +02:00
Henri Verbeet 0d96be2c20 wined3d: wined3d_device_set_sampler_state() never fails. 2012-09-19 13:04:48 +02:00
Henri Verbeet 343974e2fd wined3d: wined3d_device_get_material() never fails. 2012-09-18 10:18:51 +02:00
Henri Verbeet 2669feeb8c wined3d: wined3d_device_set_material() never fails. 2012-09-18 10:18:42 +02:00
Henri Verbeet 90bd04c6b6 wined3d: wined3d_device_multiply_transform() never fails. 2012-09-14 15:43:20 +02:00
Henri Verbeet b8feef8833 wined3d: wined3d_device_set_base_vertex_index() never fails. 2012-09-13 10:23:14 +02:00
Henri Verbeet 706ece827b wined3d: wined3d_device_get_transform() never fails. 2012-09-12 12:46:12 +02:00
Henri Verbeet f79bbc767d wined3d: wined3d_device_set_transform() never fails. 2012-09-12 12:46:07 +02:00
Henri Verbeet d601a0dede wined3d: wined3d_device_get_render_state() never fails. 2012-09-11 18:03:57 +02:00
Henri Verbeet 75cec973d5 wined3d: wined3d_device_set_render_state() never fails. 2012-09-11 18:03:53 +02:00
Henri Verbeet 3569b6ccd2 wined3d: wined3d_device_get_viewport() never fails. 2012-09-10 11:40:19 +02:00
Henri Verbeet 64aae8cf02 wined3d: wined3d_device_set_viewport() never fails. 2012-09-10 11:40:14 +02:00
Henri Verbeet c8f4ca315e wined3d: Just return the buffer from wined3d_device_get_index_buffer(). 2012-09-06 15:45:32 +02:00
Henri Verbeet a3e28f6ce5 wined3d: wined3d_device_set_index_buffer() never fails. 2012-09-06 15:45:32 +02:00
Henri Verbeet 8fd7d3a2b3 wined3d: Just return the swapchain from wined3d_device_get_swapchain(). 2012-09-05 11:48:04 +02:00
Henri Verbeet 66ec8a5cfb wined3d: Get rid of wined3d_device_get_wined3d(). 2012-09-04 15:05:22 +02:00
Jonas Wielicki a64b7918c8 wined3d: Fix crash in wined3d_device_reset with gdi backend for directdraw. 2012-08-29 20:13:42 +02:00
Henri Verbeet 894d161891 wined3d: Call core GL functions through gl_info.gl_ops as well. 2012-07-25 20:10:08 +02:00