[PATCH 2/4] wined3d: Prepare/load the destination resource location in glsl_blitter_blit().

Henri Verbeet hverbeet at codeweavers.com
Thu May 28 13:02:16 CDT 2020

From: Paul Gofman <pgofman at codeweavers.com>

Like the other blitters. When the GLSL blitter was introduced, the idea was
that caller would be responsible for doing this, but we never ended up
updating the other blitters.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49251
Signed-off-by: Paul Gofman <pgofman at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
This supersedes patch 185896.

 dlls/wined3d/glsl_shader.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 7d16f03a219..ddb76143b5c 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -13135,6 +13135,11 @@ static DWORD glsl_blitter_blit(struct wined3d_blitter *blitter, enum wined3d_bli
         wined3d_texture_load(src_texture, context, FALSE);
+    if (wined3d_texture_is_full_rect(dst_texture, dst_sub_resource_idx % dst_texture->level_count, dst_rect))
+        wined3d_texture_prepare_location(dst_texture, dst_sub_resource_idx, context, dst_location);
+    else
+        wined3d_texture_load_location(dst_texture, dst_sub_resource_idx, context, dst_location);
     wined3d_context_gl_apply_blit_state(context_gl, device);
     if (dst_location == WINED3D_LOCATION_DRAWABLE)

More information about the wine-devel mailing list