winex11: Detect broken NVIDIA RandR setups.
This commit is contained in:
parent
86779241c6
commit
8776e1c0e1
|
@ -24,6 +24,7 @@
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(xrandr);
|
WINE_DEFAULT_DEBUG_CHANNEL(xrandr);
|
||||||
|
WINE_DECLARE_DEBUG_CHANNEL(winediag);
|
||||||
|
|
||||||
#ifdef SONAME_LIBXRANDR
|
#ifdef SONAME_LIBXRANDR
|
||||||
|
|
||||||
|
@ -419,6 +420,21 @@ static int xrandr12_init_modes(void)
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Recent (304.64, possibly earlier) versions of the nvidia driver only
|
||||||
|
* report a DFP's native mode through RandR 1.2 / 1.3. Standard DMT modes
|
||||||
|
* are only listed through RandR 1.0 / 1.1. This is completely useless,
|
||||||
|
* but NVIDIA considers this a feature, so it's unlikely to change. The
|
||||||
|
* best we can do is to fall back to RandR 1.0 and encourage users to
|
||||||
|
* consider more cooperative driver vendors when we detect such a
|
||||||
|
* configuration. */
|
||||||
|
if (output_info->nmode == 1 && XQueryExtension( gdi_display, "NV-CONTROL", &i, &j, &ret ))
|
||||||
|
{
|
||||||
|
ERR_(winediag)("Broken NVIDIA RandR detected, falling back to RandR 1.0. "
|
||||||
|
"Please consider using the Nouveau driver instead.\n");
|
||||||
|
ret = -1;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
if (!(xrandr12_modes = HeapAlloc( GetProcessHeap(), 0, sizeof(*xrandr12_modes) * output_info->nmode )))
|
if (!(xrandr12_modes = HeapAlloc( GetProcessHeap(), 0, sizeof(*xrandr12_modes) * output_info->nmode )))
|
||||||
{
|
{
|
||||||
ERR("Failed to allocate xrandr mode info array.\n");
|
ERR("Failed to allocate xrandr mode info array.\n");
|
||||||
|
|
Loading…
Reference in New Issue