diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index a1f0c95e..29e4cb85 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,13 +52,13 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "1576dc3dd26c7bbb2ed8eb68f11799f1f1d8b6a2" + echo "ac59a68162321610841ed072981adddb8bc78c56" } # Show version information version() { - echo "Wine Staging 2.0-rc4" + echo "Wine Staging 2.0-rc5 (unreleased)" echo "Copyright (C) 2014-2017 the Wine Staging project authors." echo "" echo "Patchset to be applied on upstream Wine:" diff --git a/patches/wined3d-CSMT_Main/0022-Revert-wined3d-Introduce-wined3d_buffer_load_locatio.patch b/patches/wined3d-CSMT_Main/0022-Revert-wined3d-Introduce-wined3d_buffer_load_locatio.patch index 60d40a8e..d781f8ba 100644 --- a/patches/wined3d-CSMT_Main/0022-Revert-wined3d-Introduce-wined3d_buffer_load_locatio.patch +++ b/patches/wined3d-CSMT_Main/0022-Revert-wined3d-Introduce-wined3d_buffer_load_locatio.patch @@ -1,23 +1,22 @@ -From cfef7146a768b0b511effedb4210165bf223b45c Mon Sep 17 00:00:00 2001 +From fca9ff8f28d69d45e2d109ab10bd3f1aaca01075 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Tue, 1 Nov 2016 15:06:52 +0100 Subject: Revert "wined3d: Introduce wined3d_buffer_load_location()." This reverts commit 645d3cac14b1303d0152ac6463586ce147c25b9c. --- - dlls/wined3d/buffer.c | 66 ++++++++---------------------------------- - dlls/wined3d/wined3d_private.h | 2 -- - 2 files changed, 12 insertions(+), 56 deletions(-) + dlls/wined3d/buffer.c | 66 ++++++++++----------------------------------------- + 1 file changed, 12 insertions(+), 54 deletions(-) diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c -index 912c4d6..fdd7e3b 100644 +index 658dfffad52..e2128159fef 100644 --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c @@ -564,67 +564,25 @@ static BOOL wined3d_buffer_prepare_location(struct wined3d_buffer *buffer, } } --BOOL wined3d_buffer_load_location(struct wined3d_buffer *buffer, +-static BOOL wined3d_buffer_load_location(struct wined3d_buffer *buffer, - struct wined3d_context *context, DWORD location) +/* Context activation is done by the caller. */ +BYTE *wined3d_buffer_load_sysmem(struct wined3d_buffer *buffer, struct wined3d_context *context) @@ -93,19 +92,6 @@ index 912c4d6..fdd7e3b 100644 return buffer->resource.heap_memory; } -diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index bf2f938..c5de837 100644 ---- a/dlls/wined3d/wined3d_private.h -+++ b/dlls/wined3d/wined3d_private.h -@@ -3185,8 +3185,6 @@ void buffer_mark_used(struct wined3d_buffer *buffer) DECLSPEC_HIDDEN; - void wined3d_buffer_invalidate_location(struct wined3d_buffer *buffer, DWORD location) DECLSPEC_HIDDEN; - void wined3d_buffer_load(struct wined3d_buffer *buffer, struct wined3d_context *context, - const struct wined3d_state *state) DECLSPEC_HIDDEN; --BOOL wined3d_buffer_load_location(struct wined3d_buffer *buffer, struct wined3d_context *context, -- DWORD location) DECLSPEC_HIDDEN; - BYTE *wined3d_buffer_load_sysmem(struct wined3d_buffer *buffer, struct wined3d_context *context) DECLSPEC_HIDDEN; - HRESULT wined3d_buffer_copy(struct wined3d_buffer *dst_buffer, unsigned int dst_offset, - struct wined3d_buffer *src_buffer, unsigned int src_offset, unsigned int size) DECLSPEC_HIDDEN; -- -2.9.0 +2.11.0 diff --git a/patches/wined3d-CSMT_Main/0024-Revert-wined3d-Explicitly-track-locations-for-buffer.patch b/patches/wined3d-CSMT_Main/0024-Revert-wined3d-Explicitly-track-locations-for-buffer.patch index a5ca029a..2150e104 100644 --- a/patches/wined3d-CSMT_Main/0024-Revert-wined3d-Explicitly-track-locations-for-buffer.patch +++ b/patches/wined3d-CSMT_Main/0024-Revert-wined3d-Explicitly-track-locations-for-buffer.patch @@ -1,4 +1,4 @@ -From 0e54dcb380c4e9e1db44ec4ed7fea7d2f64b408d Mon Sep 17 00:00:00 2001 +From ae72d8cea5d0ed657edb4824ff211584af3217fc Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Tue, 1 Nov 2016 15:45:08 +0100 Subject: Revert "wined3d: Explicitly track locations for buffers." @@ -7,18 +7,18 @@ This reverts commit 2a385e420a2bafd7ca868ae57428798bb941d0a2. --- dlls/wined3d/buffer.c | 79 ++++-------------------------------------- dlls/wined3d/device.c | 1 - - dlls/wined3d/wined3d_private.h | 3 -- - 3 files changed, 7 insertions(+), 76 deletions(-) + dlls/wined3d/wined3d_private.h | 2 -- + 3 files changed, 7 insertions(+), 75 deletions(-) diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c -index e119fa6..a35436b 100644 +index 0d1aa7e6a84..c6a58ead76f 100644 --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c @@ -93,46 +93,6 @@ static BOOL buffer_is_fully_dirty(const struct wined3d_buffer *buffer) && !buffer->maps->offset && buffer->maps->size == buffer->resource.size; } --void wined3d_buffer_validate_location(struct wined3d_buffer *buffer, DWORD location) +-static void wined3d_buffer_validate_location(struct wined3d_buffer *buffer, DWORD location) -{ - TRACE("buffer %p, location %s.\n", buffer, wined3d_debug_location(location)); - @@ -179,10 +179,10 @@ index e119fa6..a35436b 100644 TRACE("size %#x, usage %#x, format %s, memory @ %p, iface @ %p.\n", buffer->resource.size, buffer->resource.usage, debug_d3dformat(buffer->resource.format->id), buffer->resource.heap_memory, buffer); diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index cea5ad9..577b53c 100644 +index 7dbdc0aa1e2..9f34641be70 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c -@@ -3228,7 +3228,6 @@ HRESULT CDECL wined3d_device_process_vertices(struct wined3d_device *device, +@@ -3256,7 +3256,6 @@ HRESULT CDECL wined3d_device_process_vertices(struct wined3d_device *device, { GL_EXTCALL(glDeleteBuffers(1, &buffer->buffer_object)); buffer->buffer_object = 0; @@ -191,10 +191,10 @@ index cea5ad9..577b53c 100644 if (e->data.addr) e->data.addr += e->stride * src_start_idx; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index c956b0f..3ddee2d 100644 +index 78e3cd34f8d..e885d573c1d 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -3165,7 +3165,6 @@ struct wined3d_buffer +@@ -3232,7 +3232,6 @@ struct wined3d_buffer struct wined3d_map_range *maps; ULONG maps_size, modified_areas; @@ -202,7 +202,7 @@ index c956b0f..3ddee2d 100644 struct wined3d_event_query *query; /* conversion stuff */ -@@ -3184,7 +3183,6 @@ static inline struct wined3d_buffer *buffer_from_resource(struct wined3d_resourc +@@ -3251,7 +3250,6 @@ static inline struct wined3d_buffer *buffer_from_resource(struct wined3d_resourc void buffer_get_memory(struct wined3d_buffer *buffer, struct wined3d_context *context, struct wined3d_bo_address *data) DECLSPEC_HIDDEN; void buffer_mark_used(struct wined3d_buffer *buffer) DECLSPEC_HIDDEN; @@ -210,14 +210,6 @@ index c956b0f..3ddee2d 100644 void wined3d_buffer_load(struct wined3d_buffer *buffer, struct wined3d_context *context, const struct wined3d_state *state) DECLSPEC_HIDDEN; BYTE *wined3d_buffer_load_sysmem(struct wined3d_buffer *buffer, struct wined3d_context *context) DECLSPEC_HIDDEN; -@@ -3192,7 +3190,6 @@ HRESULT wined3d_buffer_copy(struct wined3d_buffer *dst_buffer, unsigned int dst_ - struct wined3d_buffer *src_buffer, unsigned int src_offset, unsigned int size) DECLSPEC_HIDDEN; - HRESULT wined3d_buffer_upload_data(struct wined3d_buffer *buffer, - const struct wined3d_box *box, const void *data) DECLSPEC_HIDDEN; --void wined3d_buffer_validate_location(struct wined3d_buffer *buffer, DWORD location) DECLSPEC_HIDDEN; - - struct wined3d_rendertarget_view - { -- -2.9.0 +2.11.0 diff --git a/patches/wined3d-CSMT_Main/0086-wined3d-Send-update_sub_resource-calls-through-the-c.patch b/patches/wined3d-CSMT_Main/0086-wined3d-Send-update_sub_resource-calls-through-the-c.patch index fe3115c6..b56b2398 100644 --- a/patches/wined3d-CSMT_Main/0086-wined3d-Send-update_sub_resource-calls-through-the-c.patch +++ b/patches/wined3d-CSMT_Main/0086-wined3d-Send-update_sub_resource-calls-through-the-c.patch @@ -1,4 +1,4 @@ -From 52b35f31cc613857f6131ea7662150ebba7f3a75 Mon Sep 17 00:00:00 2001 +From 5e80f20ef3a03723a10c8ad553d0ee5051e9a188 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Fri, 4 Sep 2015 15:22:49 +0200 Subject: wined3d: Send update_sub_resource calls through the command stream. @@ -6,11 +6,12 @@ Subject: wined3d: Send update_sub_resource calls through the command stream. --- dlls/wined3d/cs.c | 95 ++++++++++++++++++++++++++++++++++++++++++ dlls/wined3d/device.c | 22 +--------- - dlls/wined3d/wined3d_private.h | 3 ++ - 3 files changed, 99 insertions(+), 21 deletions(-) + dlls/wined3d/texture.c | 2 +- + dlls/wined3d/wined3d_private.h | 5 +++ + 4 files changed, 102 insertions(+), 22 deletions(-) diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c -index 9a1c076..011020f 100644 +index 5af77f143c6..66ce814d94d 100644 --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c @@ -75,6 +75,7 @@ enum wined3d_cs_op @@ -137,7 +138,7 @@ index 9a1c076..011020f 100644 static inline void *_wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, BOOL prio) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index 480da33..172b7ee 100644 +index d47288b2e77..25501091d42 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -4154,8 +4154,6 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str @@ -176,11 +177,33 @@ index 480da33..172b7ee 100644 } HRESULT CDECL wined3d_device_clear_rendertarget_view(struct wined3d_device *device, +diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c +index 64a1f555580..7d2929f8a96 100644 +--- a/dlls/wined3d/texture.c ++++ b/dlls/wined3d/texture.c +@@ -1509,7 +1509,7 @@ void CDECL wined3d_texture_generate_mipmaps(struct wined3d_texture *texture) + FIXME("texture %p stub!\n", texture); + } + +-static struct wined3d_texture_sub_resource *wined3d_texture_get_sub_resource(struct wined3d_texture *texture, ++struct wined3d_texture_sub_resource *wined3d_texture_get_sub_resource(struct wined3d_texture *texture, + unsigned int sub_resource_idx) + { + UINT sub_count = texture->level_count * texture->layer_count; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index 643f366..e832af2 100644 +index 6b538ee4231..4f2635a310a 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -3259,6 +3259,9 @@ void *wined3d_cs_emit_texture_map(struct wined3d_cs *cs, struct wined3d_texture +@@ -2883,6 +2883,8 @@ BOOL wined3d_texture_check_block_align(const struct wined3d_texture *texture, + GLenum wined3d_texture_get_gl_buffer(const struct wined3d_texture *texture) DECLSPEC_HIDDEN; + void wined3d_texture_get_memory(struct wined3d_texture *texture, unsigned int sub_resource_idx, + struct wined3d_bo_address *data, DWORD locations) DECLSPEC_HIDDEN; ++struct wined3d_texture_sub_resource *wined3d_texture_get_sub_resource(struct wined3d_texture *texture, ++ unsigned int sub_resource_idx) DECLSPEC_HIDDEN; + void wined3d_texture_invalidate_location(struct wined3d_texture *texture, + unsigned int sub_resource_idx, DWORD location) DECLSPEC_HIDDEN; + void wined3d_texture_load(struct wined3d_texture *texture, +@@ -3261,6 +3263,9 @@ void *wined3d_cs_emit_texture_map(struct wined3d_cs *cs, struct wined3d_texture void wined3d_cs_emit_texture_unmap(struct wined3d_cs *cs, struct wined3d_texture *texture, unsigned int sub_resource_idx) DECLSPEC_HIDDEN; void wined3d_cs_emit_unload_resource(struct wined3d_cs *cs, struct wined3d_resource *resource) DECLSPEC_HIDDEN; @@ -191,5 +214,5 @@ index 643f366..e832af2 100644 struct wined3d_texture *dst) DECLSPEC_HIDDEN; -- -2.9.0 +2.11.0 diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index a87f6922..7124f943 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -119,7 +119,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c } +#if !defined(STAGING_CSMT) - void wined3d_buffer_validate_location(struct wined3d_buffer *buffer, DWORD location) + static void wined3d_buffer_validate_location(struct wined3d_buffer *buffer, DWORD location) { TRACE("buffer %p, location %s.\n", buffer, wined3d_debug_location(location)); @@ -128,6 +139,7 @@ void wined3d_buffer_invalidate_location(struct wined3d_buffer *buffer, DWORD loc @@ -332,7 +332,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c return sizeof(*dst_color); } -@@ -622,11 +740,62 @@ BOOL wined3d_buffer_load_location(struct wined3d_buffer *buffer, +@@ -622,11 +740,62 @@ static BOOL wined3d_buffer_load_location(struct wined3d_buffer *buffer, wined3d_buffer_validate_location(buffer, location); return TRUE; @@ -8397,7 +8397,19 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c return TRUE; case WINED3D_LOCATION_TEXTURE_RGB: -@@ -1420,7 +1670,9 @@ struct wined3d_texture_sub_resource *wined3d_texture_get_sub_resource(struct win +@@ -1401,7 +1651,11 @@ void CDECL wined3d_texture_generate_mipmaps(struct wined3d_texture *texture) + FIXME("texture %p stub!\n", texture); + } + ++#if !defined(STAGING_CSMT) + static struct wined3d_texture_sub_resource *wined3d_texture_get_sub_resource(struct wined3d_texture *texture, ++#else /* STAGING_CSMT */ ++struct wined3d_texture_sub_resource *wined3d_texture_get_sub_resource(struct wined3d_texture *texture, ++#endif /* STAGING_CSMT */ + unsigned int sub_resource_idx) + { + UINT sub_count = texture->level_count * texture->layer_count; +@@ -1420,7 +1674,9 @@ static struct wined3d_texture_sub_resource *wined3d_texture_get_sub_resource(str HRESULT CDECL wined3d_texture_add_dirty_region(struct wined3d_texture *texture, UINT layer, const struct wined3d_box *dirty_region) { @@ -8407,7 +8419,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c unsigned int sub_resource_idx; TRACE("texture %p, layer %u, dirty_region %s.\n", texture, layer, debug_box(dirty_region)); -@@ -1432,6 +1684,7 @@ HRESULT CDECL wined3d_texture_add_dirty_region(struct wined3d_texture *texture, +@@ -1432,6 +1688,7 @@ HRESULT CDECL wined3d_texture_add_dirty_region(struct wined3d_texture *texture, } sub_resource_idx = layer * texture->level_count; @@ -8415,7 +8427,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (dirty_region) WARN("Ignoring dirty_region %s.\n", debug_box(dirty_region)); -@@ -1445,6 +1698,9 @@ HRESULT CDECL wined3d_texture_add_dirty_region(struct wined3d_texture *texture, +@@ -1445,6 +1702,9 @@ HRESULT CDECL wined3d_texture_add_dirty_region(struct wined3d_texture *texture, wined3d_texture_invalidate_location(texture, sub_resource_idx, ~texture->resource.map_binding); context_release(context); @@ -8425,7 +8437,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c return WINED3D_OK; } -@@ -1632,7 +1888,9 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in +@@ -1632,7 +1892,9 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in struct wined3d_context *context, DWORD location) { struct wined3d_texture_sub_resource *sub_resource = &texture->sub_resources[sub_resource_idx]; @@ -8435,7 +8447,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c unsigned int row_pitch, slice_pitch; TRACE("texture %p, sub_resource_idx %u, context %p, location %s.\n", -@@ -1640,6 +1898,7 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in +@@ -1640,6 +1902,7 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in TRACE("Current resource location %s.\n", wined3d_debug_location(sub_resource->locations)); @@ -8443,7 +8455,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if ((sub_resource->locations & location) == location) { TRACE("Location(s) already up to date.\n"); -@@ -1653,9 +1912,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in +@@ -1653,9 +1916,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in return FALSE; } @@ -8455,7 +8467,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (sub_resource->locations & WINED3D_LOCATION_DISCARDED) { TRACE("1d texture previously discarded, nothing to do.\n"); -@@ -1664,6 +1925,7 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in +@@ -1664,6 +1929,7 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in goto done; } @@ -8463,7 +8475,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c switch (location) { case WINED3D_LOCATION_TEXTURE_RGB: -@@ -1678,7 +1940,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in +@@ -1678,7 +1944,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in } else if (sub_resource->locations & WINED3D_LOCATION_BUFFER) { @@ -8475,7 +8487,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c wined3d_texture_bind_and_dirtify(texture, context, location == WINED3D_LOCATION_TEXTURE_SRGB); wined3d_texture_get_pitch(texture, sub_resource_idx, &row_pitch, &slice_pitch); texture1d_upload_data(texture, sub_resource_idx, context, NULL, &data, row_pitch, slice_pitch); -@@ -1723,7 +1989,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in +@@ -1723,7 +1993,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in case WINED3D_LOCATION_BUFFER: if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB)) { @@ -8487,7 +8499,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB) wined3d_texture_bind_and_dirtify(texture, context, FALSE); -@@ -1746,7 +2016,9 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in +@@ -1746,7 +2020,9 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in return FALSE; } @@ -8497,7 +8509,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c wined3d_texture_validate_location(texture, sub_resource_idx, location); return TRUE; -@@ -1854,7 +2126,12 @@ static void texture2d_upload_data(struct wined3d_texture *texture, unsigned int +@@ -1854,7 +2130,12 @@ static void texture2d_upload_data(struct wined3d_texture *texture, unsigned int static BOOL texture2d_load_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, struct wined3d_context *context, DWORD location) { @@ -8510,7 +8522,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } /* Context activation is done by the caller. */ -@@ -2017,8 +2294,13 @@ static void wined3d_texture_unload(struct wined3d_resource *resource) +@@ -2017,8 +2298,13 @@ static void wined3d_texture_unload(struct wined3d_resource *resource) wined3d_texture_invalidate_location(texture, i, ~WINED3D_LOCATION_DISCARDED); } @@ -8524,7 +8536,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (resource->type == WINED3D_RTYPE_TEXTURE_2D) { -@@ -2043,6 +2325,89 @@ static void wined3d_texture_unload(struct wined3d_resource *resource) +@@ -2043,6 +2329,89 @@ static void wined3d_texture_unload(struct wined3d_resource *resource) wined3d_texture_unload_gl_texture(texture); } @@ -8614,7 +8626,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags) { -@@ -2050,6 +2415,7 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour +@@ -2050,6 +2419,7 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour struct wined3d_texture_sub_resource *sub_resource; struct wined3d_device *device = resource->device; unsigned int fmt_flags = resource->format_flags; @@ -8622,7 +8634,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c const struct wined3d_gl_info *gl_info = NULL; struct wined3d_context *context = NULL; struct wined3d_texture *texture; -@@ -2057,6 +2423,11 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour +@@ -2057,6 +2427,11 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour unsigned int texture_level; BYTE *base_memory; BOOL ret; @@ -8634,7 +8646,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c TRACE("resource %p, sub_resource_idx %u, map_desc %p, box %s, flags %#x.\n", resource, sub_resource_idx, map_desc, debug_box(box), flags); -@@ -2101,14 +2472,22 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour +@@ -2101,14 +2476,22 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour return WINED3DERR_INVALIDCALL; } @@ -8657,7 +8669,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c TRACE("WINED3D_MAP_DISCARD flag passed, marking %s as up to date.\n", wined3d_debug_location(texture->resource.map_binding)); if ((ret = wined3d_texture_prepare_location(texture, sub_resource_idx, -@@ -2139,6 +2518,24 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour +@@ -2139,6 +2522,24 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour if (context) context_release(context); @@ -8682,7 +8694,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (fmt_flags & WINED3DFMT_FLAG_BROKEN_PITCH) { -@@ -2174,6 +2571,7 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour +@@ -2174,6 +2575,7 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour } } @@ -8690,7 +8702,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (texture->swapchain && texture->swapchain->front_buffer == texture) { RECT *r = &texture->swapchain->front_buffer_update; -@@ -2185,6 +2583,7 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour +@@ -2185,6 +2587,7 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour TRACE("Mapped front buffer %s.\n", wine_dbgstr_rect(r)); } @@ -8698,7 +8710,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c ++resource->map_count; ++sub_resource->map_count; -@@ -2194,14 +2593,71 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour +@@ -2194,14 +2597,71 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour return WINED3D_OK; } @@ -8770,7 +8782,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c TRACE("resource %p, sub_resource_idx %u.\n", resource, sub_resource_idx); -@@ -2217,6 +2673,7 @@ static HRESULT texture_resource_sub_resource_unmap(struct wined3d_resource *reso +@@ -2217,6 +2677,7 @@ static HRESULT texture_resource_sub_resource_unmap(struct wined3d_resource *reso return WINEDDERR_NOTLOCKED; } @@ -8778,7 +8790,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (device->d3d_initialized) { context = context_acquire(device, NULL); -@@ -2237,6 +2694,15 @@ static HRESULT texture_resource_sub_resource_unmap(struct wined3d_resource *reso +@@ -2237,6 +2698,15 @@ static HRESULT texture_resource_sub_resource_unmap(struct wined3d_resource *reso else if (resource->format_flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL)) { FIXME("Depth / stencil buffer locking is not implemented.\n"); @@ -8794,7 +8806,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } --sub_resource->map_count; -@@ -2600,11 +3066,23 @@ static HRESULT texture_init(struct wined3d_texture *texture, const struct wined3 +@@ -2600,11 +3070,23 @@ static HRESULT texture_init(struct wined3d_texture *texture, const struct wined3 TRACE("Created surface level %u, layer %u @ %p.\n", i, j, surface); @@ -8818,7 +8830,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } } } -@@ -2760,7 +3238,9 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in +@@ -2760,7 +3242,9 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in struct wined3d_context *context, DWORD location) { struct wined3d_texture_sub_resource *sub_resource = &texture->sub_resources[sub_resource_idx]; @@ -8828,7 +8840,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c unsigned int row_pitch, slice_pitch; TRACE("texture %p, sub_resource_idx %u, context %p, location %s.\n", -@@ -2768,6 +3248,7 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in +@@ -2768,6 +3252,7 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in TRACE("Current resource location %s.\n", wined3d_debug_location(sub_resource->locations)); @@ -8836,7 +8848,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if ((sub_resource->locations & location) == location) { TRACE("Location(s) already up to date.\n"); -@@ -2781,9 +3262,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in +@@ -2781,9 +3266,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in return FALSE; } @@ -8848,7 +8860,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (sub_resource->locations & WINED3D_LOCATION_DISCARDED) { TRACE("Volume previously discarded, nothing to do.\n"); -@@ -2792,6 +3275,7 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in +@@ -2792,6 +3279,7 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in goto done; } @@ -8856,7 +8868,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c switch (location) { case WINED3D_LOCATION_TEXTURE_RGB: -@@ -2807,7 +3291,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in +@@ -2807,7 +3295,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in } else if (sub_resource->locations & WINED3D_LOCATION_BUFFER) { @@ -8868,7 +8880,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c wined3d_texture_bind_and_dirtify(texture, context, location == WINED3D_LOCATION_TEXTURE_SRGB); wined3d_texture_get_pitch(texture, sub_resource_idx, &row_pitch, &slice_pitch); -@@ -2853,7 +3341,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in +@@ -2853,7 +3345,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in case WINED3D_LOCATION_BUFFER: if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB)) { @@ -8880,7 +8892,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB) wined3d_texture_bind_and_dirtify(texture, context, FALSE); -@@ -2876,7 +3368,9 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in +@@ -2876,7 +3372,9 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in return FALSE; } @@ -8890,7 +8902,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c wined3d_texture_validate_location(texture, sub_resource_idx, location); return TRUE; -@@ -3040,6 +3534,9 @@ static HRESULT volumetexture_init(struct wined3d_texture *texture, const struct +@@ -3040,6 +3538,9 @@ static HRESULT volumetexture_init(struct wined3d_texture *texture, const struct if (wined3d_texture_use_pbo(texture, gl_info)) { wined3d_resource_free_sysmem(&texture->resource); @@ -8900,7 +8912,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c texture->resource.map_binding = WINED3D_LOCATION_BUFFER; } -@@ -3390,13 +3887,47 @@ HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct +@@ -3390,13 +3891,47 @@ HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct return WINED3D_OK; } @@ -8948,7 +8960,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c TRACE("texture %p, sub_resource_idx %u, dc %p.\n", texture, sub_resource_idx, dc); -@@ -3421,6 +3952,7 @@ HRESULT CDECL wined3d_texture_get_dc(struct wined3d_texture *texture, unsigned i +@@ -3421,6 +3956,7 @@ HRESULT CDECL wined3d_texture_get_dc(struct wined3d_texture *texture, unsigned i if (texture->resource.map_count && !(texture->flags & WINED3D_TEXTURE_GET_DC_LENIENT)) return WINED3DERR_INVALIDCALL; @@ -8956,7 +8968,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (device->d3d_initialized) context = context_acquire(device, NULL); -@@ -3443,6 +3975,32 @@ HRESULT CDECL wined3d_texture_get_dc(struct wined3d_texture *texture, unsigned i +@@ -3443,6 +3979,32 @@ HRESULT CDECL wined3d_texture_get_dc(struct wined3d_texture *texture, unsigned i TRACE("Returning dc %p.\n", *dc); return hr; @@ -8989,7 +9001,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } HRESULT CDECL wined3d_texture_release_dc(struct wined3d_texture *texture, unsigned int sub_resource_idx, HDC dc) -@@ -3473,6 +4031,7 @@ HRESULT CDECL wined3d_texture_release_dc(struct wined3d_texture *texture, unsign +@@ -3473,6 +4035,7 @@ HRESULT CDECL wined3d_texture_release_dc(struct wined3d_texture *texture, unsign return WINED3DERR_INVALIDCALL; } @@ -8997,7 +9009,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (!(texture->resource.usage & WINED3DUSAGE_OWNDC) && !(device->wined3d->flags & WINED3D_NO3D)) wined3d_surface_destroy_dc(surface); -@@ -3481,6 +4040,9 @@ HRESULT CDECL wined3d_texture_release_dc(struct wined3d_texture *texture, unsign +@@ -3481,6 +4044,9 @@ HRESULT CDECL wined3d_texture_release_dc(struct wined3d_texture *texture, unsign wined3d_texture_update_map_binding(texture); if (!(texture->flags & WINED3D_TEXTURE_GET_DC_LENIENT)) texture->flags &= ~WINED3D_TEXTURE_DC_IN_USE; @@ -9339,7 +9351,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h } sub_resources[1]; }; -@@ -2850,11 +2956,23 @@ void wined3d_texture_bind(struct wined3d_texture *texture, +@@ -2850,11 +2956,25 @@ void wined3d_texture_bind(struct wined3d_texture *texture, struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN; void wined3d_texture_bind_and_dirtify(struct wined3d_texture *texture, struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN; @@ -9359,11 +9371,13 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h +GLenum wined3d_texture_get_gl_buffer(const struct wined3d_texture *texture) DECLSPEC_HIDDEN; +void wined3d_texture_get_memory(struct wined3d_texture *texture, unsigned int sub_resource_idx, + struct wined3d_bo_address *data, DWORD locations, BOOL map) DECLSPEC_HIDDEN; ++struct wined3d_texture_sub_resource *wined3d_texture_get_sub_resource(struct wined3d_texture *texture, ++ unsigned int sub_resource_idx) DECLSPEC_HIDDEN; +#endif /* STAGING_CSMT */ - struct wined3d_texture_sub_resource *wined3d_texture_get_sub_resource(struct wined3d_texture *texture, - unsigned int sub_resource_idx) DECLSPEC_HIDDEN; void wined3d_texture_invalidate_location(struct wined3d_texture *texture, -@@ -2867,13 +2985,26 @@ void *wined3d_texture_map_bo_address(const struct wined3d_bo_address *data, size + unsigned int sub_resource_idx, DWORD location) DECLSPEC_HIDDEN; + void wined3d_texture_load(struct wined3d_texture *texture, +@@ -2865,13 +2985,26 @@ void *wined3d_texture_map_bo_address(const struct wined3d_bo_address *data, size const struct wined3d_gl_info *gl_info, GLenum binding, DWORD flags) DECLSPEC_HIDDEN; BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, struct wined3d_context *context, DWORD location) DECLSPEC_HIDDEN; @@ -9390,7 +9404,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_texture_upload_data(struct wined3d_texture *texture, unsigned int sub_resource_idx, const struct wined3d_context *context, const struct wined3d_box *box, const struct wined3d_const_bo_address *data, unsigned int row_pitch, unsigned int slice_pitch) DECLSPEC_HIDDEN; -@@ -2978,9 +3109,17 @@ HRESULT surface_color_fill(struct wined3d_surface *s, +@@ -2976,9 +3109,17 @@ HRESULT surface_color_fill(struct wined3d_surface *s, const RECT *rect, const struct wined3d_color *color) DECLSPEC_HIDDEN; HRESULT wined3d_surface_create_dc(struct wined3d_surface *surface) DECLSPEC_HIDDEN; void wined3d_surface_destroy_dc(struct wined3d_surface *surface) DECLSPEC_HIDDEN; @@ -9408,7 +9422,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_context *context, DWORD location) DECLSPEC_HIDDEN; void surface_modify_ds_location(struct wined3d_surface *surface, DWORD location, UINT w, UINT h) DECLSPEC_HIDDEN; void surface_set_compatible_renderbuffer(struct wined3d_surface *surface, -@@ -2991,6 +3130,11 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P +@@ -2989,6 +3130,11 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P void wined3d_surface_upload_data(struct wined3d_surface *surface, const struct wined3d_gl_info *gl_info, const struct wined3d_format *format, const RECT *src_rect, UINT src_pitch, const POINT *dst_point, BOOL srgb, const struct wined3d_const_bo_address *data) DECLSPEC_HIDDEN; @@ -9420,7 +9434,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void draw_textured_quad(const struct wined3d_surface *src_surface, struct wined3d_context *context, const RECT *src_rect, const RECT *dst_rect, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN; -@@ -3005,6 +3149,12 @@ struct wined3d_sampler +@@ -3003,6 +3149,12 @@ struct wined3d_sampler GLuint name; }; @@ -9433,7 +9447,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_vertex_declaration_element { const struct wined3d_format *format; -@@ -3100,6 +3250,7 @@ struct wined3d_stateblock +@@ -3098,6 +3250,7 @@ struct wined3d_stateblock void stateblock_init_contained_states(struct wined3d_stateblock *stateblock) DECLSPEC_HIDDEN; void state_cleanup(struct wined3d_state *state) DECLSPEC_HIDDEN; @@ -9441,7 +9455,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void state_init(struct wined3d_state *state, struct wined3d_fb_state *fb, const struct wined3d_gl_info *gl_info, const struct wined3d_d3d_info *d3d_info, DWORD flags) DECLSPEC_HIDDEN; -@@ -3113,54 +3264,150 @@ enum wined3d_push_constants +@@ -3111,54 +3264,150 @@ enum wined3d_push_constants WINED3D_PUSH_CONSTANTS_PS_I, WINED3D_PUSH_CONSTANTS_VS_B, WINED3D_PUSH_CONSTANTS_PS_B, @@ -9510,13 +9524,13 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_cs *wined3d_cs_create(struct wined3d_device *device) DECLSPEC_HIDDEN; void wined3d_cs_destroy(struct wined3d_cs *cs) DECLSPEC_HIDDEN; +#if !defined(STAGING_CSMT) - - void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects, - DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil) DECLSPEC_HIDDEN; ++ ++void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects, ++ DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil) DECLSPEC_HIDDEN; +#else /* STAGING_CSMT */ +void wined3d_cs_switch_onscreen_ds(struct wined3d_cs *cs, struct wined3d_context *context, + struct wined3d_surface *depth_stencil) DECLSPEC_HIDDEN; -+ + +void wined3d_cs_emit_blt(struct wined3d_cs *cs, struct wined3d_surface *dst_surface, + const RECT *dst_rect, struct wined3d_surface *src_surface, + const RECT *src_rect, DWORD flags, const struct wined3d_blt_fx *fx, @@ -9525,8 +9539,8 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h + struct wined3d_buffer *buffer, unsigned int offset, unsigned int size) DECLSPEC_HIDDEN; +void wined3d_cs_emit_buffer_swap_mem(struct wined3d_cs *cs, struct wined3d_buffer *buffer, + BYTE *mem) DECLSPEC_HIDDEN; -+void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects, -+ DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil) DECLSPEC_HIDDEN; + void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects, + DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil) DECLSPEC_HIDDEN; +void wined3d_cs_emit_clear_rtv(struct wined3d_cs *cs, struct wined3d_rendertarget_view *view, + const RECT *rect, DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil, + const struct blit_shader *blitter) DECLSPEC_HIDDEN; @@ -9592,7 +9606,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_cs_emit_set_rasterizer_state(struct wined3d_cs *cs, struct wined3d_rasterizer_state *rasterizer_state) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_render_state(struct wined3d_cs *cs, -@@ -3192,6 +3439,7 @@ void wined3d_cs_emit_set_unordered_access_view(struct wined3d_cs *cs, unsigned i +@@ -3190,6 +3439,7 @@ void wined3d_cs_emit_set_unordered_access_view(struct wined3d_cs *cs, unsigned i void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs, struct wined3d_vertex_declaration *declaration) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_viewport *viewport) DECLSPEC_HIDDEN; @@ -9600,7 +9614,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_cs_emit_unload_resource(struct wined3d_cs *cs, struct wined3d_resource *resource) DECLSPEC_HIDDEN; HRESULT wined3d_cs_map(struct wined3d_cs *cs, struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_map_desc *map_desc, const struct wined3d_box *box, unsigned int flags) DECLSPEC_HIDDEN; -@@ -3203,6 +3451,24 @@ static inline void wined3d_cs_push_constants(struct wined3d_cs *cs, enum wined3d +@@ -3201,6 +3451,24 @@ static inline void wined3d_cs_push_constants(struct wined3d_cs *cs, enum wined3d { cs->ops->push_constants(cs, p, start_idx, count, constants); } @@ -9625,7 +9639,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* TODO: Add tests and support for FLOAT16_4 POSITIONT, D3DCOLOR position, other * fixed function semantics as D3DCOLOR or FLOAT16 */ -@@ -3228,13 +3494,20 @@ struct wined3d_buffer +@@ -3226,13 +3494,20 @@ struct wined3d_buffer GLuint buffer_object; GLenum buffer_object_usage; GLenum buffer_type_hint; @@ -9646,7 +9660,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_event_query *query; /* conversion stuff */ -@@ -3250,6 +3523,7 @@ static inline struct wined3d_buffer *buffer_from_resource(struct wined3d_resourc +@@ -3248,10 +3523,15 @@ static inline struct wined3d_buffer *buffer_from_resource(struct wined3d_resourc return CONTAINING_RECORD(resource, struct wined3d_buffer, resource); } @@ -9654,24 +9668,19 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void buffer_mark_used(struct wined3d_buffer *buffer) DECLSPEC_HIDDEN; DWORD wined3d_buffer_get_memory(struct wined3d_buffer *buffer, struct wined3d_bo_address *data, DWORD locations) DECLSPEC_HIDDEN; -@@ -3258,12 +3532,25 @@ void wined3d_buffer_load(struct wined3d_buffer *buffer, struct wined3d_context * - const struct wined3d_state *state) DECLSPEC_HIDDEN; - BOOL wined3d_buffer_load_location(struct wined3d_buffer *buffer, struct wined3d_context *context, - DWORD location) DECLSPEC_HIDDEN; + void wined3d_buffer_invalidate_location(struct wined3d_buffer *buffer, DWORD location) DECLSPEC_HIDDEN; +#else /* STAGING_CSMT */ +void buffer_get_memory(struct wined3d_buffer *buffer, struct wined3d_context *context, + struct wined3d_bo_address *data) DECLSPEC_HIDDEN; -+void wined3d_buffer_load(struct wined3d_buffer *buffer, struct wined3d_context *context, -+ const struct wined3d_state *state) DECLSPEC_HIDDEN; +#endif /* STAGING_CSMT */ + void wined3d_buffer_load(struct wined3d_buffer *buffer, struct wined3d_context *context, + const struct wined3d_state *state) DECLSPEC_HIDDEN; BYTE *wined3d_buffer_load_sysmem(struct wined3d_buffer *buffer, struct wined3d_context *context) DECLSPEC_HIDDEN; - HRESULT wined3d_buffer_copy(struct wined3d_buffer *dst_buffer, unsigned int dst_offset, +@@ -3259,6 +3539,12 @@ HRESULT wined3d_buffer_copy(struct wined3d_buffer *dst_buffer, unsigned int dst_ struct wined3d_buffer *src_buffer, unsigned int src_offset, unsigned int size) DECLSPEC_HIDDEN; HRESULT wined3d_buffer_upload_data(struct wined3d_buffer *buffer, const struct wined3d_box *box, const void *data) DECLSPEC_HIDDEN; -+#if !defined(STAGING_CSMT) - void wined3d_buffer_validate_location(struct wined3d_buffer *buffer, DWORD location) DECLSPEC_HIDDEN; -+#else /* STAGING_CSMT */ ++#if defined(STAGING_CSMT) +void buffer_invalidate_bo_range(struct wined3d_buffer *buffer, unsigned int offset, unsigned int size) DECLSPEC_HIDDEN; +void buffer_swap_mem(struct wined3d_buffer *buffer, BYTE *mem) DECLSPEC_HIDDEN; +void buffer_create_buffer_object(struct wined3d_buffer *This, @@ -9680,7 +9689,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_rendertarget_view { -@@ -3296,9 +3583,11 @@ static inline struct wined3d_surface *wined3d_rendertarget_view_get_surface( +@@ -3291,9 +3577,11 @@ static inline struct wined3d_surface *wined3d_rendertarget_view_get_surface( return texture->sub_resources[view->sub_resource_idx].u.surface; } @@ -9692,7 +9701,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_gl_view { GLenum target; -@@ -3340,7 +3629,12 @@ void wined3d_unordered_access_view_invalidate_location(struct wined3d_unordered_ +@@ -3335,7 +3623,12 @@ void wined3d_unordered_access_view_invalidate_location(struct wined3d_unordered_ struct wined3d_swapchain_ops { void (*swapchain_present)(struct wined3d_swapchain *swapchain, @@ -9705,7 +9714,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void (*swapchain_frontbuffer_updated)(struct wined3d_swapchain *swapchain); }; -@@ -3377,6 +3671,10 @@ struct wined3d_swapchain +@@ -3372,6 +3665,10 @@ struct wined3d_swapchain void wined3d_swapchain_activate(struct wined3d_swapchain *swapchain, BOOL activate) DECLSPEC_HIDDEN; struct wined3d_context *swapchain_get_context(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; diff --git a/staging/VERSION b/staging/VERSION index 7eb4935d..ee111501 100644 --- a/staging/VERSION +++ b/staging/VERSION @@ -1 +1 @@ -Wine Staging 2.0-rc4 +Wine Staging 2.0-rc5 (unreleased)