Rebase against a0d0d0dd0a5b4a500ab8d37cc6e687a202997d56.

This commit is contained in:
Sebastian Lackner 2015-11-06 18:47:17 +01:00
parent 425fb96870
commit f673b561d0
6 changed files with 76 additions and 76 deletions

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "bfb845f9fccb2ff5bff0b0ba3238fec7f9f7b710"
echo "a0d0d0dd0a5b4a500ab8d37cc6e687a202997d56"
}
# Show version information

View File

@ -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?= <stefan@codeweavers.com>
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

View File

@ -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?= <stefan@codeweavers.com>
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

View File

@ -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?= <stefan@codeweavers.com>
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(&current_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

View File

@ -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?= <stefan@codeweavers.com>
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

View File

@ -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;
+ }
+ }