Commit Graph

4276 Commits

Author SHA1 Message Date
Roderick Colenbrander e91f4ae776 wined3d: Make sure wglFlush is not between ENTER_GL/LEAVE_GL. 2010-05-14 18:03:02 +02:00
Roderick Colenbrander b60961ae55 wined3d: Use surface_prepare_texture for surface allocation in read_from_framebuffer_texture. 2010-05-11 11:04:55 +02:00
Stefan Dösinger 481aca47ad wined3d: Don't use GL_ARB_map_buffer_range for now.
There are numerous problems with this extension, and there are no
visible upsides. In the best case dynamic VBOs are just as fast as no
VBO at all.
2010-05-10 13:45:16 +02:00
Marcus Meissner 9494cdc56f wined3d: fixed a NULL deref in create_arb_blt_fragment_program (Coverity). 2010-05-10 10:04:31 +02:00
Alexandre Julliard e45926d582 wined3d: Don't crash during initialization if the adapter doesn't have full GL info. 2010-05-06 14:57:21 +02:00
Gerald Pfeifer da628001fe wined3d: Fix the handling of the blue channel inIWineGDISurfaceImpl_SaveSnapshot. (take 2). 2010-05-06 14:26:18 +02:00
Henri Verbeet 6478e41b97 wined3d: Remove the unused device type parameter to some format capability checking functions. 2010-05-06 14:17:46 +02:00
Henri Verbeet 6d68701fb3 wined3d: Reorganize IWineD3DImpl_CheckDeviceFormat() a bit. 2010-05-06 14:17:39 +02:00
Henri Verbeet 7a2debe113 wined3d: Use the FBO cache in swapchain_blit(). 2010-05-06 14:17:30 +02:00
Henri Verbeet 3345146d0b wined3d: Use the FBO cache in stretch_rect_fbo(). 2010-05-06 14:17:24 +02:00
Henri Verbeet 9982a46296 wined3d: Use the FBO cache in context_apply_blit_state(). 2010-05-06 14:16:44 +02:00
Henri Verbeet 8de7d2ed4c wined3d: Use context_apply_clear_state() in color_fill_fbo(). 2010-05-05 10:37:43 +02:00
Henri Verbeet ed75f5ca7a wined3d: Setup the FBO for the correct target in context_apply_clear_state(). 2010-05-05 10:37:40 +02:00
Henri Verbeet 4056f4bf99 wined3d: Explicitly pass the render target and depth/stencil surfaces to the FBO management functions. 2010-05-05 10:37:34 +02:00
Henri Verbeet e01d56f331 wined3d: Explicitly pass the FBO target to the FBO management functions. 2010-05-05 10:37:28 +02:00
Henri Verbeet 4fd3050b98 wined3d: Move draw buffer setup code out of context_apply_fbo_entry(). 2010-05-05 10:37:24 +02:00
Stefan Dösinger ec3d2ba316 wined3d: Fall back to other depth stencil formats if D24S8 isn't supported. 2010-05-04 13:15:00 +02:00
Stefan Dösinger e7066a90e1 wined3d: Don't grab the implicit depth stencil format in the wrong place.
This format is now explicitly passed to create_context.
2010-05-04 13:15:00 +02:00
Henri Verbeet ff6cf84c40 wined3d: Attach the surfaces from the fbo_entry instead of the ones from the device.
Currently these are always the same, but that doesn't make it right.
2010-05-04 13:14:59 +02:00
Henri Verbeet 312bacec96 wined3d: Remove a redundant check from prepare_ds_clear().
The rectangle count doesn't really matter. If the first rectangle doesn't
cover the entire draw_rect we need to load the depth/stencil surface.
2010-05-04 13:14:59 +02:00
Henri Verbeet 49e076eabd wined3d: Separate context acquisition and state application. 2010-05-04 13:14:59 +02:00
Henri Verbeet be43c867a5 wined3d: Split context_apply_state() into separate functions for each usage. 2010-05-04 13:14:59 +02:00
Henri Verbeet 87f34ce5f9 wined3d: Allow the ARB shader backend to work with GL implementations with low amounts of native parameters. 2010-05-03 13:51:02 +02:00
Henri Verbeet 0122cee51f wined3d: Make sure all fields of the shader backend caps are always initialized. 2010-05-03 13:50:57 +02:00
Henri Verbeet c9e7561b34 wined3d: Remove some unused fields from the shader backend caps. 2010-05-03 13:50:51 +02:00
Henri Verbeet d5b68e7640 wined3d: Make sure all fields of the fragment pipe caps are always initialized. 2010-05-03 13:50:45 +02:00
Henri Verbeet c1ea8fb6c7 wined3d: Store the VTF format capability in the format table. 2010-04-29 10:19:39 -05:00
Henri Verbeet be7b01589f wined3d: Store the sRGB write format capability in the format table. 2010-04-29 10:19:39 -05:00
Henri Verbeet c041781255 wined3d: Store the sRGB read format capability in the format table. 2010-04-29 10:19:39 -05:00
Henri Verbeet 163940540d wined3d: Store the bumpmap format capability in the format table. 2010-04-29 10:19:39 -05:00
Henri Verbeet f09b8e454d wined3d: Avoid some needless depth buffer copies.
If an application switches between render targets of a different size, but
with the same depth/stencil surface it'll typically clear the depth/stencil
surface before drawing. However, in case of the smaller render target that
wouldn't be a full clear, so we'd have to do a depth copy if we also switched
between onscreen and offscreen rendering. Keeping track of which part of the
depth/stencil surface is current for onscreen/offscreen allows us to avoid
most of these kinds of copies. The current scheme requires the current/dirty
rectangle to have an origin at (0,0). This could be extended to an arbitrary
rectangle, but the bookkeeping becomes somewhat more complex in that case, and
it's not clear that there would be much of a benefit at this point.
2010-04-29 10:19:39 -05:00
Henri Verbeet 83cf1ce8e1 wined3d: Check if the depth/stencil surface has any valid location at the start of surface_load_ds_location(). 2010-04-28 07:32:05 -05:00
Henri Verbeet 7b80c7d8c0 wined3d: Make "clear_rect" a RECT in IWineD3DDeviceImpl_ClearSurface(). 2010-04-28 07:31:53 -05:00
Henri Verbeet 772fe683fa wined3d: Introduce device_get_draw_rect() to calculate the effective viewport. 2010-04-28 07:31:40 -05:00
Henri Verbeet 0d86323778 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_release_client_storage(). 2010-04-28 07:31:28 -05:00
Henri Verbeet 23a377f02b wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_init_sysmem(). 2010-04-28 07:31:13 -05:00
Henri Verbeet 42375518ba wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_add_dirty_rect(). 2010-04-27 12:02:39 -05:00
Henri Verbeet f78d85ffe1 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_set_texture_target(). 2010-04-27 12:02:31 -05:00
Henri Verbeet 294d9dae8f wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_set_texture_name(). 2010-04-27 12:02:24 -05:00
Henri Verbeet d977e91b11 wined3d: Store back buffer surfaces as IWineD3DSurfaceImpl pointers in the swapchain. 2010-04-27 12:02:14 -05:00
Henri Verbeet 62acb2fdbc wined3d: Store the front buffer surface as an IWineD3DSurfaceImpl pointer in the swapchain. 2010-04-27 12:01:59 -05:00
Henri Verbeet 32b1f25f4b wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_force_reload(). 2010-04-26 09:04:56 -05:00
Henri Verbeet 553f429964 wined3d: Simply pass IWineD3DSurfaceImpl pointers to IWineD3DSurfaceImpl_BltOverride(). 2010-04-26 09:04:48 -05:00
Henri Verbeet d1ea48b971 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_internal_preload(). 2010-04-26 09:04:35 -05:00
Henri Verbeet c56d3c199c wined3d: Add a missing newline to a TRACE in IWineD3DDeviceImpl_UpdateSurface(). 2010-04-26 09:04:25 -05:00
Henri Verbeet 61d8338815 wined3d: Kill the now unused MAX_MIP_LEVELS. 2010-04-26 09:04:19 -05:00
Alexandre Julliard fdfabd53f1 wined3d: Avoid a compiler warning on old gcc. 2010-04-26 07:18:18 -05:00
Henri Verbeet bea50a39de wined3d: Simply pass an IWineD3DSurfaceImpl pointer to fb_copy_to_texture_hwstretch(). 2010-04-25 07:28:18 -05:00
Henri Verbeet 99994f885c wined3d: Simply pass an IWineD3DSurfaceImpl pointer to fb_copy_to_texture_direct(). 2010-04-25 07:28:07 -05:00
Henri Verbeet 339f7ef100 wined3d: Introduce basetexture_get_sub_resource() to simplify retrieving texture sub-resources. 2010-04-25 07:27:57 -05:00
Henri Verbeet 9308c5499f wined3d: Make sure all texture levels are allocated in surface_prepare_texture().
This fixes a regression introduced by commit
af7dfcd378.
2010-04-25 07:27:36 -05:00
Henri Verbeet 958b523707 wined3d: Store texture sub-resources in IWineD3DBaseTextureClass. 2010-04-25 07:26:51 -05:00
Henri Verbeet 158a001859 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to color_fill_fbo(). 2010-04-22 11:28:22 +02:00
Henri Verbeet 6b34b8e6d1 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to context_acquire(). 2010-04-22 11:28:17 +02:00
Henri Verbeet 1c403e44b5 wined3d: Store the current render target as an IWineD3DSurfaceImpl pointer in the context. 2010-04-22 11:28:12 +02:00
Henri Verbeet 95fb8eaa14 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to context_setup_target(). 2010-04-22 11:28:06 +02:00
Henri Verbeet 1b26ccde91 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to FindContext(). 2010-04-22 11:28:01 +02:00
Gerald Pfeifer 07c8120b57 wined3d: Remove variable dlc_tmp which is not really used from shader_arb_generate_pshader. 2010-04-21 15:35:07 +02:00
Henri Verbeet 660ad06692 wined3d: Simply pass implementation pointers to stretch_rect_fbo(). 2010-04-21 11:57:32 +02:00
Henri Verbeet 79a014a505 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_get_gl_buffer(). 2010-04-21 11:57:32 +02:00
Henri Verbeet 7b47dabd09 wined3d: Avoid some unnecessary invalidations of the the onscreen depth buffer.
This can happen for example when the application switches to a different
depth/stencil for offscreen rendering and back again.
2010-04-21 11:57:32 +02:00
Henri Verbeet 4f004a5565 wined3d: Move location loading and modification together in IWineD3DDeviceImpl_ClearSurface(). 2010-04-21 11:57:32 +02:00
Henri Verbeet dc67164d0d wined3d: Fix some more misspellings of "device". 2010-04-21 11:57:32 +02:00
Henri Verbeet fb189b39a9 wined3d: Immediately return on redundant changes in IWineD3DDeviceImpl_SetDepthStencilSurface(). 2010-04-20 11:14:52 +02:00
Henri Verbeet 5056fd309d wined3d: Get rid of a useless local variable in IWineD3DDeviceImpl_SetDepthStencilSurface(). 2010-04-20 11:14:48 +02:00
Henri Verbeet c5de1e1045 wined3d: Store the depth/stencil surface as an IWineD3DSurfaceImpl pointer in the device. 2010-04-20 11:14:42 +02:00
Henri Verbeet 520f74de21 wined3d: Store the auto depth/stencil surface as an IWineD3DSurfaceImpl pointer in the device. 2010-04-20 11:14:35 +02:00
Henri Verbeet c7a1848656 wined3d: Store render targets as IWineD3DSurfaceImpl pointers in the device. 2010-04-20 11:14:30 +02:00
Henri Verbeet 92a44884c7 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_set_compatible_renderbuffer(). 2010-04-19 14:55:35 +02:00
Henri Verbeet 03dc612c9c wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_is_offscreen(). 2010-04-19 14:55:31 +02:00
Henri Verbeet efb3993a3a wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_modify_ds_location(). 2010-04-19 14:55:24 +02:00
Henri Verbeet ae46589f53 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_load_ds_location(). 2010-04-19 14:55:19 +02:00
Henri Verbeet 10c5a8ac9e wined3d: Get rid of "myDevice". 2010-04-19 14:55:13 +02:00
Henri Verbeet 738ca2f5fc wined3d: Allow offscreen depth/stencil clears again with FBOs.
This fixes a regression introduced by 10f58c14bc.
2010-04-16 16:24:40 +02:00
Roderick Colenbrander 3b993117c3 wined3d: Separate AMD GPUs in D3D9 and D3D10 models, this allows for a more correct fall back when the GPU table isn't up to date.
D3D10_CAPABLE should work on any AMD OpenGL 3.0 driver (those came out in september 2008) and on OSX 10.5 and up.
2010-04-16 12:38:21 +02:00
Roderick Colenbrander 057c64c5b0 wined3d: Separate AMD Radeon HD2300 from other HD2xxx/HD3xxx GPUs since it is D3D9 instead of D3D10. 2010-04-16 12:38:18 +02:00
Henri Verbeet f6e923b55d wined3d: Remove some dead code from IWineD3DDeviceImpl_Uninit3D(). 2010-04-16 12:09:48 +02:00
Henri Verbeet da1b459754 wined3d: Store the depth/stencil attachment as IWineD3DSurfaceImpl pointer in struct fbo_entry. 2010-04-16 12:09:45 +02:00
Henri Verbeet be993fc49f wined3d: Store render target attachments as IWineD3DSurfaceImpl pointers in struct fbo_entry. 2010-04-16 12:09:42 +02:00
Henri Verbeet 24c93d48aa wined3d: Simply pass an IWineD3DSurfaceImpl pointer to context_attach_depth_stencil_fbo(). 2010-04-16 12:09:39 +02:00
Henri Verbeet 95130a7d5e wined3d: Simply pass an IWineD3DSurfaceImpl pointer to context_attach_surface_fbo(). 2010-04-16 12:09:36 +02:00
Henri Verbeet 870b3cb40b wined3d: Simply pass an IWineD3DSurfaceImpl pointer to context_apply_attachment_filter_states(). 2010-04-16 12:09:32 +02:00
Henri Verbeet bc2850a587 wined3d: Get rid of the width and height parameters to surface_upload_data(). 2010-04-16 12:09:27 +02:00
Henri Verbeet 212bfab2df wined3d: Get rid of the width and height parameters to surface_allocate_surface(). 2010-04-16 12:09:23 +02:00
Henri Verbeet 7f6ab3c06e wined3d: The currentDesc and pow2 width/height are the same for power of two textures. 2010-04-16 12:09:19 +02:00
Henri Verbeet 65797d7f75 wined3d: Get rid of glRect from IWineD3DSurfaceImpl.
604caf0caa supposedly removed the "oversized
texture" code, but this was still left over.
2010-04-16 12:09:14 +02:00
Roderick Colenbrander bf58d81968 wined3d: Remove paletteOverride from BltOverride offscreen->render_target blit.
This code was needed when the destination uses 8-bit and the source lacked a palette.
Since we don't allow destination fixups, this code doesn't do anything. At a later
stage something like this should perhaps be readded to specific backends.
2010-04-15 17:03:59 +02:00
Roderick Colenbrander 4cb6255907 wined3d: We don't need color keying for sysmem->drawable uploads. 2010-04-15 17:03:52 +02:00
Roderick Colenbrander 2a949ec323 wined3d: Remove call to d3dfmt_get_conv from read_from_framebuffer_texture. 2010-04-15 17:03:49 +02:00
Roderick Colenbrander 1a61f46bbb wined3d: Remove temporary conv_byte_count fixup from d3dfmt_get_conv. 2010-04-15 17:03:47 +02:00
Roderick Colenbrander bccfd7cc06 wined3d: Add BLT_OP_COLOR_FILL to blit_supported and use it in BltOverride. 2010-04-15 14:20:48 +02:00
Roderick Colenbrander 10f58c14bc wined3d: Improve FBO support in ClearSurface. 2010-04-15 14:20:40 +02:00
Roderick Colenbrander bf73d23d95 wined3d: Separate detection of D3D10+ and D3D9 Nvidia GPUs. 2010-04-14 18:00:47 +02:00
Roderick Colenbrander 4c87bc0c41 wined3d: Move A4L4 conversion to the formats table. 2010-04-14 18:00:47 +02:00
Roderick Colenbrander cda78c01e6 wined3d: Move G16R16/R16G16F conversion to the formats table. 2010-04-14 18:00:47 +02:00
Henri Verbeet 43e89cb981 wined3d: Prune unsupported world matrix transform states. 2010-04-13 21:13:54 +02:00
Henri Verbeet 71d484303a wined3d: We always support at least a single modelview matrix. 2010-04-13 21:13:50 +02:00
Henri Verbeet 8eb2a2cf0c wined3d: Disable strict draw ordering by default.
While some performance hit from the extra flushes was expected and would be
acceptable, the performance hit can be over 50% on some configurations, which
clearly isn't acceptable. This patch introduces a "StrictDrawOrdering"
registry key for applications affected by this, until we have a more
structural solution.
2010-04-13 21:13:36 +02:00
Henri Verbeet ab80e9739c wined3d: Add a separate function for palette initialization. 2010-04-13 21:13:26 +02:00
Henri Verbeet d1d8c81439 wined3d: Add a separate function for rendertarget view initialization. 2010-04-13 21:13:21 +02:00