=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: wined3d: Add registry setting to enable multisample textures.

Alexandre Julliard julliard at winehq.org
Fri Feb 9 14:51:45 CST 2018


Module: wine
Branch: master
Commit: 11dd0601c5184e58c708d7763b9f55e572d52e1b
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=11dd0601c5184e58c708d7763b9f55e572d52e1b

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Fri Feb  9 13:03:22 2018 +0100

wined3d: Add registry setting to enable multisample textures.

The registry key helps to add multisample textures support incrementally
without breaking the current support for multisample renderbuffers. It
might be also useful to have a possibility to disable multisample
textures when they are the default code path for multisampling in
wined3d.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wined3d/directx.c         | 2 ++
 dlls/wined3d/wined3d_main.c    | 3 +++
 dlls/wined3d/wined3d_private.h | 1 +
 3 files changed, 6 insertions(+)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 1be6d2b..6dee5ed 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -4244,6 +4244,8 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter,
         WARN("Disabling ARB_draw_indirect because ARB_base_instance is not supported.\n");
         gl_info->supported[ARB_DRAW_INDIRECT] = FALSE;
     }
+    if (gl_info->supported[ARB_TEXTURE_MULTISAMPLE] && !wined3d_settings.multisample_textures)
+        gl_info->supported[ARB_TEXTURE_MULTISAMPLE] = FALSE;
 
     wined3d_adapter_init_limits(gl_info);
 
diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c
index 28a34a7..d3d3f2d 100644
--- a/dlls/wined3d/wined3d_main.c
+++ b/dlls/wined3d/wined3d_main.c
@@ -81,6 +81,7 @@ struct wined3d_settings wined3d_settings =
     PCI_DEVICE_NONE,/* PCI Device ID */
     0,              /* The default of memory is set in init_driver_info */
     NULL,           /* No wine logo by default */
+    FALSE,          /* Prefer multisample renderbuffers to multisample textures by default. */
     ~0u,            /* Don't force a specific sample count by default. */
     FALSE,          /* No strict draw ordering. */
     FALSE,          /* Don't range check relative addressing indices in float constants. */
@@ -284,6 +285,8 @@ static BOOL wined3d_dll_init(HINSTANCE hInstDLL)
             if (!wined3d_settings.logo) ERR("Failed to allocate logo path memory.\n");
             else memcpy(wined3d_settings.logo, buffer, len);
         }
+        if (!get_config_key_dword(hkey, appkey, "MultisampleTextures", &wined3d_settings.multisample_textures))
+            ERR_(winediag)("Setting multisample textures to %#x.\n", wined3d_settings.multisample_textures);
         if (!get_config_key_dword(hkey, appkey, "SampleCount", &wined3d_settings.sample_count))
             ERR_(winediag)("Forcing sample count to %u. This may not be compatible with all applications.\n",
                     wined3d_settings.sample_count);
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index bf17a1c..f1f7530 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -391,6 +391,7 @@ struct wined3d_settings
     /* Memory tracking and object counting. */
     UINT64 emulated_textureram;
     char *logo;
+    unsigned int multisample_textures;
     unsigned int sample_count;
     BOOL strict_draw_ordering;
     BOOL check_float_constants;




More information about the wine-cvs mailing list