mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Rebase against a0d0d0dd0a5b4a500ab8d37cc6e687a202997d56.
This commit is contained in:
parent
425fb96870
commit
f673b561d0
@ -52,7 +52,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "bfb845f9fccb2ff5bff0b0ba3238fec7f9f7b710"
|
||||
echo "a0d0d0dd0a5b4a500ab8d37cc6e687a202997d56"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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(¤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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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;
|
||||
+ }
|
||||
+ }
|
||||
|
Loading…
Reference in New Issue
Block a user