Henri Verbeet : wined3d: Track SFLAG_DISCARD per-texture.
Module: wine Branch: master Commit: 4896cda6c51370218eb32e6420e0b5dfacb5e6b1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=4896cda6c51370218eb32e6420... Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Thu Apr 14 19:32:47 2016 +0200 wined3d: Track SFLAG_DISCARD per-texture. Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/wined3d/cs.c | 2 +- dlls/wined3d/surface.c | 3 --- dlls/wined3d/swapchain.c | 2 +- dlls/wined3d/texture.c | 2 ++ dlls/wined3d/wined3d_private.h | 6 +----- 5 files changed, 5 insertions(+), 10 deletions(-) diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c index 583f1e2..2e5a3a6 100644 --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c @@ -421,7 +421,7 @@ static void wined3d_cs_exec_set_depth_stencil_view(struct wined3d_cs *cs, const struct wined3d_surface *prev_surface = wined3d_rendertarget_view_get_surface(prev); if (prev_surface && (device->swapchains[0]->desc.flags & WINED3DPRESENTFLAG_DISCARD_DEPTHSTENCIL - || prev_surface->flags & SFLAG_DISCARD)) + || prev_surface->container->flags & WINED3D_TEXTURE_DISCARD)) { surface_modify_ds_location(prev_surface, WINED3D_LOCATION_DISCARDED, prev->width, prev->height); if (prev_surface == device->onscreen_depth_stencil) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 9dfefe0..9b5a192 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -4533,9 +4533,6 @@ HRESULT wined3d_surface_init(struct wined3d_surface *surface, struct wined3d_tex list_init(&surface->renderbuffers); list_init(&surface->overlays); - /* Flags */ - if (flags & WINED3D_TEXTURE_CREATE_DISCARD) - surface->flags |= SFLAG_DISCARD; if (lockable || desc->format == WINED3DFMT_D16_LOCKABLE) surface->resource.access_flags |= WINED3D_RESOURCE_ACCESS_CPU; diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c index e9e6bfa..73b1673 100644 --- a/dlls/wined3d/swapchain.c +++ b/dlls/wined3d/swapchain.c @@ -616,7 +616,7 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, struct wined3d_surface *ds = wined3d_rendertarget_view_get_surface(fb->depth_stencil); if (ds && (swapchain->desc.flags & WINED3DPRESENTFLAG_DISCARD_DEPTHSTENCIL - || ds->flags & SFLAG_DISCARD)) + || ds->container->flags & WINED3D_TEXTURE_DISCARD)) { surface_modify_ds_location(ds, WINED3D_LOCATION_DISCARDED, fb->depth_stencil->width, fb->depth_stencil->height); diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c index 55d2a8e..2faaaa8 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c @@ -223,6 +223,8 @@ static HRESULT wined3d_texture_init(struct wined3d_texture *texture, const struc texture->flags |= WINED3D_TEXTURE_POW2_MAT_IDENT | WINED3D_TEXTURE_NORMALIZED_COORDS; if (flags & WINED3D_TEXTURE_CREATE_GET_DC_LENIENT) texture->flags |= WINED3D_TEXTURE_PIN_SYSMEM | WINED3D_TEXTURE_GET_DC_LENIENT; + if (flags & WINED3D_TEXTURE_CREATE_DISCARD) + texture->flags |= WINED3D_TEXTURE_DISCARD; return WINED3D_OK; } diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 6fd93e9..b69db4d 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2445,6 +2445,7 @@ struct wined3d_texture_ops #define WINED3D_TEXTURE_NORMALIZED_COORDS 0x00000400 #define WINED3D_TEXTURE_GET_DC_LENIENT 0x00000800 #define WINED3D_TEXTURE_DC_IN_USE 0x00001000 +#define WINED3D_TEXTURE_DISCARD 0x00002000 #define WINED3D_TEXTURE_ASYNC_COLOR_KEY 0x00000001 @@ -2646,8 +2647,6 @@ struct wined3d_surface struct wined3d_resource resource; struct wined3d_texture *container; - DWORD flags; - UINT pow2Width; UINT pow2Height; GLuint rb_multisample; @@ -2734,9 +2733,6 @@ void wined3d_surface_upload_data(struct wined3d_surface *surface, const struct w void draw_textured_quad(const struct wined3d_surface *src_surface, struct wined3d_context *context, const RECT *src_rect, const RECT *dst_rect, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN; -/* Surface flags: */ -#define SFLAG_DISCARD 0x00000002 /* ??? */ - struct wined3d_sampler { struct wine_rb_entry entry;
participants (1)
-
Alexandre Julliard