Rebase against b652c119690afe8b89b8ce9cddde34b4c1589a62.

This commit is contained in:
Sebastian Lackner 2016-02-24 20:46:39 +01:00
parent f9f999d16e
commit e1ff6e2674
7 changed files with 330 additions and 330 deletions

View File

@ -51,7 +51,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "7276d5fac1417dd81344db45b3af904f8f2c7d77"
echo "b652c119690afe8b89b8ce9cddde34b4c1589a62"
}
# Show version information

View File

@ -1,4 +1,4 @@
From 1c6393b228a4764d3b7383fea540948ba147e009 Mon Sep 17 00:00:00 2001
From a2fa1f714ab7acc02da34950500d5501e4eca65e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Tue, 21 Jan 2014 13:25:48 +0100
Subject: wined3d: Remove surface->pbo.
@ -10,7 +10,7 @@ Subject: wined3d: Remove surface->pbo.
3 files changed, 18 insertions(+), 20 deletions(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 604a79c..75abc0a 100644
index fd5cc8c..e9ae033 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -46,7 +46,7 @@ static void surface_cleanup(struct wined3d_surface *surface)
@ -22,8 +22,8 @@ index 604a79c..75abc0a 100644
|| surface->rb_resolved || !list_empty(&surface->renderbuffers))
{
struct wined3d_renderbuffer_entry *entry, *entry2;
@@ -56,10 +56,10 @@ static void surface_cleanup(struct wined3d_surface *surface)
context = context_acquire(surface->resource.device, NULL);
@@ -57,10 +57,10 @@ static void surface_cleanup(struct wined3d_surface *surface)
context = context_acquire(device, NULL);
gl_info = context->gl_info;
- if (surface->pbo)
@ -36,7 +36,7 @@ index 604a79c..75abc0a 100644
}
if (surface->rb_multisample)
@@ -485,7 +485,7 @@ static void surface_get_memory(const struct wined3d_surface *surface, struct win
@@ -473,7 +473,7 @@ static void surface_get_memory(const struct wined3d_surface *surface, struct win
if (location & WINED3D_LOCATION_BUFFER)
{
data->addr = NULL;
@ -45,7 +45,7 @@ index 604a79c..75abc0a 100644
return;
}
if (location & WINED3D_LOCATION_USER_MEMORY)
@@ -518,20 +518,20 @@ static void surface_prepare_buffer(struct wined3d_surface *surface)
@@ -506,20 +506,20 @@ static void surface_prepare_buffer(struct wined3d_surface *surface)
GLenum error;
const struct wined3d_gl_info *gl_info;
@ -71,7 +71,7 @@ index 604a79c..75abc0a 100644
checkGLcall("glBindBuffer");
GL_EXTCALL(glBufferData(GL_PIXEL_UNPACK_BUFFER, surface->resource.size + 4,
@@ -711,7 +711,7 @@ static void surface_unmap(struct wined3d_surface *surface)
@@ -693,7 +693,7 @@ static void surface_unmap(struct wined3d_surface *surface)
context = context_acquire(device, NULL);
gl_info = context->gl_info;
@ -80,7 +80,7 @@ index 604a79c..75abc0a 100644
GL_EXTCALL(glUnmapBuffer(GL_PIXEL_UNPACK_BUFFER));
GL_EXTCALL(glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0));
checkGLcall("glUnmapBuffer");
@@ -1091,10 +1091,10 @@ static HRESULT wined3d_surface_depth_blt(struct wined3d_surface *src_surface, DW
@@ -1089,10 +1089,10 @@ static HRESULT wined3d_surface_depth_blt(struct wined3d_surface *src_surface, DW
/* Context activation is done by the caller. */
static void surface_remove_pbo(struct wined3d_surface *surface, const struct wined3d_gl_info *gl_info)
{
@ -94,7 +94,7 @@ index 604a79c..75abc0a 100644
wined3d_resource_invalidate_location(&surface->resource, WINED3D_LOCATION_BUFFER);
}
@@ -1161,7 +1161,7 @@ static void surface_unload(struct wined3d_resource *resource)
@@ -1159,7 +1159,7 @@ static void surface_unload(struct wined3d_resource *resource)
}
/* Destroy PBOs, but load them into real sysmem before */
@ -103,7 +103,7 @@ index 604a79c..75abc0a 100644
surface_remove_pbo(surface, gl_info);
/* Destroy fbo render buffers. This is needed for implicit render targets, for
@@ -2674,7 +2674,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
@@ -2539,7 +2539,7 @@ HRESULT wined3d_surface_map(struct wined3d_surface *surface, struct wined3d_map_
context = context_acquire(device, NULL);
gl_info = context->gl_info;
@ -112,7 +112,7 @@ index 604a79c..75abc0a 100644
base_memory = GL_EXTCALL(glMapBuffer(GL_PIXEL_UNPACK_BUFFER, GL_READ_WRITE));
GL_EXTCALL(glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0));
checkGLcall("map PBO");
@@ -3990,7 +3990,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
@@ -3878,7 +3878,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
/* Don't use PBOs for converted surfaces. During PBO conversion we look at
* WINED3D_TEXTURE_CONVERTED but it isn't set (yet) in all cases it is
* getting called. */
@ -122,10 +122,10 @@ index 604a79c..75abc0a 100644
TRACE("Removing the pbo attached to surface %p.\n", surface);
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index dd3a600..d41b79e 100644
index 23f4a1b..e3fb0df 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1561,7 +1561,7 @@ HRESULT CDECL wined3d_texture_get_dc(struct wined3d_texture *texture, unsigned i
@@ -1652,7 +1652,7 @@ HRESULT CDECL wined3d_texture_get_dc(struct wined3d_texture *texture, unsigned i
}
if (!(surface->resource.map_binding == WINED3D_LOCATION_USER_MEMORY
|| surface->container->flags & WINED3D_TEXTURE_PIN_SYSMEM
@ -135,10 +135,10 @@ index dd3a600..d41b79e 100644
}
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 3bbe506..7aba4a7 100644
index 579d760..51aef5a 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2468,8 +2468,6 @@ struct wined3d_surface
@@ -2523,8 +2523,6 @@ struct wined3d_surface
UINT pow2Width;
UINT pow2Height;
@ -148,5 +148,5 @@ index 3bbe506..7aba4a7 100644
GLuint rb_resolved;
GLenum texture_target;
--
2.7.0
2.7.1

View File

@ -1,4 +1,4 @@
From bd7832b10a3c2c43e33abff97a9447d52166da3e Mon Sep 17 00:00:00 2001
From 9ab92589f48b8a5b6b8b65f90efb480d1b02c3d3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Wed, 18 Sep 2013 22:49:34 +0200
Subject: wined3d: Move buffer creation into the resource.
@ -14,10 +14,10 @@ surface_load_location will write a lot of ERRs.
3 files changed, 71 insertions(+), 62 deletions(-)
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
index 5204fee..0d2145f 100644
index 45c30ab..e9e5d8d 100644
--- a/dlls/wined3d/resource.c
+++ b/dlls/wined3d/resource.c
@@ -223,6 +223,18 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *
@@ -233,6 +233,18 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *
return WINED3D_OK;
}
@ -36,7 +36,7 @@ index 5204fee..0d2145f 100644
void resource_cleanup(struct wined3d_resource *resource)
{
const struct wined3d *d3d = resource->device->wined3d;
@@ -235,6 +247,9 @@ void resource_cleanup(struct wined3d_resource *resource)
@@ -245,6 +257,9 @@ void resource_cleanup(struct wined3d_resource *resource)
adapter_adjust_memory(resource->device->adapter, (INT64)0 - resource->size);
}
@ -46,17 +46,17 @@ index 5204fee..0d2145f 100644
wined3d_resource_free_sysmem(resource);
device_resource_released(resource->device, resource);
@@ -245,6 +260,9 @@ void resource_unload(struct wined3d_resource *resource)
@@ -254,6 +269,9 @@ void resource_unload(struct wined3d_resource *resource)
{
if (resource->map_count)
ERR("Resource %p is being unloaded while mapped.\n", resource);
+
+ if (resource->buffer_object)
+ wined3d_resource_free_bo(resource);
+
context_resource_unloaded(resource->device,
resource, resource->type);
}
@@ -597,3 +615,51 @@ void wined3d_resource_release_map_ptr(const struct wined3d_resource *resource,
DWORD CDECL wined3d_resource_set_priority(struct wined3d_resource *resource, DWORD priority)
@@ -604,3 +622,51 @@ void wined3d_resource_release_map_ptr(const struct wined3d_resource *resource,
return;
}
}
@ -109,7 +109,7 @@ index 5204fee..0d2145f 100644
+ }
+}
diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c
index 78b153d..c95af94 100644
index dd041869..99ab8d1 100644
--- a/dlls/wined3d/volume.c
+++ b/dlls/wined3d/volume.c
@@ -314,42 +314,10 @@ void wined3d_volume_load(struct wined3d_volume *volume, struct wined3d_context *
@ -215,10 +215,10 @@ index 78b153d..c95af94 100644
WARN("Out of memory.\n");
map_desc->data = NULL;
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 6dc1b04..0049165 100644
index 51aef5a..2df5349 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2238,6 +2238,9 @@ void wined3d_resource_invalidate_location(struct wined3d_resource *resource, DWO
@@ -2321,6 +2321,9 @@ void wined3d_resource_invalidate_location(struct wined3d_resource *resource, DWO
BOOL wined3d_resource_is_offscreen(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
void wined3d_resource_load_location(struct wined3d_resource *resource,
struct wined3d_context *context, DWORD location) DECLSPEC_HIDDEN;
@ -228,7 +228,7 @@ index 6dc1b04..0049165 100644
void wined3d_resource_release_map_ptr(const struct wined3d_resource *resource,
const struct wined3d_context *context) DECLSPEC_HIDDEN;
DWORD wined3d_resource_sanitize_map_flags(const struct wined3d_resource *resource, DWORD flags) DECLSPEC_HIDDEN;
@@ -2367,7 +2370,6 @@ static inline struct wined3d_volume *volume_from_resource(struct wined3d_resourc
@@ -2457,7 +2460,6 @@ static inline struct wined3d_volume *volume_from_resource(struct wined3d_resourc
return CONTAINING_RECORD(resource, struct wined3d_volume, resource);
}
@ -237,5 +237,5 @@ index 6dc1b04..0049165 100644
unsigned int level, struct wined3d_volume **volume) DECLSPEC_HIDDEN;
void wined3d_volume_destroy(struct wined3d_volume *volume) DECLSPEC_HIDDEN;
--
2.6.4
2.7.1

View File

@ -1,4 +1,4 @@
From 408f3f44631f7d3b32e936129e380992c5396094 Mon Sep 17 00:00:00 2001
From 37f94c5d3e7b4b872b793b5472bd7d5ccd5aa295 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Tue, 21 Jan 2014 16:41:33 +0100
Subject: wined3d: Don't delete the buffer in surface_cleanup.
@ -8,11 +8,11 @@ Subject: wined3d: Don't delete the buffer in surface_cleanup.
1 file changed, 6 deletions(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 48de325..e5edd34 100644
index a51954d..8054573 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -56,12 +56,6 @@ static void surface_cleanup(struct wined3d_surface *surface)
context = context_acquire(surface->resource.device, NULL);
@@ -57,12 +57,6 @@ static void surface_cleanup(struct wined3d_surface *surface)
context = context_acquire(device, NULL);
gl_info = context->gl_info;
- if (surface->resource.buffer_object)
@ -25,5 +25,5 @@ index 48de325..e5edd34 100644
{
TRACE("Deleting multisample renderbuffer %u.\n", surface->rb_multisample);
--
2.2.1
2.7.1

View File

@ -1,4 +1,4 @@
From 426922ff0b4f47661031f865c90529fb29f61d38 Mon Sep 17 00:00:00 2001
From 67b6f5ac75be711c4aa3c00e1d7153ee2b07dc0a 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 eb09795..21290d8 100644
}
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 4a3abed..af5b210 100644
index 8c3a4bc..66edff8 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -1511,6 +1511,12 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain,
@@ -1629,6 +1629,12 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain,
goto out;
}
@ -58,7 +58,7 @@ index 4a3abed..af5b210 100644
/* Initialize the texture unit mapping to a 1:1 mapping */
for (s = 0; s < MAX_COMBINED_SAMPLERS; ++s)
{
@@ -1840,6 +1846,7 @@ out:
@@ -1958,6 +1964,7 @@ out:
if (hdc) wined3d_release_dc(swapchain->win_handle, hdc);
device->shader_backend->shader_free_context_data(ret);
device->adapter->fragment_pipe->free_context_data(ret);
@ -66,15 +66,15 @@ index 4a3abed..af5b210 100644
HeapFree(GetProcessHeap(), 0, ret->free_event_queries);
HeapFree(GetProcessHeap(), 0, ret->free_occlusion_queries);
HeapFree(GetProcessHeap(), 0, ret->free_timestamp_queries);
@@ -1874,6 +1881,7 @@ void context_destroy(struct wined3d_device *device, struct wined3d_context *cont
@@ -1993,6 +2000,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);
+ HeapFree(GetProcessHeap(), 0, context->current_fb.render_targets);
HeapFree(GetProcessHeap(), 0, context->fbo_key);
HeapFree(GetProcessHeap(), 0, context->draw_buffers);
HeapFree(GetProcessHeap(), 0, context->blit_targets);
device_context_remove(device, context);
@@ -2385,7 +2393,7 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win
@@ -2505,7 +2513,7 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win
DWORD rt_mask = 0, *cur_mask;
UINT i;
@ -83,7 +83,7 @@ index 4a3abed..af5b210 100644
|| rt_count != context->gl_info->limits.buffers)
{
if (!context_validate_rt_config(rt_count, rts, dsv))
@@ -2430,6 +2438,8 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win
@@ -2550,6 +2558,8 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win
rt_mask = context_generate_rt_mask_no_fbo(device,
rt_count ? wined3d_rendertarget_view_get_surface(rts[0]) : NULL);
}
@ -92,7 +92,7 @@ index 4a3abed..af5b210 100644
}
else if (wined3d_settings.offscreen_rendering_mode == ORM_FBO
&& (!rt_count || wined3d_resource_is_offscreen(rts[0]->resource)))
@@ -2489,7 +2499,7 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win
@@ -2609,7 +2619,7 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win
static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const struct wined3d_device *device)
{
const struct wined3d_state *state = &device->state;
@ -101,7 +101,7 @@ index 4a3abed..af5b210 100644
struct wined3d_shader *ps = state->shader[WINED3D_SHADER_TYPE_PIXEL];
DWORD rt_mask, rt_mask_bits;
unsigned int i;
@@ -2519,7 +2529,7 @@ static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const
@@ -2639,7 +2649,7 @@ static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const
void context_state_fb(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
const struct wined3d_device *device = context->swapchain->device;
@ -110,7 +110,7 @@ index 4a3abed..af5b210 100644
DWORD rt_mask = find_draw_buffers_mask(context, device);
DWORD *cur_mask;
@@ -2551,6 +2561,8 @@ void context_state_fb(struct wined3d_context *context, const struct wined3d_stat
@@ -2671,6 +2681,8 @@ void context_state_fb(struct wined3d_context *context, const struct wined3d_stat
context_apply_draw_buffers(context, rt_mask);
*cur_mask = rt_mask;
}
@ -119,7 +119,7 @@ index 4a3abed..af5b210 100644
}
static void context_map_stage(struct wined3d_context *context, DWORD stage, DWORD unit)
@@ -3194,7 +3206,7 @@ BOOL context_apply_draw_state(struct wined3d_context *context, struct wined3d_de
@@ -3314,7 +3326,7 @@ BOOL context_apply_draw_state(struct wined3d_context *context, struct wined3d_de
{
const struct wined3d_state *state = &device->state;
const struct StateEntry *state_table = context->state_table;
@ -601,7 +601,7 @@ index 88c064c..da51493 100644
static unsigned int warned = 0;
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index 58d2fed..0e874b0 100644
index 3e08907..c94c9be 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -105,7 +105,7 @@ static void state_zenable(struct wined3d_context *context, const struct wined3d_
@ -660,7 +660,7 @@ index 58d2fed..0e874b0 100644
float scale;
union
@@ -4543,7 +4543,7 @@ static void vertexdeclaration(struct wined3d_context *context, const struct wine
@@ -4548,7 +4548,7 @@ static void vertexdeclaration(struct wined3d_context *context, const struct wine
static void viewport_miscpart(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
@ -669,7 +669,7 @@ index 58d2fed..0e874b0 100644
const struct wined3d_gl_info *gl_info = context->gl_info;
struct wined3d_viewport vp = state->viewport;
@@ -4721,7 +4721,7 @@ static void scissorrect(struct wined3d_context *context, const struct wined3d_st
@@ -4726,7 +4726,7 @@ static void scissorrect(struct wined3d_context *context, const struct wined3d_st
}
else
{
@ -678,7 +678,7 @@ index 58d2fed..0e874b0 100644
UINT height;
UINT width;
@@ -4789,7 +4789,7 @@ void state_srgbwrite(struct wined3d_context *context, const struct wined3d_state
@@ -4794,7 +4794,7 @@ void state_srgbwrite(struct wined3d_context *context, const struct wined3d_state
TRACE("context %p, state %p, state_id %#x.\n", context, state, state_id);
@ -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 293210c..341197d 100644
index 924bfaf..2de931f 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -3066,8 +3066,8 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
@@ -3051,8 +3051,8 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter)
{
struct wined3d_device *device = dst_surface->resource.device;
@ -815,10 +815,10 @@ index 0454eb7..cca2a93 100644
struct wined3d_context *context;
struct wined3d_surface *front;
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
index 81fb262..457b3f4 100644
index eeccb3b..5ebc9fa 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -4117,7 +4117,7 @@ void get_projection_matrix(const struct wined3d_context *context, const struct w
@@ -4146,7 +4146,7 @@ void get_projection_matrix(const struct wined3d_context *context, const struct w
float y_offset = context->render_offscreen
? (center_offset - (2.0f * y) - h) / h
: (center_offset - (2.0f * y) - h) / -h;
@ -827,7 +827,7 @@ index 81fb262..457b3f4 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;
@@ -4911,7 +4911,7 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d
@@ -4939,7 +4939,7 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d
break;
}
}
@ -837,7 +837,7 @@ index 81fb262..457b3f4 100644
|| !state->render_states[WINED3D_RS_CLIPPLANEENABLE])
{
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index a1962bc..c042259 100644
index 8abf8e9..0cff772 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1230,6 +1230,36 @@ struct wined3d_timestamp_query
@ -885,7 +885,7 @@ index a1962bc..c042259 100644
struct wined3d_swapchain *swapchain;
struct wined3d_surface *current_rt;
@@ -1346,12 +1377,6 @@ struct wined3d_context
@@ -1347,12 +1378,6 @@ struct wined3d_context
GLuint dummy_arbfp_prog;
};
@ -898,7 +898,7 @@ index a1962bc..c042259 100644
typedef void (*APPLYSTATEFUNC)(struct wined3d_context *ctx, const struct wined3d_state *state, DWORD state_id);
struct StateEntry
@@ -2076,7 +2101,7 @@ struct wined3d_stream_state
@@ -2077,7 +2102,7 @@ struct wined3d_stream_state
struct wined3d_state
{
DWORD flags;
@ -907,7 +907,7 @@ index a1962bc..c042259 100644
struct wined3d_vertex_declaration *vertex_declaration;
struct wined3d_stream_output stream_output[MAX_STREAM_OUT];
@@ -2182,7 +2207,6 @@ struct wined3d_device
@@ -2183,7 +2208,6 @@ struct wined3d_device
struct wine_rb_tree samplers;
/* Render Target Support */
@ -915,7 +915,7 @@ index a1962bc..c042259 100644
struct wined3d_surface *onscreen_depth_stencil;
struct wined3d_rendertarget_view *auto_depth_stencil_view;
@@ -2710,9 +2734,8 @@ struct wined3d_stateblock
@@ -2726,9 +2750,8 @@ struct wined3d_stateblock
void stateblock_init_contained_states(struct wined3d_stateblock *stateblock) DECLSPEC_HIDDEN;
void state_cleanup(struct wined3d_state *state) DECLSPEC_HIDDEN;
@ -927,7 +927,7 @@ index a1962bc..c042259 100644
void state_unbind_resources(struct wined3d_state *state) DECLSPEC_HIDDEN;
struct wined3d_cs_ops
@@ -2725,7 +2748,6 @@ struct wined3d_cs
@@ -2741,7 +2764,6 @@ struct wined3d_cs
{
const struct wined3d_cs_ops *ops;
struct wined3d_device *device;

View File

@ -1,4 +1,4 @@
From c9ba533914088eba32bfa04e4318c1b18b20388e Mon Sep 17 00:00:00 2001
From 15cd6f1aa8cfde737389b5265ee405ac26c92e8c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Fri, 30 Aug 2013 17:00:35 +0200
Subject: wined3d: Wrap GL BOs in a structure
@ -15,10 +15,10 @@ them for DISCARD maps.
6 files changed, 86 insertions(+), 28 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 46058ef..4325e65 100644
index e7b2cc2..305684e 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -5254,3 +5254,56 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
@@ -5154,3 +5154,56 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
else
return CallWindowProcA(proc, window, message, wparam, lparam);
}
@ -76,7 +76,7 @@ index 46058ef..4325e65 100644
+ wined3d_device_destroy_bo(device, context, bo);
+}
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
index 3b9c609..611bfa3 100644
index 769adae..fec76d6 100644
--- a/dlls/wined3d/resource.c
+++ b/dlls/wined3d/resource.c
@@ -236,12 +236,10 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *
@ -111,9 +111,9 @@ index 3b9c609..611bfa3 100644
- if (resource->buffer_object)
+ if (resource->buffer)
wined3d_resource_free_bo(resource);
}
context_resource_unloaded(resource->device,
@@ -537,7 +535,7 @@ void wined3d_resource_get_memory(const struct wined3d_resource *resource,
@@ -534,7 +532,7 @@ void wined3d_resource_get_memory(const struct wined3d_resource *resource,
{
if (location & WINED3D_LOCATION_BUFFER)
{
@ -122,7 +122,7 @@ index 3b9c609..611bfa3 100644
data->addr = NULL;
return;
}
@@ -646,7 +644,7 @@ BYTE *wined3d_resource_get_map_ptr(const struct wined3d_resource *resource,
@@ -643,7 +641,7 @@ BYTE *wined3d_resource_get_map_ptr(const struct wined3d_resource *resource,
{
case WINED3D_LOCATION_BUFFER:
gl_info = context->gl_info;
@ -131,7 +131,7 @@ index 3b9c609..611bfa3 100644
if (gl_info->supported[ARB_MAP_BUFFER_RANGE])
{
@@ -689,7 +687,7 @@ void wined3d_resource_release_map_ptr(const struct wined3d_resource *resource,
@@ -686,7 +684,7 @@ void wined3d_resource_release_map_ptr(const struct wined3d_resource *resource,
{
case WINED3D_LOCATION_BUFFER:
gl_info = context->gl_info;
@ -140,7 +140,7 @@ index 3b9c609..611bfa3 100644
GL_EXTCALL(glUnmapBuffer(GL_PIXEL_UNPACK_BUFFER));
GL_EXTCALL(glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0));
checkGLcall("Unmap GL buffer");
@@ -707,20 +705,14 @@ void wined3d_resource_release_map_ptr(const struct wined3d_resource *resource,
@@ -704,20 +702,14 @@ void wined3d_resource_release_map_ptr(const struct wined3d_resource *resource,
}
/* Context activation is done by the caller. */
@ -167,7 +167,7 @@ index 3b9c609..611bfa3 100644
BOOL wined3d_resource_prepare_system_memory(struct wined3d_resource *resource)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 40f4dab..3816f35 100644
index bce3067..d01501b 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -48,7 +48,7 @@ static void surface_cleanup(struct wined3d_surface *surface)
@ -179,7 +179,7 @@ index 40f4dab..3816f35 100644
|| surface->rb_resolved || !list_empty(&surface->renderbuffers))
{
struct wined3d_renderbuffer_entry *entry, *entry2;
@@ -3701,7 +3701,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
@@ -3585,7 +3585,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
/* Don't use PBOs for converted surfaces. During PBO conversion we look at
* WINED3D_TEXTURE_CONVERTED but it isn't set (yet) in all cases it is
* getting called. */
@ -189,10 +189,10 @@ index 40f4dab..3816f35 100644
TRACE("Removing the pbo attached to surface %p.\n", surface);
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 12796198..0fcc436 100644
index fb18d94..c4dc122 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1586,7 +1586,7 @@ HRESULT CDECL wined3d_texture_get_dc(struct wined3d_texture *texture, unsigned i
@@ -1677,7 +1677,7 @@ HRESULT CDECL wined3d_texture_get_dc(struct wined3d_texture *texture, unsigned i
}
if (!(surface->resource.map_binding == WINED3D_LOCATION_USER_MEMORY
|| surface->container->flags & WINED3D_TEXTURE_PIN_SYSMEM
@ -202,7 +202,7 @@ index 12796198..0fcc436 100644
}
diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c
index 807e626..d93a0bd 100644
index 8d827d1..c349a44 100644
--- a/dlls/wined3d/volume.c
+++ b/dlls/wined3d/volume.c
@@ -216,7 +216,7 @@ static void wined3d_volume_load_location(struct wined3d_resource *resource,
@ -230,10 +230,10 @@ index 807e626..d93a0bd 100644
if (volume->resource.locations & WINED3D_LOCATION_TEXTURE_RGB)
wined3d_texture_bind_and_dirtify(volume->container, context, FALSE);
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 877dd1e..67301c8 100644
index bc53f65..6fd14f9 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2120,6 +2120,14 @@ struct wined3d_state
@@ -2156,6 +2156,14 @@ struct wined3d_state
DWORD render_states[WINEHIGHEST_RENDER_STATE + 1];
};
@ -248,7 +248,7 @@ index 877dd1e..67301c8 100644
#define WINED3D_UNMAPPED_STAGE ~0U
/* Multithreaded flag. Removed from the public header to signal that
@@ -2229,6 +2237,11 @@ void device_invalidate_state(const struct wined3d_device *device, DWORD state) D
@@ -2265,6 +2273,11 @@ void device_invalidate_state(const struct wined3d_device *device, DWORD state) D
void device_invalidate_shader_constants(const struct wined3d_device *device, DWORD mask) DECLSPEC_HIDDEN;
void device_exec_update_texture(struct wined3d_context *context, struct wined3d_texture *src_texture,
struct wined3d_texture *dst_texture) DECLSPEC_HIDDEN;
@ -260,7 +260,7 @@ index 877dd1e..67301c8 100644
static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state)
{
@@ -2277,7 +2290,7 @@ struct wined3d_resource
@@ -2313,7 +2326,7 @@ struct wined3d_resource
DWORD priority;
void *heap_memory, *user_memory, *bitmap_data;
UINT custom_row_pitch, custom_slice_pitch;
@ -270,5 +270,5 @@ index 877dd1e..67301c8 100644
DWORD locations;
LONG access_fence;
--
2.7.0
2.7.1

File diff suppressed because it is too large Load Diff