Commit Graph

1719 Commits

Author SHA1 Message Date
Paul Gofman a73a892f46 wined3d: Use software decompression for converting from compressed format.
The motivation under this is not just supporting conversion between
compressed formats. Currently fallback CPU blitter cannot convert
from DXTn formats at all, this patch allows for that if software
decompression function is available.

Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-11 20:01:40 +01:00
Henri Verbeet 810ae882f0 wined3d: Handle typeless formats in surface_cpu_blt().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-24 17:32:13 +02:00
Henri Verbeet c2f0ae50b4 wined3d: Use explicit flushing in wined3d_context_gl_unmap_bo_address().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-23 19:44:17 +02:00
Henri Verbeet 2bc6941ab0 wined3d: Derive the GL bind point for buffer object maps from the bind flags.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-23 19:44:17 +02:00
Alex Henrie 6c40c2dab2 wined3d: Avoid dead assignment (scan-build).
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-20 15:31:23 +02:00
Henri Verbeet af8401ba0c wined3d: Introduce WINED3D_TEXTURE_DOWNLOADABLE.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-19 14:12:49 +02:00
Henri Verbeet 400a0dcc8b wined3d: Map/unmap bo addresses through the adapter.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-16 10:09:04 +02:00
Henri Verbeet 3de4515c18 wined3d: Implement 3D texture clears in surface_cpu_blt_colour_fill().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-15 20:17:09 +02:00
Henri Verbeet 0a0ab960fb wined3d: Set WINED3D_BLT_RAW for raw blits in cpu_blitter_blit().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-15 20:17:07 +02:00
Matteo Bruni 493f4098c6 wined3d: Allow cross-swapchain blits in the supported cases.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-14 14:30:48 +02:00
Matteo Bruni cdacbd9850 wined3d: Get rid of surface_blt_special() fallback in wined3d_surface_blt().
It turns out it was actually dead code. The last remaining caller was
the cross-swapchain blit case but surface_blt_special() actually
rejected those (or any swapchain to swapchain blit).

Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-14 14:30:43 +02:00
Matteo Bruni b3bf2c4f26 wined3d: Clean up fallback paths in wined3d_surface_blt().
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-14 14:30:39 +02:00
Henri Verbeet 74b9ef2c1d wined3d: Move the "gl_info" field from struct wined3d_context to struct wined3d_context_gl.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-07 19:56:16 +02:00
Henri Verbeet bed677e343 wined3d: Move the "desc" field from struct wined3d_swapchain to struct wined3d_swapchain_state.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-31 08:30:11 +02:00
Henri Verbeet 96a0a54c52 wined3d: Acquire front-buffer contexts when blitting to the drawable in texture2d_blt_fbo().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-31 08:29:29 +02:00
Henri Verbeet 1f8a3b04b9 wined3d: Move texture2d_load_renderbuffer() to texture.c.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-25 08:27:21 +02:00
Henri Verbeet 7fae37c0e1 wined3d: Move texture2d_load_drawable() to texture.c.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-24 10:08:27 +02:00
Henri Verbeet f89a303bcb wined3d: Pass a wined3d_context_gl structure to context_draw_textured_quad().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-20 08:47:29 +02:00
Henri Verbeet c4ba02aac4 wined3d: Use texture2d_load_texture() in texture1d_load_location().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-19 10:26:16 +02:00
Henri Verbeet 410cf7d24c wined3d: Use texture2d_load_sysmem() in texture1d_load_location().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-17 20:47:46 +02:00
Henri Verbeet 2d36c1c253 wined3d: Upload texture data through the texture ops in surface_convert_format().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-12 16:11:38 +02:00
Henri Verbeet ed9a6a2d67 wined3d: Pass a wined3d_context_gl structure to wined3d_texture_prepare_texture().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-12 16:11:30 +02:00
Henri Verbeet e3d28cd45d wined3d: Pass a wined3d_context_gl structure to context_unmap_bo_address().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-12 16:11:28 +02:00
Henri Verbeet fd29561e97 wined3d: Pass a wined3d_context_gl structure to context_map_bo_address().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-11 09:46:13 +02:00
Henri Verbeet e0d9bc3a87 wined3d: Move the "valid" field from struct wined3d_context to struct wined3d_context_gl.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-06 15:30:33 +02:00
Henri Verbeet 6937b98700 wined3d: Make the adapter responsible for acquiring and releasing contexts.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-05 16:44:45 +02:00
Henri Verbeet de035b71ab wined3d: Move the WGL fields from struct wined3d_context to struct wined3d_context_gl.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-03 22:33:30 +02:00
Henri Verbeet 916bd0e4c2 wined3d: Use wined3d_texture_get_level_box() in texture2d_load_texture().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-20 12:20:43 +02:00
Henri Verbeet 74ed5d722f wined3d: Pass a wined3d_context_gl structure to context_get_offscreen_gl_buffer().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-20 12:20:36 +02:00
Henri Verbeet 9cb572cb70 wined3d: Pass a wined3d_context_gl structure to context_set_draw_buffer().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-15 19:26:25 +02:00
Henri Verbeet 49889f72d7 wined3d: Pass a wined3d_context_gl structure to context_check_fbo_status().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-15 19:26:22 +02:00
Henri Verbeet 907b2a3333 wined3d: Pass a wined3d_context_gl structure to context_apply_fbo_state_blit().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-15 19:26:20 +02:00
Henri Verbeet 77bc74c637 wined3d: Pass a wined3d_context_gl structure to wined3d_texture_gl_bind_and_dirtify().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-09 10:01:53 -05:00
Henri Verbeet d29f0545b2 wined3d: Pass a wined3d_context_gl structure to context_apply_ffp_blit_state().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-09 10:01:48 -05:00
Henri Verbeet 54945f04de wined3d: Pass a wined3d_context_gl structure to context_apply_blit_state().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-09 10:01:44 -05:00
Henri Verbeet 6de1837955 wined3d: Pass a wined3d_context_gl structure to context_bind_texture().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-07 08:46:07 -05:00
Henri Verbeet a5279a5fba wined3d: Also update the "src_texture_gl" pointer when using a staging texture in the blitter.
Astutely spotted by Józef Kucia.
This fixes a regression introduced by commit
961a94ac04.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-27 22:09:04 +01:00
Henri Verbeet 7551f01bd0 wined3d: Do not take "draw_rect" into account when comparing attachment sizes in ffp_blitter_clear().
The scissor rectangle and viewport shouldn't affect whether attachment sizes
are equal. The Intel i965 driver will do a fast clear when the scissor
rectangle overlaps the intersection of the attachments, and that behaviour is
allowed by the OpenGL spec. This commit fixes failures in the d3d8 and d3d9
depth_buffer_test() tests on the Intel i965 driver.

See also commit 0530f33cc1.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-27 22:09:02 +01:00
Józef Kucia 5fc64a3057 wined3d: Remove unnecessary src_format NULL check from ffp_blit_supported().
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>
2019-02-12 23:02:28 +01:00
Józef Kucia e37b9c74f0 wined3d: Avoid potential out-of-bounds memory access in surface_cpu_blt_colour_fill().
Draw rects are derived from the current viewport. It is possible to produce a
clear operation with a draw rect which lies completely outside of one of render
targets in D3D9.

It seems that we never use the CPU blitter for D3D9 render target clears, so it
might not be a problem in practice.

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>
2019-01-17 16:14:05 +01:00
Józef Kucia 8a2583c7d9 wined3d: Limit surface_cpu_blt_colour_fill() to dimensions of render target view.
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>
2019-01-10 12:33:09 -06:00
Józef Kucia 0530f33cc1 wined3d: Split clears for different size resources in ffp_blitter_clear().
We cannot reliably clear attachments of different sizes using a single glClear()
command. The OpenGL spec says:

  "If the attachment sizes are not all identical, the results of rendering are
  defined only within the largest area that can fit in all of the attachments.
  This area is defined as the intersection of rectangles having a lower left of
  (0, 0) and an upper right of (width, height) for each attachment. Contents of
  attachments outside this area are undefined after execution of a rendering
  command (as defined in section 2.4)."

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46067
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>
2019-01-10 12:33:03 -06:00
Józef Kucia cd3c3e56b1 wined3d: Use accurate rt_count in ffp_blitter_clear().
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>
2019-01-10 12:32:58 -06:00
Henri Verbeet 926c554d94 wined3d: Get rid of the redundant WINED3D_TEXTURE_CREATE_MAPPABLE flag in surface_convert_format().
We already set WINED3D_RESOURCE_ACCESS_MAP_R | WINED3D_RESOURCE_ACCESS_MAP_W.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-23 20:17:44 +01:00
Paul Gofman 4aecfe2e05 wined3d: Don't pull _ACCESS_GPU textures to system memory in texture2d_blt().
The change introduced by commit 54a9e84952 had
side effect of ultimately selecting detsination texture location as
dst_texture->resource.map_binding, which is not the case in the default texture2d_blt()
code path.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46068
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-20 16:26:09 +01:00
Henri Verbeet 21f44e8fa6 wined3d: Prefer bind flags over usage flags in texture2d_load_sysmem().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-02 15:18:02 +01:00
Henri Verbeet eed05ad890 wined3d: Prefer bind flags over usage flags in texture2d_load_drawable().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-02 15:18:02 +01:00
Henri Verbeet 49af0e73f7 wined3d: Prefer bind flags over usage flags in texture2d_load_texture().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-02 15:18:02 +01:00
Henri Verbeet 43e7568666 wined3d: Prefer bind flags over usage flags in texture2d_load_renderbuffer().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-02 15:18:02 +01:00
Henri Verbeet 58b681e920 wined3d: Prefer bind flags over usage flags in ffp_blitter_clear().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-02 15:18:02 +01:00