Yes.
Pplu wonders why programs run more
slowly when the system is running with
multiple monitors.
Well, for one thing, of course, when
you have more than one monitor,
there's more stuff on the screen for
the system to keep track of. It's the
same reason that programs run more
slowly on a large monitor than on a
small monitor.
And if there's only one monitor, then
functions like MonitorFromPoint
become
trivial if the flag is something like
MONITOR_DEFAULTTONEAREST
, because when
there's only one monitor, answering
questions like "What monitor is
closest to this point"? becomes very
easy.
If your two monitors are not the same
dimensions, then the union of the two
monitors will not be rectangular,
which makes clipping against the union
of all monitors more complicated.
But I suspect the big penalty for
multiple monitors kicks in if you make
the mistake of setting your monitors
to different color formats, for
example, if you set one monitor to 565
format and set another to 24bpp.
If the two monitors do not use the
same color format, then programs will
be forced to use DIBs instead of DDBs
for screen bitmaps, in case a window
is moved to a window with a different
color format (or worse, is positioned
so it straddles two monitors with
different color formats). In
principle, programs need only use the
"worst-case" DIB; for example, if one
monitor is 555 and the other is 565,
then a 565 DIB will suffice. In
practice, however, most programs just
fall back to a 24bpp or 32bpp DIB when
faced with monitors with different
color formats.
(You query whether all monitors have
the same color format by calling
GetSystemMetrics(SM_SAMEDISPLAYFORMAT)
.)
Since a format conversion takes place
when a DIB is blitted to a device with
a different color format, forcing a
program to retain its bitmaps as DIBs
means that for at least one of the
monitors (and probably both), you're
going to undergo a format conversion
when that DIB is drawn to the screen.
There are also a few miscellaneous
optimizations which are disabled when
not all your monitors use the same
color format because the cost of using
DIBs outweighs the savings from the
optimization.
So if you haven't already, go into
your display settings and check that
you set all your monitors to the same
color depth. If you don't do this,
then a large class of graphics
optimizations is lost.
Not entirely related to performance, but the temperature of my AMD 6950 was raised by ten degrees solely by adding a second, identical monitor. – Alex – 2017-02-17T16:14:22.347
1Now that you've got twice the desktop screen real estate, are you running twice as much stuff? – JBRWilkinson – 2010-09-09T09:20:52.983
There is a discreet video card that is being used for both monitors and the machine is several years old. – BIBD – 2010-09-09T13:59:52.340
As far as running twice as much stuff, no. Most of what it has done is keep me from having to flip back and forth between two stacked windows (e.g., code on left monitor and executable on the right monitor) – BIBD – 2010-09-09T14:03:17.210