I've managed to solve my own bug (#10545) by applying the following
patch to the xserver.
Please apply.
<Conspiracy mode on>
This monitor is "Vista Certified". I wonder if this is a pure coincidence...
<Conspiracy mode off>
With kind regards
Erik Andrén
(cherry picked from commit a63704f14a)
Core enter/leave events with detail Notify{Ancestor|Inferior|Nonlinear} are
only sent for the first/last pointer to enter/leave. Events with detail
Notify{Nonlinear}Virtual are sent at all times, but not to those windows that
currently have one or more pointers inside their boundaries.
Option "Enable" "True" will force the server to enable an output at startup
time, even if the output is not connected. This also causes the default
modes to be added for this output, allowing even sync ranges to be used to
pick out standard modes.
(cherry picked from commit a3d73ba2cb)
By default, use the screen monitor section for output 0, however, a driver
can change which output gets the screen monitor by calling
xf86OutputUseScreenMonitor.
(cherry picked from commit f4a8e54caf)
The entity (device) has a locking SAREA and a master file descriptor
that optionally isn't closed between server generation.
The locking SAREA contains the device hardware lock.
Each DRI screen creates an new SAREA containing the drawable lock,
drawable-and private info, the drawable SAREA.
The first screen optionally shares its drawable SAREA with the
device SAREA.
Default is to close the master descriptor between server generations,
and to share the drawable SAREA of the first screen with the device locking
SAREA. Thus we should (hopefully) have full backwards compatibility.
Mesa changes to support single-device multiple screens are pending.
This Acer monitor reports support for 75hz refresh via EDID, and yet when
that rate is delivered, the monitor does not sync and reports out of range.
Use the existing 60hz quirk for this monitor.
(cherry picked from commit 1328a288e9)
Send EnterNotify when first device enters the window, LeaveNotify when the
last device leaves the window. Additional devices will not cause additional
Enter/LeaveNotifies.
By the time CloseScreen gets called, we can't call ProcessInputEvents, as
the event queue will get unhappy. So just unregister our hooks instantly,
and hope that they don't get called.
Make core events carry the same modifier state as the extended events, so
that holding down Ctrl on keyboard A and pressing Q on keyboard B won't
cause your app to quit.
xf86SetSingleMode tries to resize all crtcs to match the selected mode. When
a CRTC has no matching mode, it now disables the CRTC (instead of crashing).
Also, poke the RandR extension when xf86SetSingleMode is done so that
appropriate events can be delivered, and so that future RandR queries return
correct information.
(cherry picked from commit dc6c4f6989)
/sys/devices reflects the bus topology, and we don't care that much.
Easier (and more reliable) to just look in /sys/bus/pci/devices, which
is a flat view.
As the driver EnterVT function generally re-enables the hardware and
prepares it for rendering, it must be called before any gl functions are
called which could touch the hardware.
Default core size limit for most environments is 0, which disables core
dumps. Add code in the -core option processing path to set the core limit to
the maximum value.