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>
This commit is contained in:
Józef Kucia 2018-02-09 13:03:22 +01:00 committed by Alexandre Julliard
parent 32e61de282
commit 11dd0601c5
3 changed files with 6 additions and 0 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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;