Module: wine Branch: master Commit: 11dd0601c5184e58c708d7763b9f55e572d52e1b URL: https://source.winehq.org/git/wine.git/?a=commit;h=11dd0601c5184e58c708d7763...
Author: Józef Kucia jkucia@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@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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;