Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature CSMT enable check box in winecfg #3

Closed
wants to merge 178 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
178 commits
Select commit Hold shift + click to select a range
c43584d
wined3d: Merge get_pitch functions.
stefand Sep 19, 2013
ee57416
wined3d: Pass a context to surface_load_sysmem.
stefand Nov 17, 2013
b31578c
wined3d: Pass a context to read_from_framebuffer.
stefand Nov 17, 2013
c31740d
wined3d: Pass a context to surface_load_drawable and surface_blt_to_d…
stefand Nov 17, 2013
076ffec
wined3d: Pass a context to surface_blt_fbo.
stefand Nov 17, 2013
3274381
wined3d: Pass a context to surface_multisample_resolve.
stefand Nov 17, 2013
ab38b6f
wined3d: Pass a context to surface_load_texture.
stefand Nov 17, 2013
3250f34
wined3d: Pass a context to surface_load_location.
stefand Nov 17, 2013
99aebeb
wined3d: Make surface_load_location return nothing.
stefand Nov 17, 2013
85995e4
wined3d: Store volume locations in the resource.
stefand Oct 3, 2013
6faf995
wined3d: Move validate_location to resource.c.
stefand Oct 3, 2013
b54e3ea
wined3d: Move surface locations into the resource.
stefand Jan 21, 2014
966751f
wined3d: Remove surface_validate_location.
stefand Jan 3, 2014
0dbd6a8
wined3d: Move invalidate_location to resource.c.
stefand Oct 3, 2013
9b559df
wined3d: Invalidate containers via callback.
stefand Nov 17, 2013
ead3547
wined3d: Remove surface_invalidate_location.
stefand Jan 4, 2014
1e7ea96
wined3d: Move bitmap_data and user_memory into the resource.
stefand Jan 16, 2014
fa80b9d
wined3d: Move load_location into the resource.
stefand Oct 3, 2013
073f901
wined3d: Replace surface_load_location with resource_load_location.
stefand Nov 17, 2013
9be9dd0
wined3d: Introduce helper functions for mapping volumes.
stefand Sep 18, 2013
8ac5407
wined3d: Move volume PBO infrastructure into the resource.
stefand Jan 16, 2014
898a6b2
wined3d: Remove surface->pbo.
stefand Jan 21, 2014
4b5cf6d
wined3d: Use resource buffer mapping facilities in surfaces.
stefand Jan 21, 2014
92c7870
wined3d: Move buffer creation into the resource.
stefand Sep 18, 2013
ad670c7
wined3d: Handle WINED3D_LOCATION_DISCARDED in surface_load_texture.
stefand Sep 19, 2013
1666fda
wined3d: Handle LOCATION_DISCARDED in surface_load_drawable.
stefand Sep 19, 2013
f3b3f74
wined3d: Handle WINED3D_LOCATION_DISCARDED for sysmem loads.
stefand Sep 19, 2013
fb06a71
wined3d: Discard implicit surfaces on unload.
stefand Jan 4, 2014
9316f4e
wined3d: Don't try to flip sysmem copies in swapchain_present.
stefand Sep 19, 2013
fa2879d
wined3d: Discard the backbuffer in discard presents.
stefand Sep 19, 2013
1bcf886
wined3d: Allocate sysmem for client storage if it doesn't exist already.
stefand Sep 16, 2013
4c927ce
wined3d: Introduce a function to retrieve resource memory.
stefand Sep 16, 2013
57c3ba2
wined3d: Make surface_ops->unmap specific for front buffers.
stefand Sep 19, 2013
a354a4d
wined3d: Move check_block_align to resource.c
stefand Sep 19, 2013
ab2fc77
wined3d: Replace surface alloc functions with resource ones.
stefand Jan 21, 2014
6935906
wined3d: Don't delete the buffer in surface_cleanup.
stefand Jan 21, 2014
4c279f3
wined3d: Use resource facilities to destroy PBOs.
stefand Jan 21, 2014
738b062
wined3d: Move simple location copying to the resource.
stefand Jan 21, 2014
ab2e963
wined3d: Move most of volume_map to resource.c
stefand Sep 19, 2013
753ca20
wined3d: Use resource_map for surface_map.
stefand Sep 19, 2013
9c89d12
wined3d: Use client storage with DIB sections.
stefand Jan 21, 2014
9a7fd2f
wined3d: Don't call the public map function in surface_convert_format.
stefand Sep 23, 2013
f7fb5c6
wined3d: Don't call the public map function in surface_cpu_blt.
stefand Sep 23, 2013
6b6898b
wined3d: Move the framebuffer into wined3d_state
stefand Dec 20, 2012
abbb7a0
wined3d: Get rid of state access in shader_generate_glsl_declarations
stefand Dec 20, 2012
9958107
wined3d: Preload buffers if streamsrc is not dirty
stefand Jul 7, 2013
fb1c648
wined3d: Hackily introduce a multithreaded command stream
stefand Oct 1, 2013
cc4c66b
wined3d: Wait for resource updates to finish when using the multithre…
Dec 8, 2012
3ca0b79
wined3d: Don't store pointers in struct wined3d_cs_present
stefand Mar 12, 2013
257833e
wined3d: Don't put rectangle pointers into wined3d_cs_clear
stefand Apr 2, 2013
df2cb1d
wined3d: Store the color in clear ops instead of a pointer
stefand Apr 2, 2013
383ce22
wined3d: Pass the state to draw_primitive
stefand Apr 2, 2013
8f13ec4
wined3d: Wait for the cs before destroying objects
stefand Apr 3, 2013
0f13571
wined3d: Give the cs its own state
stefand Oct 1, 2013
7fab01d
wined3d: Send float constant updates through the command stream
stefand Aug 20, 2013
fd4e443
wined3d: Request a glFinish before modifying resources outside the cs
stefand Apr 4, 2013
049b36a
wined3d: Finish the cs before changing the texture lod
stefand Apr 10, 2013
1be8f5c
wined3d: Don't call glFinish after clears
stefand Apr 4, 2013
a800a1d
wined3d: Don't call glFinish after draws
stefand Apr 4, 2013
3ac29d5
wined3d: Shadow device->offscreenBuffer in the context
stefand Apr 4, 2013
c18d0ef
wined3d: Don't access the stateblock in find_draw_buffers_mask
stefand Apr 4, 2013
d559964
wined3d: Pass the depth stencil to swapchain->present
stefand Apr 4, 2013
ff642ce
wined3d: Don't store viewport pointers in the command stream.
stefand Apr 5, 2013
40f80e6
wined3d: Keep track of the onscreen depth stencil in the command stre…
stefand Apr 5, 2013
1eebf00
wined3d: Send base vertex index updates through the cs
stefand Apr 7, 2013
cfbd8b4
wined3d: Send primitive type updates through the command stream
stefand Apr 7, 2013
12fc236
wined3d: Send bool constant updates through the command stream
stefand Apr 9, 2013
1e6aed6
wined3d: Send int constant updates through the command stream
stefand Apr 10, 2013
6354f35
wined3d: Send light updates through the command stream
stefand Apr 10, 2013
eab4f7e
wined3d: Prevent the command stream from running ahead too far
stefand Apr 10, 2013
3c6a42e
wined3d: Wait for the cs to finish before destroying the device
stefand Apr 10, 2013
7c99fa8
wined3d: Run the cs asynchronously
stefand Apr 10, 2013
2761b96
wined3d: Send blits through the command stream.
stefand Apr 29, 2013
c1f61f6
wined3d: Put update_surface checks back in place
stefand Aug 20, 2014
806fe2c
wined3d: Get rid of WINED3D_BUFFER_FLUSH
stefand May 7, 2013
97e9b6c
wined3d: Don't force strict draw ordering for multithreaded CS
stefand Jul 4, 2013
9239ea9
wined3d: Send render target view clears through the command stream
stefand Jul 4, 2013
bf5cfa9
wined3d: Wait for the CS in GetDC.
stefand Sep 26, 2013
d651d0c
wined3d: send resource maps through the command stream
stefand Sep 26, 2013
294ce15
wined3d: Get rid of the end_scene flush and finish
stefand Jul 4, 2013
433a960
wined3d: Replace the linked lists with a ringbuffer
stefand Jul 4, 2013
216f12b
wined3d: Don't preload buffers on unmap
stefand Jul 4, 2013
9d36096
wined3d: Don't call glFinish before swapping
stefand Jul 4, 2013
ae1b54f
wined3d: wined3d_*_query_issue never fails
stefand Jul 6, 2013
89544b1
wined3d: Add query support to the command stream
stefand Jul 6, 2013
86362f3
wined3d: Check our CS state to find out if a query is done
stefand Jul 6, 2013
4fccb21
wined3d: Poll queries automatically in the CS
stefand Jul 6, 2013
4c7f8a5
wined3d: Introduce a separate queue for priority commands
stefand Jul 6, 2013
34c63f7
wined3d: Destroy queries through the CS
stefand Jul 6, 2013
11e9ff0
wined3d: Separate main and worker thread query state
stefand Jul 24, 2013
1c474af
wined3d: Don't poll queries that failed to start
stefand Jul 24, 2013
431ca5f
wined3d: Remove restated queries from the poll list
stefand Jul 24, 2013
77dd361
wined3d: Don't reset the query state if it doesn't have a ctx
stefand Aug 5, 2013
8a00200
wined3d: Put this into the query poll patch
stefand Aug 30, 2013
e636bde
wined3d: Send update_surface commands through the CS
stefand Jul 31, 2013
a8a3199
wined3d: Send texture preloads through the CS
stefand Jul 31, 2013
ed94253
wined3d: Send surface preloads through the CS
stefand Jul 31, 2013
3221897
wined3d: Send update_texture calls through the CS
stefand Jul 31, 2013
cbd4de4
wined3d: Get rid of the surface_upload_data glFinish
stefand Jul 31, 2013
9b7d069
wined3d: Don't lock the src volume in device_update_volume
stefand Aug 29, 2013
ac72507
wined3d: Handle evit_managed_resources through the CS
stefand Aug 6, 2013
842b4b4
wined3d: Send flips through the command stream
stefand Aug 6, 2013
0784a5d
wined3d: Introduce resource fencing.
stefand Aug 20, 2014
5894f9f
wined3d: Fence update_texture and update_surface calls
stefand Aug 30, 2013
9be7e26
wined3d: Dirtify resources on unmap
stefand Sep 26, 2013
188067c
wined3d: Fence texture reads in draws
stefand Aug 30, 2013
a24791e
wined3d: Fence render targets and depth stencils
stefand Sep 27, 2013
ec27b47
wined3d: Fence blit operations.
stefand Sep 27, 2013
8f499af
wined3d: Fence color_fill operations.
stefand Sep 27, 2013
c65d923
wined3d: Fence clear calls.
stefand Sep 27, 2013
395d6c7
wined3d: Fence present calls.
stefand Sep 27, 2013
ccbdcdd
wined3d: Make resource maps and unmaps a priority command.
stefand Sep 27, 2013
2c69ae7
wined3d: Dirtify changed textures through the command stream.
stefand Sep 27, 2013
3b73274
wined3d: Wrap GL BOs in a structure
stefand Aug 30, 2013
089ed6d
wined3d: Separate resource map and draw buffers
stefand Aug 30, 2013
cb69f21
wined3d: Implement DISCARD resource maps with buffers.
stefand Sep 27, 2013
00963a9
wined3d: Implement DISCARD resource maps with heap memory.
stefand Sep 27, 2013
9e3d58e
wined3d: Unset some objects in state_init_default.
stefand Oct 1, 2013
b9dca75
wined3d: Don't request the frontbuffer to create dummy textures.
stefand Oct 2, 2013
028c160
wined3d: Use double-buffered buffers for multithreaded CS
stefand Jul 4, 2013
31bcb7b
wined3d: Don't synchronize NOOVERWRITE buffer maps
stefand Jul 4, 2013
6744f5f
wined3d: Separate buffer map write and draw read memory pointers
stefand Jul 6, 2013
b6bff1d
wined3d: Accelerate DISCARD buffer maps
stefand Jul 6, 2013
1abc21d
wined3d: Accelerate READONLY buffer maps
stefand Jul 6, 2013
8a3ed59
wined3d: Access the buffer dirty areas through the CS
stefand Jul 6, 2013
f1a9c65
wined3d: Ignore buffer->resource.map_count in the CS
stefand Jul 6, 2013
3a64190
wined3d: Send buffer preloads through the CS
stefand Jul 7, 2013
ddeb1f3
wined3d: Use glBufferSubData instead of glMapBufferRange
stefand Jul 24, 2013
22a4220
wined3d: Separate GL buffer discard control from ignoring MAP_DISCARD.
stefand Jul 30, 2013
e7f43df
wined3d: Create buffers before mapping them.
stefand Aug 29, 2013
dc3a3dc
wined3d: Destroy views through the CS.
stefand Aug 21, 2014
b940ceb
wined3d: Remove another glFinish
stefand Jul 6, 2013
5380908
wined3d: Destroy vertex declarations through the CS
stefand Jul 31, 2013
68fd636
wined3d: Destroy shaders through the CS
stefand Jul 31, 2013
966b565
wined3d: Create VBOs through the command stream.
stefand Oct 2, 2013
8ed2f62
wined3d: Clean up resource data through the CS.
stefand Oct 2, 2013
d04dc59
wined3d: Clean up buffer resource data through the CS.
stefand Oct 2, 2013
d4cc1b8
wined3d: Clean up volume resource data through the CS.
stefand Oct 2, 2013
a80c5ab
wined3d: Clean up surfaces through the cs.
stefand Oct 6, 2013
dd17f56
wined3d: Clean up texture resources through the cs.
stefand Oct 6, 2013
f12456e
wined3d: Unload resources through the CS in uninit_3d.
stefand Oct 2, 2013
f63c212
wined3d: Unload resources through the CS in device_reset.
stefand Oct 2, 2013
da1f904
wined3d: Don't glFinish after a depth buffer blit.
stefand Oct 3, 2013
867a85d
wined3d: Remove software cursor support.
stefand Oct 3, 2013
efb48eb
wined3d: Create dummy textures through the CS.
stefand Oct 10, 2013
1d4e557
wined3d: Create the initial context through the CS.
stefand Oct 10, 2013
1b80c33
wined3d: Recreate ctx and dummy textures through the CS after resets.
stefand Oct 10, 2013
868b38d
wined3d: Ignore WINED3D_MAP_NO_DIRTY_UPDATE in resource_map.
stefand Oct 10, 2013
c321d59
wined3d: Delete GL contexts through the CS in reset.
stefand Oct 11, 2013
a7511df
wined3d: Delete GL contexts through the CS in uninit_3d.
stefand Oct 11, 2013
27809fa
wined3d: Invoke surface_unload through the CS in wined3d_surface_upda…
stefand Oct 11, 2013
d7e4ee2
wined3d: Use an event to block the worker thread when it is idle.
stefand Oct 24, 2013
6d90115
wined3d: Fence preload operations.
stefand Oct 24, 2013
180e850
d3d8/tests: D3DLOCK_NO_DIRTY_UPDATE on managed textures is temporaril…
stefand Nov 20, 2013
399c124
d3d9/tests: D3DLOCK_NO_DIRTY_UPDATE on managed textures is temporaril…
stefand Nov 20, 2013
d23312f
wined3d: Completely reset the state on reset.
stefand Jan 10, 2014
e1f26d9
wined3d: Send getdc and releasedc through the command stream.
stefand Mar 16, 2014
2a1ca86
wined3d: Set map_heap_memory = NULL when allocating a PBO.
stefand Jun 5, 2014
720633f
wined3d: Wait only for the buffer to be idle.
stefand Aug 22, 2014
f7df653
wined3d: Add a comment about worker thread lag.
stefand Aug 25, 2014
afa4b46
wined3d: Remove the texture destroy glFinish.
stefand Aug 28, 2014
00223ad
wined3d: Move FBO destruction into the worker thread.
stefand Aug 28, 2014
2c4a129
wined3d: Don't incref / decref textures in color / depth fill blits.
stefand Aug 28, 2014
07add40
Winex11: complain about glfinish
stefand Aug 29, 2014
d50b009
wined3d: Make sure the new window is set up before setting up a context.
stefand Aug 29, 2014
e8a5000
wined3d: Remove the device_reset CS sync fixme.
stefand Aug 29, 2014
19ec1fe
wined3d: Put GL_APPLE_flush_buffer_range syncing back in place.
stefand Aug 29, 2014
76bbbfc
wined3d: Wait for the resource to be idle when destroying user memory…
stefand Sep 3, 2014
229face
wined3d: Don't sync on redundant discard calls.
stefand Sep 8, 2014
7945a3c
wined3d: Don't discard new buffers.
stefand Sep 8, 2014
17d47ee
wined3d: Don't try to sync VBOs manually on OSX with CSMT.
stefand Sep 8, 2014
c96b332
wined3d: Render target lock hack
stefand Sep 23, 2014
2f450ea
wined3d: Avoid calling wined3d_surface_blt() from surface_upload_from…
Sep 12, 2014
0ab2606
wined3d: Only discard buffers that are in use.
stefand Jan 16, 2015
0d35357
wined3d: Destroy samplers through the command stream.
stefand Aug 27, 2015
8704489
wined3d: Hack to reject unsupported color fills.
stefand Aug 27, 2015
9701081
wined3d: Alloc the buffer map array before mapping the buffer.
stefand Aug 27, 2015
5e990fa
wined3d: Send update_sub_resource calls through the command stream.
stefand Sep 4, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion dlls/d3d8/tests/visual.c
Original file line number Diff line number Diff line change
Expand Up @@ -5408,7 +5408,7 @@ static void add_dirty_rect_test(void)
fill_surface(surface_managed, 0x0000ff00, D3DLOCK_NO_DIRTY_UPDATE);
add_dirty_rect_test_draw(device);
color = getPixelColor(device, 320, 240);
ok(color_match(color, 0x00ff0000, 1),
todo_wine ok(color_match(color, 0x00ff0000, 1),
"Expected color 0x00ff0000, got 0x%08x.\n", color);
hr = IDirect3DDevice8_Present(device, NULL, NULL, NULL, NULL);
ok(SUCCEEDED(hr), "Failed to present, hr %#x.\n", hr);
Expand Down
4 changes: 2 additions & 2 deletions dlls/d3d9/tests/visual.c
Original file line number Diff line number Diff line change
Expand Up @@ -1164,7 +1164,7 @@ static void color_fill_test(void)
* result on Wine.
* {D3DFMT_YUY2, "D3DFMT_YUY2", BLOCKS, 0},
* {D3DFMT_UYVY, "D3DFMT_UYVY", BLOCKS, 0}, */
{D3DFMT_DXT1, "D3DFMT_DXT1", BLOCKS | TODO_FILL_RETURN, 0},
{D3DFMT_DXT1, "D3DFMT_DXT1", BLOCKS, 0},
/* Vendor-specific formats like ATI2N are a non-issue here since they're not
* supported as offscreen plain surfaces and do not support D3DUSAGE_RENDERTARGET
* when created as texture. */
Expand Down Expand Up @@ -17304,7 +17304,7 @@ static void add_dirty_rect_test(void)
fill_surface(surface_managed, 0x0000ff00, D3DLOCK_NO_DIRTY_UPDATE);
add_dirty_rect_test_draw(device);
color = getPixelColor(device, 320, 240);
ok(color_match(color, 0x00ff0000, 1),
todo_wine ok(color_match(color, 0x00ff0000, 1),
"Expected color 0x00ff0000, got 0x%08x.\n", color);
hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
ok(SUCCEEDED(hr), "Failed to present, hr %#x.\n", hr);
Expand Down
12 changes: 9 additions & 3 deletions dlls/ddraw/surface.c
Original file line number Diff line number Diff line change
Expand Up @@ -6237,6 +6237,10 @@ void ddraw_surface_init(struct ddraw_surface *surface, struct ddraw *ddraw, stru
DDSURFACEDESC2 *desc = &surface->surface_desc;
struct wined3d_resource_desc wined3d_desc;
unsigned int version = texture->version;
UINT row_pitch, slice_pitch;
struct wined3d_resource *resource = wined3d_surface_get_resource(wined3d_surface);

wined3d_resource_get_pitch(resource, &row_pitch, &slice_pitch);

surface->IDirectDrawSurface7_iface.lpVtbl = &ddraw_surface7_vtbl;
surface->IDirectDrawSurface4_iface.lpVtbl = &ddraw_surface4_vtbl;
Expand Down Expand Up @@ -6267,7 +6271,7 @@ void ddraw_surface_init(struct ddraw_surface *surface, struct ddraw *ddraw, stru
}

*desc = texture->surface_desc;
wined3d_resource_get_desc(wined3d_surface_get_resource(wined3d_surface), &wined3d_desc);
wined3d_resource_get_desc(resource, &wined3d_desc);
desc->dwWidth = wined3d_desc.width;
desc->dwHeight = wined3d_desc.height;
surface->first_attached = surface;
Expand All @@ -6277,14 +6281,16 @@ void ddraw_surface_init(struct ddraw_surface *surface, struct ddraw *ddraw, stru
if (desc->dwFlags & DDSD_LPSURFACE)
desc->u1.dwLinearSize = ~0u;
else
desc->u1.dwLinearSize = wined3d_surface_get_pitch(wined3d_surface) * ((desc->dwHeight + 3) / 4);
{
desc->u1.dwLinearSize = row_pitch * ((desc->dwHeight + 3) / 4);
}
desc->dwFlags |= DDSD_LINEARSIZE;
desc->dwFlags &= ~(DDSD_LPSURFACE | DDSD_PITCH);
}
else
{
if (!(desc->dwFlags & DDSD_LPSURFACE))
desc->u1.lPitch = wined3d_surface_get_pitch(wined3d_surface);
desc->u1.lPitch = row_pitch;
desc->dwFlags |= DDSD_PITCH;
desc->dwFlags &= ~(DDSD_LPSURFACE | DDSD_LINEARSIZE);
}
Expand Down
14 changes: 8 additions & 6 deletions dlls/wined3d/arb_program_shader.c
Original file line number Diff line number Diff line change
Expand Up @@ -684,7 +684,7 @@ static void shader_arb_load_constants_internal(struct shader_arb_priv *priv,
{
const struct wined3d_shader *pshader = state->shader[WINED3D_SHADER_TYPE_PIXEL];
const struct arb_ps_compiled_shader *gl_shader = priv->compiled_fprog;
UINT rt_height = state->fb->render_targets[0]->height;
UINT rt_height = state->fb.render_targets[0]->height;

/* Load DirectX 9 float constants for pixel shader */
priv->highest_dirty_ps_const = shader_arb_load_constantsF(pshader, gl_info, GL_FRAGMENT_PROGRAM_ARB,
Expand Down Expand Up @@ -4712,7 +4712,7 @@ static void shader_arb_select(void *shader_priv, struct wined3d_context *context
}
else
{
UINT rt_height = state->fb->render_targets[0]->height;
UINT rt_height = state->fb.render_targets[0]->height;
shader_arb_ps_local_constants(compiled, context, state, rt_height);
}

Expand Down Expand Up @@ -7849,7 +7849,7 @@ static void arbfp_blit_surface(struct wined3d_device *device, DWORD filter,

/* Now load the surface */
if (wined3d_settings.offscreen_rendering_mode != ORM_FBO
&& (src_surface->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_DRAWABLE))
&& (src_surface->resource.locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_DRAWABLE))
== WINED3D_LOCATION_DRAWABLE
&& !wined3d_resource_is_offscreen(&src_surface->container->resource))
{
Expand Down Expand Up @@ -7879,15 +7879,17 @@ static void arbfp_blit_surface(struct wined3d_device *device, DWORD filter,
/* Leave the opengl state valid for blitting */
arbfp_blit_unset(context->gl_info);

if (wined3d_settings.strict_draw_ordering
if (wined3d_settings.cs_multithreaded)
context->gl_info->gl_ops.gl.p_glFinish();
else if (wined3d_settings.strict_draw_ordering
|| (dst_surface->container->swapchain
&& (dst_surface->container->swapchain->front_buffer == dst_surface->container)))
context->gl_info->gl_ops.gl.p_glFlush(); /* Flush to ensure ordering across contexts. */

context_release(context);

surface_validate_location(dst_surface, dst_surface->container->resource.draw_binding);
surface_invalidate_location(dst_surface, ~dst_surface->container->resource.draw_binding);
wined3d_resource_validate_location(&dst_surface->resource, dst_surface->container->resource.draw_binding);
wined3d_resource_invalidate_location(&dst_surface->resource, ~dst_surface->container->resource.draw_binding);
}

static HRESULT arbfp_blit_color_fill(struct wined3d_device *device, struct wined3d_surface *dst_surface,
Expand Down
Loading