[PATCH 3/5] wined3d: Get rid of the "AlwaysOffscreen" setting.

Henri Verbeet hverbeet at codeweavers.com
Tue Jan 24 15:15:26 CST 2017


Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
 dlls/wined3d/context.c         |  5 ++---
 dlls/wined3d/swapchain.c       | 21 ---------------------
 dlls/wined3d/texture.c         |  2 +-
 dlls/wined3d/wined3d_main.c    |  7 -------
 dlls/wined3d/wined3d_private.h |  1 -
 5 files changed, 3 insertions(+), 33 deletions(-)

diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 6112b40..b4e40fd 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -1752,7 +1752,7 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain,
     if (color_format->id == WINED3DFMT_P8_UINT)
         color_format = wined3d_get_format(gl_info, WINED3DFMT_B8G8R8A8_UNORM, target_usage);
 
-    /* When "always_offscreen" is enabled, we only use the drawable for
+    /* When using FBOs for off-screen rendering, we only use the drawable for
      * presentation blits, and don't do any rendering to it. That means we
      * don't need depth or stencil buffers, and can mostly ignore the render
      * target format. This wouldn't necessarily be quite correct for 10bpc
@@ -1760,8 +1760,7 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain,
      * Using the same format regardless of the color/depth/stencil targets
      * makes it much less likely that different wined3d instances will set
      * conflicting pixel formats. */
-    if (wined3d_settings.offscreen_rendering_mode != ORM_BACKBUFFER
-            && wined3d_settings.always_offscreen)
+    if (wined3d_settings.offscreen_rendering_mode != ORM_BACKBUFFER)
     {
         color_format = wined3d_get_format(gl_info, WINED3DFMT_B8G8R8A8_UNORM, target_usage);
         ds_format = wined3d_get_format(gl_info, WINED3DFMT_UNKNOWN, WINED3DUSAGE_DEPTHSTENCIL);
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
index 06215fc..e52ab41 100644
--- a/dlls/wined3d/swapchain.c
+++ b/dlls/wined3d/swapchain.c
@@ -749,8 +749,6 @@ static const struct wined3d_swapchain_ops swapchain_gdi_ops =
 
 static void swapchain_update_render_to_fbo(struct wined3d_swapchain *swapchain)
 {
-    RECT client_rect;
-
     if (wined3d_settings.offscreen_rendering_mode != ORM_FBO)
         return;
 
@@ -761,25 +759,6 @@ static void swapchain_update_render_to_fbo(struct wined3d_swapchain *swapchain)
         return;
     }
 
-    GetClientRect(swapchain->win_handle, &client_rect);
-
-    TRACE("Backbuffer %ux%u, window %ux%u.\n",
-            swapchain->desc.backbuffer_width,
-            swapchain->desc.backbuffer_height,
-            client_rect.right, client_rect.bottom);
-    TRACE("Multisample type %#x, quality %#x.\n",
-            swapchain->desc.multisample_type,
-            swapchain->desc.multisample_quality);
-
-    if (!wined3d_settings.always_offscreen && !swapchain->desc.multisample_type
-            && swapchain->desc.backbuffer_width == client_rect.right
-            && swapchain->desc.backbuffer_height == client_rect.bottom)
-    {
-        TRACE("Backbuffer dimensions match window dimensions, rendering onscreen.\n");
-        swapchain->render_to_fbo = FALSE;
-        return;
-    }
-
     TRACE("Rendering to FBO.\n");
     swapchain->render_to_fbo = TRUE;
 }
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index da003e1..b4267ed 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1366,7 +1366,7 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned
             return TRUE;
 
         case WINED3D_LOCATION_DRAWABLE:
-            if (!texture->swapchain && wined3d_settings.always_offscreen)
+            if (!texture->swapchain && wined3d_settings.offscreen_rendering_mode != ORM_BACKBUFFER)
                 ERR("Texture %p does not have a drawable.\n", texture);
             return TRUE;
 
diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c
index eb566bc..442a970 100644
--- a/dlls/wined3d/wined3d_main.c
+++ b/dlls/wined3d/wined3d_main.c
@@ -82,7 +82,6 @@ struct wined3d_settings wined3d_settings =
     TRUE,           /* Multisampling enabled by default. */
     ~0u,            /* Don't force a specific sample count by default. */
     FALSE,          /* No strict draw ordering. */
-    TRUE,           /* Don't try to render onscreen by default. */
     FALSE,          /* Don't range check relative addressing indices in float constants. */
     ~0U,            /* No VS shader model limit by default. */
     ~0U,            /* No HS shader model limit by default. */
@@ -304,12 +303,6 @@ static BOOL wined3d_dll_init(HINSTANCE hInstDLL)
             TRACE("Enforcing strict draw ordering.\n");
             wined3d_settings.strict_draw_ordering = TRUE;
         }
-        if (!get_config_key(hkey, appkey, "AlwaysOffscreen", buffer, size)
-                && !strcmp(buffer,"disabled"))
-        {
-            TRACE("Not always rendering backbuffers offscreen.\n");
-            wined3d_settings.always_offscreen = FALSE;
-        }
         if (!get_config_key(hkey, appkey, "CheckFloatConstants", buffer, size)
                 && !strcmp(buffer, "enabled"))
         {
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 6b28a3e..98b6522 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -298,7 +298,6 @@ struct wined3d_settings
     int allow_multisampling;
     unsigned int sample_count;
     BOOL strict_draw_ordering;
-    BOOL always_offscreen;
     BOOL check_float_constants;
     unsigned int max_sm_vs;
     unsigned int max_sm_hs;
-- 
2.1.4




More information about the wine-patches mailing list