Commit Graph

5088 Commits

Author SHA1 Message Date
Henri Verbeet b1664a2c85 wined3d: Get rid of some IWineD3D* references. 2011-07-04 13:44:41 +02:00
Henri Verbeet 0c716b77e5 wined3d: Move some enums to directx.c. 2011-07-04 13:44:29 +02:00
Henri Verbeet 8f6ae4ba38 wined3d: Get rid of some macros. 2011-07-04 13:44:25 +02:00
Henri Verbeet c20b23eb00 wined3d: Make the surface parameter to context_surface_update() const. 2011-07-01 14:39:35 +02:00
Henri Verbeet 2257a70e37 wined3d: Make the device parameter to context_resource_unloaded() const. 2011-07-01 14:39:35 +02:00
Henri Verbeet 6894d8022a wined3d: Make the device parameter to context_resource_released() const. 2011-07-01 14:39:35 +02:00
Henri Verbeet 53b99dde14 wined3d: Make the device and surface parameters to context_enum_surface_fbo_entries() const. 2011-07-01 14:39:35 +02:00
Henri Verbeet b3b1d20562 wined3d: Make the context parameter to context_check_fbo_status() const. 2011-07-01 14:39:35 +02:00
Henri Verbeet a8de1272da wined3d: Make the context parameter to context_attach_depth_stencil_fbo() const. 2011-06-29 10:08:44 -05:00
Henri Verbeet 0bae611bf5 wined3d: Make the context parameter to context_create_fbo_entry() const. 2011-06-29 10:08:39 -05:00
Henri Verbeet 12be5afd92 wined3d: Get rid of the glsl_sample_function_t typedef. 2011-06-29 10:08:34 -05:00
Henri Verbeet 8fa44dd76d wined3d: Get rid of the glsl_src_param_t typedef. 2011-06-29 10:08:28 -05:00
Henri Verbeet 3f62b618c4 wined3d: Get rid of the glsl_dst_param_t typedef. 2011-06-29 10:08:19 -05:00
Stefan Dösinger a27adc478a wined3d: Update the vertex shader when the clipplanes are changed. 2011-06-28 11:57:51 -05:00
Henri Verbeet ebcf08e59a wined3d: Properly destroy contexts not owned by the implcit swapchain.
In particular, set num_contexts to 0 in the swapchain that owns the contexts.
2011-06-28 10:18:37 -05:00
Henri Verbeet 560d5188b7 wined3d: Make the rts and ds parameters to context_validate_rt_config() const. 2011-06-28 10:18:30 -05:00
Henri Verbeet 64bf19d07b wined3d: Make the generate_rt_mask_no_fbo() parameters const. 2011-06-28 10:18:26 -05:00
Henri Verbeet b9721600dc wined3d: Make the target parameter to generate_rt_mask_from_surface() const. 2011-06-28 10:18:20 -05:00
Henri Verbeet 4725d4bb99 wined3d: Make the depth_stencil parameter to context_validate_onscreen_formats() const. 2011-06-28 10:18:15 -05:00
Stefan Dösinger 5e97e22951 wined3d: Separate stream sources and vertex declaration.
Changing the stream sources does not require a reapplication of the
vertex declaration. Even setting a NULL vertex buffer doesn't make
attributes disappear - it just causes a segfault on Windows.
2011-06-27 16:43:24 -05:00
Stefan Dösinger 9ed6dc9144 wined3d: Don't set FBO attachment filtering to GL_NEAREST.
The min and mag filters should not have any effect when rendering to
textures. This code was once needed to work around a bug in the Nvidia
driver. Changing the texture filter states is expensive and makes it
harder to apply the FBO state only when needed.
2011-06-27 16:43:08 -05:00
Stefan Dösinger 1bc01f8f87 wined3d: Get rid of the has_signature_idx field in the ARB ps private data. 2011-06-24 11:58:11 -05:00
Stefan Dösinger 3a3b482864 wined3d: Fix a typo in compare_sig in the arb backend. 2011-06-24 11:58:04 -05:00
Henri Verbeet c461d312ba wined3d: Request per-surface palettes in the client libs. 2011-06-24 08:49:48 -05:00
Henri Verbeet b296f181dd wined3d: Explicitly set surface alignment in the client libs.
Instead of using dxVersion.
2011-06-24 08:49:42 -05:00
Henri Verbeet fd8dbf0847 wined3d: Make the surface parameter to surface_get_gl_buffer() const. 2011-06-24 08:49:34 -05:00
Henri Verbeet 0ce282edf7 wined3d: Make the surface parameter to surface_is_offscreen() const. 2011-06-24 08:49:28 -05:00
Henri Verbeet c3c131ab34 wined3d: Only invalidate STATE_STREAMSRC for bound buffers. 2011-06-23 09:47:35 +02:00
Henri Verbeet c4da128b8f wined3d: Make the device and target parameters to FindContext() const. 2011-06-23 09:47:34 +02:00
Henri Verbeet 5a26da1d19 wined3d: Make the wined3d_shader_context shader pointer const. 2011-06-23 09:47:34 +02:00
Henri Verbeet 330ffc83f2 d3d8: Implement IDirect3DVolume8 private data handling on top of wined3d_resource. 2011-06-23 09:47:34 +02:00
Matteo Bruni 32787ec0dd wined3d: Fix draw buffers tracking. 2011-06-22 15:21:43 +02:00
Matteo Bruni 0919ac3b51 wined3d: Fix context_apply_draw_buffers() with backbuffer ORM. 2011-06-22 15:21:36 +02:00
Matteo Bruni 5b67bd4fb2 wined3d: Fix context_apply_blit_state(). 2011-06-22 15:21:27 +02:00
Henri Verbeet 42db8e2bfa wined3d: Make the context parameter to isStateDirty() const. 2011-06-22 11:25:39 +02:00
Henri Verbeet 14bc0e9ef2 wined3d: Invalidate STATE_STREAMSRC when dropping VBOs. 2011-06-22 11:25:34 +02:00
Henri Verbeet acd8c58725 ddraw: Implement surface private data handling on top of wined3d_resource. 2011-06-22 11:25:27 +02:00
Piotr Pawlow b5e04640cc wined3d: Use a separate mutex for wndproc_table access.
If CreateDevice is called with hFocusWindow belonging to another thread,
then any code that does SendMessage (or equivalent) to the window while
holding the main wined3d mutex causes a deadlock, because wined3d_wndproc
tries to acquire the same mutex for wndproc_table access.
2011-06-21 16:18:56 +02:00
Henri Verbeet 4582a0bcb3 wined3d: Make the device parameter to device_invalidate_state() const. 2011-06-21 11:25:18 +02:00
Henri Verbeet 233b8e1cf8 wined3d: Fix the STATE_BASEVERTEXINDEX state entry. 2011-06-21 11:25:15 +02:00
Henri Verbeet 265e62378f wined3d: Validate STATE_BASEVERTEXINDEX in validate_state_table(). 2011-06-21 11:25:13 +02:00
Henri Verbeet 430bac5fad wined3d: Only bother checking block alignment for compressed surfaces in wined3d_device_update_surface(). 2011-06-21 11:25:09 +02:00
Henri Verbeet 17eb3e2c74 wined3d: Initialize format block info with sane values for uncompressed formats. 2011-06-21 11:25:06 +02:00
Stefan Dösinger 73cec67c14 wined3d: Link STATE_BASEVERTEXINDEX to STATE_VDECL. 2011-06-20 19:32:02 +02:00
Stefan Dösinger 2daa16c96c wined3d: Use base_vertex_index in drawStridedSlow, and only for indexed draws. 2011-06-20 19:32:02 +02:00
Henri Verbeet 792060d67f d3d8: Implement IDirect3DVolumeTexture8 private data handling on top of wined3d_resource. 2011-06-20 11:28:40 +02:00
Henri Verbeet 732338ab35 d3d9: Implement IDirect3DCubeTexture9 private data handling on top of wined3d_resource. 2011-06-20 11:28:22 +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
Stefan Dösinger 19a1b74252 wined3d: Add STATE_BASEVERTEXINDEX to debug_d3dstate. 2011-06-17 15:37:31 +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 45a0e95962 wined3d: Only load the surface for partial updates in wined3d_device_update_surface(). 2011-06-17 11:02:21 +02:00
Henri Verbeet 3a1d151561 wined3d: Use surface_load_location() instead of surface_internal_preload() in wined3d_device_update_surface(). 2011-06-17 11:02:18 +02:00
Henri Verbeet 26eb6c8eea wined3d: Check the correct debug class in checkGLcall. 2011-06-16 11:16:41 +02:00
Henri Verbeet 4621568922 wined3d: Only invert viewport y for onscreen destinations in surface_depth_blt().
This fixes a regression introduced by
032f8702ed.
2011-06-16 11:16:31 +02:00
Henri Verbeet c51db63ba4 wined3d: Require ARB_shader_texture_lod for SM3. 2011-06-16 11:16:26 +02:00
Henri Verbeet 6f710d18fc wined3d: Fix source rectangle validation in wined3d_device_update_surface(). 2011-06-16 11:16:19 +02:00
Henri Verbeet 8153674c4a wined3d: Don't clear the alloc flags in wined3d_surface_set_format().
Changing the format is only allowed for surfaces with format
WINED3DFMT_UNKNOWN, in which case there can't be a GL texture allocated.
2011-06-15 20:04:38 +02:00
Henri Verbeet c19c26e4be wined3d: Check the source rectangle is a multiple of the format block size in wined3d_device_update_surface(). 2011-06-15 12:51:51 +02:00
Henri Verbeet 410a8e86f5 wined3d: Check for a valid source rectangle and destination in wined3d_device_update_surface(). 2011-06-15 12:51:50 +02:00
Henri Verbeet b9133d7de0 wined3d: Implement wined3d_device_update_surface() on top of surface_upload_data(). 2011-06-15 12:51:49 +02:00
Stefan Dösinger a421278625 wined3d: Invalidate STATE_STREAMSRC in wined3d_device_draw_indexed_primitive_up. 2011-06-14 13:43:56 +02:00
Stefan Dösinger dafd31861a wined3d: Use GL_ARB_draw_elements_base_vertex if available. 2011-06-14 13:43:56 +02:00
Stefan Dösinger 7de2fa2670 wined3d: Add GL_ARB_draw_elements_base_vertex. 2011-06-14 13:43:56 +02:00
Marcus Meissner 2bcd439818 wined3d: Don't just print a FIXME on error, handle it (Coverity). 2011-06-13 11:30:07 +02:00
Stefan Dösinger 2e3cf68e0b wined3d: Silence R16 and AL16 fourcc warnings. 2011-06-10 10:45:42 +02:00
Stefan Dösinger 663fac5bcd wined3d: Set last_was_blit to FALSE in the if condition that checks for it. 2011-06-10 10:45:38 +02:00
Stefan Dösinger 7b39005256 wined3d: Don't check the FBO status if FIXMEs are off. 2011-06-10 10:45:35 +02:00
Henri Verbeet 980c50a087 wined3d: Move PBO handling mostly out of surface_upload_data().
Currently we essentially get half of the address from the caller and half from
the destination surface. Since we'd like to use surface_upload_data() for
wined3d_device_update_surface() as well, we should get all of it from the
caller.
2011-06-10 10:44:39 +02:00
Henri Verbeet a1b8f254b1 wined3d: Get rid of a NULL check for surface_upload_data(). 2011-06-10 10:44:32 +02:00
Henri Verbeet 9f3e6a20e8 wined3d: Handle unpack row length inside surface_upload_data(). 2011-06-10 10:44:26 +02:00
Henri Verbeet ee6d550b2e wined3d: Rename IWineD3DImpl_FillGLCaps() to wined3d_adapter_init_gl_caps(). 2011-06-10 10:44:20 +02:00
Henri Verbeet d5c9523a83 wined3d: Rename IWineD3DDeviceImpl_UpdateVolume() to device_update_volume(). 2011-06-10 10:44:17 +02:00
Henri Verbeet 5173f9f05f wined3d: Rename IWineD3DDeviceImpl_LoadLogo() to device_load_logo(). 2011-06-08 14:12:40 +02:00
Henri Verbeet da125e6bca wined3d: cfg can never be NULL in wined3d_check_pixel_format_color(). 2011-06-08 14:12:40 +02:00
Henri Verbeet c24c2d1eac wined3d: Rename IWineD3DImpl_IsPixelFormatCompatibleWithRenderFmt() to wined3d_check_pixel_format_color(). 2011-06-08 14:12:40 +02:00
Matteo Bruni c23a5443c1 wined3d: Simplify context_apply_draw_buffers() a bit. 2011-06-07 18:12:03 +02:00
Matteo Bruni 002674e49d wined3d: Fix glDrawBuffers() optimization. 2011-06-07 18:12:01 +02:00
Henri Verbeet be180bed7c wined3d: cfg can never be NULL in wined3d_check_pixel_format_depth(). 2011-06-07 14:18:34 +02:00
Henri Verbeet fec6137de2 wined3d: Rename IWineD3DImpl_IsPixelFormatCompatibleWithDepthFmt to wined3d_check_pixel_format_depth(). 2011-06-07 14:18:34 +02:00
Henri Verbeet 01e668b007 wined3d: Use GL_DEPTH_COMPONENT as internal format for depth_blt_texture.
This also changes the texture level to always be zero while we're at it. In
practice depth/stencil textures should rarely have multiple levels, if ever,
but only 0 makes sense here.
2011-06-07 14:18:34 +02:00
Henri Verbeet 95bd0ec61c wined3d: Just enable ARB_shader_texture_lod if it's available. 2011-06-07 14:18:34 +02:00
Henri Verbeet 1fbdfd625a wined3d: Get rid of wined3d_texture_get_type(). 2011-06-07 14:18:34 +02:00
Henri Verbeet 84ce0020f4 wined3d: Rename Context_MarkStateDirty() to context_invalidate_state(). 2011-06-06 16:18:48 +02:00
Henri Verbeet c8f26a1345 wined3d: Rename IWineD3DDeviceImpl_MarkStateDirty() to device_invalidate_state(). 2011-06-06 16:18:41 +02:00
Henri Verbeet 708d94212b wined3d: Don't clamp vertex depth values.
Since we report D3DPMISCCAPS_CLIPTLVERTS.
2011-06-06 16:18:33 +02:00
Matteo Bruni 6647c8f72d wined3d: Mark some texture formats as filterable. 2011-06-03 12:46:07 +02:00
Piotr Pawłow bc9407a452 wined3d: Set container of swapchain surfaces to WINED3D_CONTAINER_NONE in swapchain_init() error path. 2011-06-02 16:22:44 +02:00
Stefan Dösinger 5b9daccc66 wined3d: Call context_apply_draw_buffers under the GL lock. 2011-05-27 17:53:37 +02:00
Stefan Dösinger dda91ac02a wined3d: Call frag_pipe->enable_extension under the GL lock. 2011-05-26 16:41:14 +02:00
Stefan Dösinger dbd8786394 wined3d: CMP supports _SAT.
This is a partial revert of c9ef1ed28c. I don't know where I got the
idea that CMP does not support _SAT, but I suspect that my driver at the time was broken.
2011-05-25 12:23:10 +02:00
Henri Verbeet b396886e5d wined3d: Get rid of an unintentional variable. 2011-05-25 11:49:33 +02:00
Henri Verbeet 019f6a8534 wined3d: Mask out writes to unused render targets.
Outputs not written by the pixel shader are undefined in GL, but in D3D the
render target is unmodified.
2011-05-25 11:49:23 +02:00
Henri Verbeet d5ee9a4014 wined3d: Check for unhandled resource usage flags. 2011-05-25 11:48:42 +02:00
Henri Verbeet 6d31039034 wined3d: Rename IWineD3DDeviceImpl_FindTexUnitMap() to device_update_tex_unit_map(). 2011-05-25 11:48:38 +02:00
Stefan Dösinger 813c273725 wined3d: Fix a few function definitions. 2011-05-24 12:47:28 +02:00
Henri Verbeet 0143fa7382 wined3d: Use the requested sRGB mode in texture3d_preload(). 2011-05-19 10:08:05 +02:00
Henri Verbeet 6d6402afef wined3d: Get rid of the mostly unused SRGB_BOTH enum value. 2011-05-19 10:08:02 +02:00
Henri Verbeet aba42d1fa5 wined3d: Introduce a separate structure for framebuffer state. 2011-05-19 10:07:57 +02:00