From f673b561d0608bf9e2f6911d2316fa3432a8a025 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Fri, 6 Nov 2015 18:47:17 +0100 Subject: [PATCH] Rebase against a0d0d0dd0a5b4a500ab8d37cc6e687a202997d56. --- patches/patchinstall.sh | 2 +- ...e-the-framebuffer-into-wined3d_state.patch | 54 +++++++++---------- ...e-depth-stencil-to-swapchain-present.patch | 22 ++++---- ...ck-of-the-onscreen-depth-stencil-in-.patch | 36 ++++++------- ...Poll-queries-automatically-in-the-CS.patch | 22 ++++---- .../wined3d-CSMT_Main/9999-IfDefined.patch | 16 +++--- 6 files changed, 76 insertions(+), 76 deletions(-) diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 1c4af740..5e6ce23c 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "bfb845f9fccb2ff5bff0b0ba3238fec7f9f7b710" + echo "a0d0d0dd0a5b4a500ab8d37cc6e687a202997d56" } # Show version information diff --git a/patches/wined3d-CSMT_Main/0038-wined3d-Move-the-framebuffer-into-wined3d_state.patch b/patches/wined3d-CSMT_Main/0038-wined3d-Move-the-framebuffer-into-wined3d_state.patch index 14aaa9b8..3ce4963c 100644 --- a/patches/wined3d-CSMT_Main/0038-wined3d-Move-the-framebuffer-into-wined3d_state.patch +++ b/patches/wined3d-CSMT_Main/0038-wined3d-Move-the-framebuffer-into-wined3d_state.patch @@ -1,4 +1,4 @@ -From 5aa0f038a7e25f3e260ad9efedf90fe26e28a91d Mon Sep 17 00:00:00 2001 +From 68280056e300f90beae6bac338aa94ebacaa4bfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Thu, 20 Dec 2012 13:09:17 +0100 Subject: wined3d: Move the framebuffer into wined3d_state @@ -42,10 +42,10 @@ index 9a882cc..df89a05 100644 } diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c -index 4909344..b7085a5 100644 +index 6d08df9..104172f 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c -@@ -1516,6 +1516,12 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain, +@@ -1506,6 +1506,12 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain, goto out; } @@ -58,7 +58,7 @@ index 4909344..b7085a5 100644 /* Initialize the texture unit mapping to a 1:1 mapping */ for (s = 0; s < MAX_COMBINED_SAMPLERS; ++s) { -@@ -1829,6 +1835,7 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain, +@@ -1833,6 +1839,7 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain, out: device->shader_backend->shader_free_context_data(ret); device->adapter->fragment_pipe->free_context_data(ret); @@ -66,7 +66,7 @@ index 4909344..b7085a5 100644 HeapFree(GetProcessHeap(), 0, ret->free_event_queries); HeapFree(GetProcessHeap(), 0, ret->free_occlusion_queries); HeapFree(GetProcessHeap(), 0, ret->free_timestamp_queries); -@@ -1863,6 +1870,7 @@ void context_destroy(struct wined3d_device *device, struct wined3d_context *cont +@@ -1867,6 +1874,7 @@ void context_destroy(struct wined3d_device *device, struct wined3d_context *cont device->shader_backend->shader_free_context_data(context); device->adapter->fragment_pipe->free_context_data(context); @@ -129,7 +129,7 @@ index 4909344..b7085a5 100644 WORD map; diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c -index 3c4ea8c..72b46be 100644 +index 316ccb8..eefa142 100644 --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c @@ -290,7 +290,7 @@ static void wined3d_cs_exec_clear(struct wined3d_cs *cs, const void *data) @@ -205,7 +205,7 @@ index 3c4ea8c..72b46be 100644 HeapFree(GetProcessHeap(), 0, cs); } diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index 0d9debe..5a21510 100644 +index a5c1e59..42c5d14 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -865,7 +865,7 @@ static void device_init_swapchain_state(struct wined3d_device *device, struct wi @@ -255,7 +255,7 @@ index 0d9debe..5a21510 100644 + { + surface = device->onscreen_depth_stencil; + device->onscreen_depth_stencil = NULL; -+ wined3d_surface_decref(surface); ++ wined3d_texture_decref(surface->container); + } + state_unbind_resources(&device->state); @@ -278,7 +278,7 @@ index 0d9debe..5a21510 100644 - { - surface = device->onscreen_depth_stencil; - device->onscreen_depth_stencil = NULL; -- wined3d_surface_decref(surface); +- wined3d_texture_decref(surface->container); - } - - if (device->fb.depth_stencil) @@ -366,7 +366,7 @@ index 0d9debe..5a21510 100644 if (ds && rt && (ds->width < rt->width || ds->height < rt->height)) { -@@ -4063,20 +4043,21 @@ struct wined3d_rendertarget_view * CDECL wined3d_device_get_rendertarget_view(co +@@ -4065,20 +4045,21 @@ struct wined3d_rendertarget_view * CDECL wined3d_device_get_rendertarget_view(co return NULL; } @@ -390,7 +390,7 @@ index 0d9debe..5a21510 100644 TRACE("device %p, view_idx %u, view %p, set_viewport %#x.\n", device, view_idx, view, set_viewport); -@@ -4116,13 +4097,13 @@ HRESULT CDECL wined3d_device_set_rendertarget_view(struct wined3d_device *device +@@ -4118,13 +4099,13 @@ HRESULT CDECL wined3d_device_set_rendertarget_view(struct wined3d_device *device } @@ -406,7 +406,7 @@ index 0d9debe..5a21510 100644 wined3d_cs_emit_set_rendertarget_view(device->cs, view_idx, view); /* Release after the assignment, to prevent device_resource_released() * from seeing the surface as still in use. */ -@@ -4134,18 +4115,19 @@ HRESULT CDECL wined3d_device_set_rendertarget_view(struct wined3d_device *device +@@ -4136,18 +4117,19 @@ HRESULT CDECL wined3d_device_set_rendertarget_view(struct wined3d_device *device void CDECL wined3d_device_set_depth_stencil_view(struct wined3d_device *device, struct wined3d_rendertarget_view *view) { @@ -428,7 +428,7 @@ index 0d9debe..5a21510 100644 wined3d_rendertarget_view_incref(view); wined3d_cs_emit_set_depth_stencil_view(device->cs, view); if (prev) -@@ -4509,10 +4491,9 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, +@@ -4511,10 +4493,9 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, wined3d_texture_decref(device->cursor_texture); device->cursor_texture = NULL; } @@ -440,7 +440,7 @@ index 0d9debe..5a21510 100644 { for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i) { -@@ -4521,6 +4502,11 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, +@@ -4523,6 +4504,11 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, } wined3d_device_set_depth_stencil_view(device, NULL); @@ -451,8 +451,8 @@ index 0d9debe..5a21510 100644 + if (device->onscreen_depth_stencil) { - wined3d_surface_decref(device->onscreen_depth_stencil); -@@ -4739,7 +4725,7 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, + wined3d_texture_decref(device->onscreen_depth_stencil->container); +@@ -4741,7 +4727,7 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, if (device->d3d_initialized) delete_opengl_contexts(device, swapchain); @@ -461,7 +461,7 @@ index 0d9debe..5a21510 100644 &device->adapter->d3d_info, WINED3D_STATE_INIT_DEFAULT))) ERR("Failed to initialize device state, hr %#x.\n", hr); device->update_state = &device->state; -@@ -4748,22 +4734,21 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, +@@ -4750,22 +4736,21 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, } else if (device->back_buffer_view) { @@ -489,7 +489,7 @@ index 0d9debe..5a21510 100644 wined3d_cs_emit_set_scissor_rect(device->cs, &state->scissor_rect); } -@@ -4851,17 +4836,17 @@ void device_resource_released(struct wined3d_device *device, struct wined3d_reso +@@ -4853,17 +4838,17 @@ void device_resource_released(struct wined3d_device *device, struct wined3d_reso for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i) { @@ -511,7 +511,7 @@ index 0d9debe..5a21510 100644 } } break; -@@ -5024,7 +5009,7 @@ HRESULT device_init(struct wined3d_device *device, struct wined3d *wined3d, +@@ -5026,7 +5011,7 @@ HRESULT device_init(struct wined3d_device *device, struct wined3d *wined3d, device->blitter = adapter->blitter; @@ -575,7 +575,7 @@ index 4b01b7d..7e3a7f7 100644 surface_modify_ds_location(ds, location, ds->ds_current_size.cx, ds->ds_current_size.cy); diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c -index 4a95e44..c2762a3 100644 +index 44e7090..787f64a 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -1626,7 +1626,7 @@ static void shader_generate_glsl_declarations(const struct wined3d_context *cont @@ -788,10 +788,10 @@ index cb3d494..6b348b8 100644 if (FAILED(hr = stateblock_allocate_shader_constants(stateblock))) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index a646c90..4111042 100644 +index de8d6dc..db36a59 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c -@@ -3270,8 +3270,8 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE +@@ -3283,8 +3283,8 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE enum wined3d_texture_filter_type filter) { struct wined3d_device *device = dst_surface->resource.device; @@ -802,7 +802,7 @@ index a646c90..4111042 100644 TRACE("dst_surface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, blt_fx %p, filter %s.\n", dst_surface, wine_dbgstr_rect(dst_rect), src_surface, wine_dbgstr_rect(src_rect), diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c -index 37b025a..a1e4a0b 100644 +index b826445..e1e705b 100644 --- a/dlls/wined3d/swapchain.c +++ b/dlls/wined3d/swapchain.c @@ -427,7 +427,7 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT @@ -815,7 +815,7 @@ index 37b025a..a1e4a0b 100644 struct wined3d_context *context; struct wined3d_surface *front; diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c -index e7f9cbd..81af9d5 100644 +index 4ddfead..32519eb 100644 --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c @@ -3733,7 +3733,7 @@ void get_projection_matrix(const struct wined3d_context *context, const struct w @@ -827,7 +827,7 @@ index e7f9cbd..81af9d5 100644 state->render_states[WINED3D_RS_ZENABLE] : WINED3D_ZB_FALSE; float z_scale = zenable ? 2.0f : 0.0f; float z_offset = zenable ? -1.0f : 0.0f; -@@ -4396,7 +4396,7 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d +@@ -4325,7 +4325,7 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d unsigned int i; DWORD ttff; DWORD cop, aop, carg0, carg1, carg2, aarg0, aarg1, aarg2; @@ -837,7 +837,7 @@ index e7f9cbd..81af9d5 100644 const struct wined3d_d3d_info *d3d_info = context->d3d_info; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index c55e917..400cffb 100644 +index 720eb3a..6a10ad7 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -1149,6 +1149,36 @@ struct wined3d_timestamp_query @@ -936,5 +936,5 @@ index c55e917..400cffb 100644 size_t data_size; -- -2.6.1 +2.6.2 diff --git a/patches/wined3d-CSMT_Main/0056-wined3d-Pass-the-depth-stencil-to-swapchain-present.patch b/patches/wined3d-CSMT_Main/0056-wined3d-Pass-the-depth-stencil-to-swapchain-present.patch index 978da3e7..f9575466 100644 --- a/patches/wined3d-CSMT_Main/0056-wined3d-Pass-the-depth-stencil-to-swapchain-present.patch +++ b/patches/wined3d-CSMT_Main/0056-wined3d-Pass-the-depth-stencil-to-swapchain-present.patch @@ -1,4 +1,4 @@ -From 7b57d279336b852ad0286bdb865deeba2e55f3eb Mon Sep 17 00:00:00 2001 +From 1f1e2612071335c2b167345933ed23047a40103e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Thu, 4 Apr 2013 14:52:24 +0200 Subject: wined3d: Pass the depth stencil to swapchain->present @@ -12,10 +12,10 @@ DS or the implicit DS. 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c -index 8b24e73..03e760d 100644 +index e42cbe0..4e99cd2 100644 --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c -@@ -429,7 +429,8 @@ static UINT wined3d_cs_exec_present(struct wined3d_cs *cs, const void *data) +@@ -439,7 +439,8 @@ static UINT wined3d_cs_exec_present(struct wined3d_cs *cs, const void *data) wined3d_swapchain_set_window(swapchain, op->dst_window_override); swapchain->swapchain_ops->swapchain_present(swapchain, @@ -26,10 +26,10 @@ index 8b24e73..03e760d 100644 return sizeof(*op); } diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c -index 60504ef..e190892 100644 +index 74e59cf..6ded6cc 100644 --- a/dlls/wined3d/swapchain.c +++ b/dlls/wined3d/swapchain.c -@@ -417,11 +417,11 @@ static void swapchain_blit(const struct wined3d_swapchain *swapchain, +@@ -423,11 +423,11 @@ static void swapchain_blit(const struct wined3d_swapchain *swapchain, } static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT *src_rect_in, @@ -43,7 +43,7 @@ index 60504ef..e190892 100644 const struct wined3d_gl_info *gl_info; struct wined3d_context *context; struct wined3d_surface *front; -@@ -574,16 +574,14 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT +@@ -581,16 +581,14 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT break; } @@ -64,9 +64,9 @@ index 60504ef..e190892 100644 + depth_stencil->resource.width, depth_stencil->resource.height); + if (depth_stencil == swapchain->device->onscreen_depth_stencil) { - wined3d_surface_decref(swapchain->device->onscreen_depth_stencil); + wined3d_texture_decref(swapchain->device->onscreen_depth_stencil->container); swapchain->device->onscreen_depth_stencil = NULL; -@@ -647,7 +645,8 @@ void x11_copy_to_screen(const struct wined3d_swapchain *swapchain, const RECT *r +@@ -654,7 +652,8 @@ void x11_copy_to_screen(const struct wined3d_swapchain *swapchain, const RECT *r } static void swapchain_gdi_present(struct wined3d_swapchain *swapchain, const RECT *src_rect_in, @@ -77,10 +77,10 @@ index 60504ef..e190892 100644 struct wined3d_surface *front, *back; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index a16909c..024b55b 100644 +index 056c781..dec58e5 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -2746,7 +2746,8 @@ struct wined3d_shader_resource_view +@@ -2860,7 +2860,8 @@ struct wined3d_shader_resource_view struct wined3d_swapchain_ops { void (*swapchain_present)(struct wined3d_swapchain *swapchain, const RECT *src_rect, @@ -91,5 +91,5 @@ index a16909c..024b55b 100644 struct wined3d_swapchain -- -2.1.3 +2.6.2 diff --git a/patches/wined3d-CSMT_Main/0058-wined3d-Keep-track-of-the-onscreen-depth-stencil-in-.patch b/patches/wined3d-CSMT_Main/0058-wined3d-Keep-track-of-the-onscreen-depth-stencil-in-.patch index d564ddfb..5d31c349 100644 --- a/patches/wined3d-CSMT_Main/0058-wined3d-Keep-track-of-the-onscreen-depth-stencil-in-.patch +++ b/patches/wined3d-CSMT_Main/0058-wined3d-Keep-track-of-the-onscreen-depth-stencil-in-.patch @@ -1,4 +1,4 @@ -From ea3a3342b80849797472ffbaa5d722def0b599ab Mon Sep 17 00:00:00 2001 +From 8842cf6a7d2b87f69462e5fe513f51bc127a8140 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Fri, 5 Apr 2013 14:37:44 +0200 Subject: wined3d: Keep track of the onscreen depth stencil in the command @@ -23,7 +23,7 @@ configurations. 5 files changed, 38 insertions(+), 39 deletions(-) diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c -index 948bc80..9147719 100644 +index d5e2c52..b20d32f 100644 --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c @@ -639,10 +639,10 @@ static UINT wined3d_cs_exec_set_depth_stencil_view(struct wined3d_cs *cs, const @@ -33,9 +33,9 @@ index 948bc80..9147719 100644 - if (prev_surface == device->onscreen_depth_stencil) + if (prev_surface == cs->onscreen_depth_stencil) { -- wined3d_surface_decref(device->onscreen_depth_stencil); +- wined3d_texture_decref(device->onscreen_depth_stencil->container); - device->onscreen_depth_stencil = NULL; -+ wined3d_surface_decref(cs->onscreen_depth_stencil); ++ wined3d_texture_decref(cs->onscreen_depth_stencil->container); + cs->onscreen_depth_stencil = NULL; } } @@ -54,17 +54,17 @@ index 948bc80..9147719 100644 + surface_modify_ds_location(cs->onscreen_depth_stencil, WINED3D_LOCATION_TEXTURE_RGB, + cs->onscreen_depth_stencil->ds_current_size.cx, + cs->onscreen_depth_stencil->ds_current_size.cy); -+ wined3d_surface_decref(cs->onscreen_depth_stencil); ++ wined3d_texture_decref(cs->onscreen_depth_stencil->container); + } + cs->onscreen_depth_stencil = depth_stencil; -+ wined3d_surface_incref(cs->onscreen_depth_stencil); ++ wined3d_texture_incref(cs->onscreen_depth_stencil->container); +} + static DWORD WINAPI wined3d_cs_run(void *thread_param) { struct wined3d_cs *cs = thread_param; diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index eecb8b2..b1502c1 100644 +index 1fef5ff..4de7eb2 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -198,22 +198,6 @@ void device_context_remove(struct wined3d_device *device, struct wined3d_context @@ -81,10 +81,10 @@ index eecb8b2..b1502c1 100644 - surface_modify_ds_location(device->onscreen_depth_stencil, WINED3D_LOCATION_TEXTURE_RGB, - device->onscreen_depth_stencil->ds_current_size.cx, - device->onscreen_depth_stencil->ds_current_size.cy); -- wined3d_surface_decref(device->onscreen_depth_stencil); +- wined3d_texture_decref(device->onscreen_depth_stencil->container); - } - device->onscreen_depth_stencil = depth_stencil; -- wined3d_surface_incref(device->onscreen_depth_stencil); +- wined3d_texture_incref(device->onscreen_depth_stencil->container); -} - static BOOL is_full_clear(const struct wined3d_surface *target, const RECT *draw_rect, const RECT *clear_rect) @@ -115,19 +115,19 @@ index eecb8b2..b1502c1 100644 - device->onscreen_depth_stencil = NULL; + surface = device->cs->onscreen_depth_stencil; + device->cs->onscreen_depth_stencil = NULL; - wined3d_surface_decref(surface); + wined3d_texture_decref(surface->container); } -@@ -4559,10 +4544,10 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, +@@ -4561,10 +4546,10 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, state_unbind_resources(&device->state); } - if (device->onscreen_depth_stencil) + if (device->cs->onscreen_depth_stencil) { -- wined3d_surface_decref(device->onscreen_depth_stencil); +- wined3d_texture_decref(device->onscreen_depth_stencil->container); - device->onscreen_depth_stencil = NULL; -+ wined3d_surface_decref(device->cs->onscreen_depth_stencil); ++ wined3d_texture_decref(device->cs->onscreen_depth_stencil->container); + device->cs->onscreen_depth_stencil = NULL; } @@ -148,7 +148,7 @@ index 21ce53a..9ec380a 100644 if (ds->resource.locations & location) SetRect(¤t_rect, 0, 0, ds->ds_current_size.cx, ds->ds_current_size.cy); diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c -index 1ae7bb0..13d82e2 100644 +index 6ded6cc..0a8da3d 100644 --- a/dlls/wined3d/swapchain.c +++ b/dlls/wined3d/swapchain.c @@ -588,10 +588,10 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT @@ -158,15 +158,15 @@ index 1ae7bb0..13d82e2 100644 - if (depth_stencil == swapchain->device->onscreen_depth_stencil) + if (depth_stencil == swapchain->device->cs->onscreen_depth_stencil) { -- wined3d_surface_decref(swapchain->device->onscreen_depth_stencil); +- wined3d_texture_decref(swapchain->device->onscreen_depth_stencil->container); - swapchain->device->onscreen_depth_stencil = NULL; -+ wined3d_surface_decref(swapchain->device->cs->onscreen_depth_stencil); ++ wined3d_texture_decref(swapchain->device->cs->onscreen_depth_stencil->container); + swapchain->device->cs->onscreen_depth_stencil = NULL; } } } diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index 4e3da0c..212db68 100644 +index dec58e5..035517f 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2116,15 +2116,12 @@ struct wined3d_device @@ -213,5 +213,5 @@ index 4e3da0c..212db68 100644 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; -- -2.6.1 +2.6.2 diff --git a/patches/wined3d-CSMT_Main/0081-wined3d-Poll-queries-automatically-in-the-CS.patch b/patches/wined3d-CSMT_Main/0081-wined3d-Poll-queries-automatically-in-the-CS.patch index 588b13ef..1d3b7d77 100644 --- a/patches/wined3d-CSMT_Main/0081-wined3d-Poll-queries-automatically-in-the-CS.patch +++ b/patches/wined3d-CSMT_Main/0081-wined3d-Poll-queries-automatically-in-the-CS.patch @@ -1,4 +1,4 @@ -From 70b1167ff814efa7b8e397fdaa8fdfd9988a4868 Mon Sep 17 00:00:00 2001 +From d4993de1feaab2ff73335fc976e7917a115376eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Sat, 6 Jul 2013 19:18:48 +0200 Subject: wined3d: Poll queries automatically in the CS @@ -10,7 +10,7 @@ Subject: wined3d: Poll queries automatically in the CS 3 files changed, 180 insertions(+), 128 deletions(-) diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c -index 0c8284e..29d963e 100644 +index d1b4d7c..0441ca3 100644 --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c @@ -69,7 +69,6 @@ enum wined3d_cs_op @@ -97,7 +97,7 @@ index 0c8284e..29d963e 100644 static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size) @@ -2034,17 +1992,45 @@ void wined3d_cs_switch_onscreen_ds(struct wined3d_cs *cs, - wined3d_surface_incref(cs->onscreen_depth_stencil); + wined3d_texture_incref(cs->onscreen_depth_stencil->container); } +static inline void poll_queries(struct wined3d_cs *cs) @@ -143,7 +143,7 @@ index 0c8284e..29d963e 100644 { continue; diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c -index 9bdb35e..690903e 100644 +index 1c6d713..d607eb5 100644 --- a/dlls/wined3d/query.c +++ b/dlls/wined3d/query.c @@ -241,6 +241,15 @@ ULONG CDECL wined3d_query_decref(struct wined3d_query *query) @@ -536,10 +536,10 @@ index 9bdb35e..690903e 100644 return WINED3D_OK; } diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index dd230d6..ebd928a 100644 +index 75ca493..ec9a821 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -1101,6 +1101,7 @@ struct wined3d_occlusion_query +@@ -1112,6 +1112,7 @@ struct wined3d_occlusion_query struct list entry; GLuint id; struct wined3d_context *context; @@ -547,7 +547,7 @@ index dd230d6..ebd928a 100644 }; union wined3d_gl_query_object -@@ -1136,6 +1137,7 @@ struct wined3d_timestamp_query +@@ -1147,6 +1148,7 @@ struct wined3d_timestamp_query struct list entry; GLuint id; struct wined3d_context *context; @@ -555,7 +555,7 @@ index dd230d6..ebd928a 100644 }; void context_alloc_timestamp_query(struct wined3d_context *context, struct wined3d_timestamp_query *query) DECLSPEC_HIDDEN; -@@ -2651,6 +2653,7 @@ struct wined3d_cs +@@ -2675,6 +2677,7 @@ struct wined3d_cs struct wined3d_cs_queue queue; LONG pending_presents; @@ -563,7 +563,7 @@ index dd230d6..ebd928a 100644 }; struct wined3d_cs *wined3d_cs_create(struct wined3d_device *device) DECLSPEC_HIDDEN; -@@ -2746,6 +2749,7 @@ enum query_state { +@@ -2770,6 +2773,7 @@ enum query_state { struct wined3d_query_ops { HRESULT (*query_get_data)(struct wined3d_query *query, void *data, DWORD data_size, DWORD flags); @@ -571,7 +571,7 @@ index dd230d6..ebd928a 100644 void (*query_issue)(struct wined3d_query *query, DWORD flags); }; -@@ -2761,7 +2765,8 @@ struct wined3d_query +@@ -2785,7 +2789,8 @@ struct wined3d_query DWORD data_size; void *extendedData; @@ -582,5 +582,5 @@ index dd230d6..ebd928a 100644 /* TODO: Add tests and support for FLOAT16_4 POSITIONT, D3DCOLOR position, other -- -2.5.1 +2.6.2 diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index 17ac9fc3..ab6dfe88 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -115,7 +115,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c switch (swapchain->desc.swap_effect) @@ -574,6 +626,31 @@ { - wined3d_surface_decref(swapchain->device->cs->onscreen_depth_stencil); + wined3d_texture_decref(swapchain->device->cs->onscreen_depth_stencil->container); swapchain->device->cs->onscreen_depth_stencil = NULL; +#else /* STAGING_CSMT */ + surface_validate_location(front, WINED3D_LOCATION_DRAWABLE); @@ -139,7 +139,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c + fb->depth_stencil->width, fb->depth_stencil->height); + if (ds == swapchain->device->onscreen_depth_stencil) + { -+ wined3d_surface_decref(swapchain->device->onscreen_depth_stencil); ++ wined3d_texture_decref(swapchain->device->onscreen_depth_stencil->container); + swapchain->device->onscreen_depth_stencil = NULL; +#endif /* STAGING_CSMT */ } @@ -3140,10 +3140,10 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c + surface_modify_ds_location(device->onscreen_depth_stencil, WINED3D_LOCATION_TEXTURE_RGB, + device->onscreen_depth_stencil->ds_current_size.cx, + device->onscreen_depth_stencil->ds_current_size.cy); -+ wined3d_surface_decref(device->onscreen_depth_stencil); ++ wined3d_texture_decref(device->onscreen_depth_stencil->container); + } + device->onscreen_depth_stencil = depth_stencil; -+ wined3d_surface_incref(device->onscreen_depth_stencil); ++ wined3d_texture_incref(device->onscreen_depth_stencil->container); +} + +#endif /* STAGING_CSMT */ @@ -3390,7 +3390,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c + { + surface = device->onscreen_depth_stencil; + device->onscreen_depth_stencil = NULL; -+ wined3d_surface_decref(surface); ++ wined3d_texture_decref(surface->container); + } + + if (device->fb.depth_stencil) @@ -4431,12 +4431,12 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c state_unbind_resources(&device->state); @@ -4405,6 +5091,12 @@ { - wined3d_surface_decref(device->cs->onscreen_depth_stencil); + wined3d_texture_decref(device->cs->onscreen_depth_stencil->container); device->cs->onscreen_depth_stencil = NULL; +#else /* STAGING_CSMT */ + if (device->onscreen_depth_stencil) + { -+ wined3d_surface_decref(device->onscreen_depth_stencil); ++ wined3d_texture_decref(device->onscreen_depth_stencil->container); + device->onscreen_depth_stencil = NULL; +#endif /* STAGING_CSMT */ } @@ -5136,7 +5136,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c + surface_modify_ds_location(prev_surface, WINED3D_LOCATION_DISCARDED, prev->width, prev->height); + if (prev_surface == device->onscreen_depth_stencil) + { -+ wined3d_surface_decref(device->onscreen_depth_stencil); ++ wined3d_texture_decref(device->onscreen_depth_stencil->container); + device->onscreen_depth_stencil = NULL; + } + }