<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>Basic Things to Know about your Display and Adapter</TITLE>
</HEAD>
<BODY BGCOLOR="#efefef" TEXT="black" LINK="blue" VLINK="#551A8B" ALINK="red">

<A HREF="VideoModes.html"><EM>XFree86 Video Timings HOWTO</EM></A>
 <b>:</b> <EM>Basic Things to Know about your Display and Adapter</EM><BR>
<b>Previous:</b> <A HREF="VideoModes3.html"><EM>How Video Displays Work</EM></A><BR>
<b>Next:</b> <A HREF="VideoModes5.html"><EM>Interpreting the Basic Specifications</EM></A>


<HR NOSHADE>
  <H2><A NAME="4"></A>4. Basic Things to Know about your Display and Adapter<A NAME="basic"></A></H2>

<p>There are some fundamental things you need to know before hacking an Xconfig
entry.  These are: </p>
<p>
<ul>
<li>your monitor's horizontal and vertical sync frequency options</li>
<li>your video adapter's driving clock frequency, or "dot clock"</li>
<li>your monitor's bandwidth</li>
</ul>

The monitor sync frequencies: </p>
<p>The horizontal sync frequency is just the number of times per second the
monitor can write a horizontal scan line; it is the single most important
statistic about your monitor.  The vertical sync frequency is the number of
times per second the monitor can traverse its beam vertically. </p>
<p>Sync frequencies are usually listed on the specifications page of your monitor
manual.  The vertical sync frequency number is typically calibrated in Hz
(cycles per second), the horizontal one in KHz (kilocycles per second).  The
usual ranges are between 50 and 150Hz vertical, and between 31 and 135KHz
horizontal. </p>
<p>If you have a multisync monitor, these frequencies will be given as ranges.
Some monitors, especially lower-end ones, have multiple fixed frequencies.
These can be configured too, but your options will be severely limited by the
built-in monitor characteristics.  Choose the highest frequency pair for best
resolution.  And be careful --- trying to clock a fixed-frequency monitor at a
higher speed than it's designed for can easily damage it. </p>
<p>Earlier versions of this guide were pretty cavalier about overdriving
multisync monitors, pushing them past their nominal highest vertical 
sync frequency in order to get better performance.  We have since had more
reasons pointed out to us for caution on this score; we'll cover those under
<A HREF="VideoModes11.html#overd">Overdriving Your Monitor</A> below. </p>
<p>The card driving clock frequency: </p>
<p>Your video adapter manual's spec page will usually give you the card's dot
clock (that is, the total number of pixels per second it can write to the
screen).  If you don't have this information, the X server will get it for
you.  Even if your X locks up your monitor, it will emit a line of clock and
other info to standard output.  If you redirect this to a file, it should be
saved even if you have to reboot to get your console back.  (Recent versions 
of the X servers all support a --probeonly option that prints out this
information and exits without actually starting up X or changing the
video mode.) </p>
<p>Your X startup message should look something like one of the following
examples: </p>
<p>If you're using XFree86: </p>
<p>
<blockquote><code>
<pre>
Xconfig: /usr/X11R6/lib/X11/Xconfig
(**) stands for supplied, (--) stands for probed/default values
(**) Mouse: type: MouseMan, device: /dev/ttyS1, baudrate: 9600
Warning: The directory "/usr/andrew/X11fonts" does not exist.
         Entry deleted from font path.
(**) FontPath set to "/usr/lib/X11/fonts/misc/,/usr/lib/X11/fonts/75dpi/"
(--) S3: card type: 386/486 localbus
(--) S3: chipset:   924
                    ---
    Chipset -- this is the exact chip type; an early mask of the 86C911

(--) S3: chipset driver: s3_generic
(--) S3: videoram:  1024k
                    -----
         Size of on-board frame-buffer RAM

(**) S3: clocks:  25.00  28.00  40.00   3.00  50.00  77.00  36.00  45.00
(**) S3: clocks:   0.00   0.00  79.00  31.00  94.00  65.00  75.00  71.00
                  ------------------------------------------------------
                              Possible driving frequencies in MHz

(--) S3: Maximum allowed dot-clock: 110MHz
                                    ------
                                   Bandwidth
(**) S3: Mode "1024x768": mode clock =  79.000, clock used =  79.000
(--) S3: Virtual resolution set to 1024x768
(--) S3: Using a banksize of 64k, line width of 1024
(--) S3: Pixmap cache:
(--) S3: Using 2 128-pixel 4 64-pixel and 8 32-pixel slots
(--) S3: Using 8 pages of 768x255 for font caching
</pre>
</code></blockquote>
</p>
<p>If you're using SGCS or X/Inside X: </p>
<p>
<blockquote><code>
<pre>
WGA: 86C911 (mem: 1024k clocks: 25 28 40 3 50 77 36 45 0 0 79 31 94 65 75 71)
---  ------       -----         --------------------------------------------
 |     |            |                 Possible driving frequencies in MHz
 |     |            +-- Size of on-board frame-buffer RAM
 |     +-- Chip type
 +-- Server type
</pre>
</code></blockquote>
</p>
<p>Note: do this with your machine unloaded (if at all possible).  Because X is
an application, its timing loops can collide with disk activity, rendering the
numbers above inaccurate.  Do it several times and watch for the numbers to
stabilize; if they don't, start killing processes until they do.  SVr4 users:
the mousemgr process is particularly likely to mess you up.  </p>
<p>In order to avoid the clock-probe inaccuracy, you should clip out the clock
timings and put them in your Xconfig as the value of the Clocks property ---
this suppresses the timing loop and gives X an exact list of the clock values
it can try.  Using the data from the example above: </p>
<p>
<blockquote><code>
<pre>
wga
	Clocks	25 28 40 3 50 77 36 45 0 0 79 31 94 65 75 71
</pre>
</code></blockquote>

On systems with a highly variable load, this may help you avoid mysterious X
startup failures.  It's possible for X to come up, get its timings wrong due
to system load, and then not be able to find a matching dot clock in its
config database --- or find the wrong one! </p>

<H3><A NAME="5"></A>4.1. The monitor's video bandwidth:</H3>

<p>If you're running XFree86, your server will probe your card and tell you
what your highest-available dot clock is.</p>
<p>Otherwise, your highest available dot clock is approximately the monitor's
video bandwidth.  There's a lot of give here, though --- some monitors
can run as much as 30% over their nominal bandwidth.  The risks here have
to do with exceeding the monitor's rated vertical-sync frequency; we'll
discuss them in detail below.</p>
<p>Knowing the bandwidth will enable you to make more intelligent choices
between possible configurations.  It may affect your display's visual
quality (especially sharpness for fine details). </p>
<p>Your monitor's video bandwidth should be included on the manual's spec page.
If it's not, look at the monitor's highest rated resolution.  As a rule of
thumb, here's how to translate these into bandwidth estimates (and thus into
rough upper bounds for the dot clock you can use): </p>
<p>
<blockquote><code>
<pre>
	640x480			25
	800x600			36
	1024x768		65
	1024x768 interlaced	45
	1280x1024		110
	1600x1200		185
</pre>
</code></blockquote>
</p>
<p>BTW, there's nothing magic about this table; these numbers are just
the lowest dot clocks per resolution in the standard XFree86 Modes
database (except for the last, which I interpolated).  The bandwidth
of your monitor may actually be higher than the minimum needed for its
top resolution, so don't be afraid to try a dot clock a few MHz
higher. </p>
<p>Also note that bandwidth is seldom an issue for dot clocks under 65MHz
or so.  With an SVGA card and most hi-res monitors, you can't get
anywhere near the limit of your monitor's video bandwidth.  The
following are examples: </p>
<p>
<blockquote><code>
<pre>
	Brand				Video Bandwidth
	----------			---------------
	NEC 4D				75Mhz
	Nano 907a			50Mhz
	Nano 9080i			60Mhz
	Mitsubishi HL6615		110Mhz
	Mitsubishi Diamond Scan		100Mhz
	IDEK MF-5117			65Mhz
	IOCOMM Thinksync-17 CM-7126	136Mhz
	HP D1188A			100Mhz
	Philips SC-17AS			110Mhz
	Swan SW617			85Mhz
	Viewsonic 21PS			185Mhz
</pre>
</code></blockquote>

Even low-end monitors usually aren't terribly bandwidth-constrained for their
rated resolutions.  The NEC Multisync II makes a good example --- it can't
even display 800x600 per its spec.  It can only display 800x560.  For such low
resolutions you don't need high dot clocks or a lot of bandwidth; probably the
best you can do is 32Mhz or 36Mhz, both of them are still not too far from the
monitor's rated video bandwidth of 30Mhz. </p>
<p>At these two driving frequencies, your screen image may not be as sharp as it
should be, but definitely of tolerable quality. Of course it would be nicer if
NEC Multisync II had a video bandwidth higher than, say, 36Mhz.  But this is
not critical for common tasks like text editing, as long as the difference is
not so significant as to cause severe image distortion (your eyes would tell
you right away if this were so). </p>

<H3><A NAME="6"></A>4.2. What these control:</H3>

<p>The sync frequency ranges of your monitor, together with your video adapter's
dot clock, determine the ultimate resolution that you can use.  But it's up to
the driver to tap the potential of your hardware.  A superior hardware
combination without an equally competent device driver is a waste of money.
On the other hand, with a versatile device driver but less capable hardware,
you can push the hardware's envelope a little.  This is the design philosophy
of XFree86. </p>

 <HR NOSHADE>
<A HREF="VideoModes.html"><EM>XFree86 Video Timings HOWTO</EM></A>
 <b>:</b> <EM>Basic Things to Know about your Display and Adapter</EM><BR>
<b>Previous:</b> <A HREF="VideoModes3.html"><EM>How Video Displays Work</EM></A><BR>
<b>Next:</b> <A HREF="VideoModes5.html"><EM>Interpreting the Basic Specifications</EM></A>



</BODY>
</HTML>
