[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Undefined video mode number: 314



On 2010-01-13 at 07:18:51 -0500, Stanisław T. Findeisen wrote:
> What are those sync frequency ranges?

The sync frequency ranges that the X server assumes for a
non-EDID monitor when nothing is specified for them
in the config file can be found by examining the startup messages.
Going back to your original Xorg.0.log output, they are:

  (II) s3(0): Configured Monitor: Using default hsync range of 31.50-37.90 kHz
  (II) s3(0): Configured Monitor: Using default vrefresh range of 50.00-70.00 Hz

As you can see, this is considerably more restrictive that the published specs
in the owners manual, which are 30-70 kHz horizontal and 50-160 Hz vertical.
Manual configuration is nearly always required to get the most out of a non-EDID
monitor.  And there's no substitute for knowing what the correct specs are.

On 2010-01-13 at 07:18:51 -0500, Stanisław T. Findeisen wrote:
> Less??

Yes.  Xorg.0.log doesn't lie.  The maximum pixel clock rate supported by the
s3 driver for the Trio32/64 chipset at a color depth of 16 is 80 Mhz, which
is *less* than the video bandwidth of the monitor, which according to the
published specs in the owner's manual is 110 MHz.  It's the video card that
is limiting you, not the monitor.  The video card's small amount of video RAM
is what is limiting you to high color (color depth 16) instead of true color
(color depth 24).  The monitor is capable of true color.  And it's the video
card's maximum pixel clock rate that is limiting the maximum vertical refresh
rate that you can get out of it.  By the way, the maximum pixel clock rate of
the video card is dependent in part on the color depth.  Before you throttled
it back to 16-bit color depth, the maximum pixel clock rate was only 50 MHz!
Go back and check your earlier posts if you don't believe me.

If the reverse were true, you might want to throttle back your video card
to keep it from overclocking your monitor.  For example, if the video card had
a maximum pixel clock rate of 150 MHz you might put this in the video device
section:

     Section "Device"
             Identifier      "Configured Video Device"
             .
             .
             .
             DacSpeed        110
             .
             .
             .
     EndSection

This artificially restricts the video card to a maximum speed of 110 MHz
so it won't go past what your monitor can handle.  Unfortunately, there
doesn't appear to be a way to specify the video bandwidth of the monitor
to the X Server, which is really how it should be done.  Exceeding the
video bandwidth of the monitor causes image sharpness to suffer.

On 2010-01-13 at 07:18:51 -0500, Stanisław T. Findeisen wrote:
> (**) s3(0): *Default mode "1024x768": 78.8 MHz, 60.0 kHz, 75.0 Hz
> (II) s3(0): Modeline "1024x768"x75.0   78.75  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.0 kHz)
> (**) s3(0):  Default mode "1024x768": 75.0 MHz, 56.5 kHz, 70.1 Hz
> (II) s3(0): Modeline "1024x768"x70.1   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz)
> (**) s3(0):  Default mode "1024x768": 65.0 MHz, 48.4 kHz, 60.0 Hz
> (II) s3(0): Modeline "1024x768"x60.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz)
> (**) s3(0):  Default mode "1024x768": 44.9 MHz, 35.5 kHz, 87.0 Hz (I)
> (II) s3(0): Modeline "1024x768"x87.0   44.90  1024 1032 1208 1264  768 768 776 817 interlace +hsync +vsync (35.5 kHz)
> 
> Why, in the log lines above, (((pixel clock rate) / ((v-res) * (h-res))) != v-refresh)?
> Here: http://en.wikipedia.org/wiki/XFree86_Modeline they say that there should be equality.
> For instance: in the  1st line, 78.8 MHz / (1024*768) > 100, but the horizontal refresh rate is less: 75 Hz.
> For instance: in the last line, 44.9 MHz / (1024*768) =  57, but the horizontal refresh rate is more: 87 Hz.

You're confusing the frame length and the resolution.  They are not the same.
Let's work out the timings for a specific example.  Let's use this one:

(**) s3(0): *Default mode "1024x768": 78.8 MHz, 60.0 kHz, 75.0 Hz
(II) s3(0): Modeline "1024x768"x75.0   78.75  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.0 kHz)

This is a good example because the pixel clock rate is 78.8 MHz, which is not
far from the maximum pixel clock rate (often referred to informally as
a "dot clock" rate) supported by the video card, which is 80 MHz.  Let's look
at those numbers in the modeline.  The first number, 78.75, is the pixel clock
rate, assumed to be megahertz.  (If you round this number to three significant
digits, you get 78.8, which is what is listed in the summary line above it.
But the actual clock rate is 78.75 MHz.)  The second number, 1024, is the
horizontal *resolution*.  It is the number of *visible* pixels in each horizontal
line.  The third number, 1040, represents the start of the horizontal sync
pulse.  The fourth number, 1136, represents the end of the horizontal sync pulse.
And the fifth number, 1312, represents the end of the horizontal frame.  It
is this number, the horizontal *frame length*, not 1024, the horizontal
*resolution*, that you use in your division.  For example,

78,750,000 / 1312 = 60,022.865

This is the horizontal refresh rate, which rounded to three significant digits
is 60 kHz.  This is within the horizontal sync frequency range of 30-70 kHz;
so we're within specs.

Continuing on, the sixth number, 768, is the vertical *resolution*.  It is the
number of *visible* scan lines on the screen.  The seventh number, 769,
represents the start of the vertical sync pulse.  The eighth number, 772,
represents the end of the vertical sync pulse.  And finally, the ninth number,
800, represents the end of the vertical frame.  It is this number, the
vertical *frame length*, not 768, the vertical *resolution*, that you use
in your next division.

60,022.865 / 800 = 75.028581

This is the vertical refresh rate, which when rounded to three significant
digits yields 75.0 Hz.  This is within the vertical sync frequency range of
50-160 Hz; so again we're within specs.

The above calculations are for a non-interlaced mode, which most modes are.
The last mode you cited as an example is an interlaced mode.
In an interlaced mode, the video card scans *every other*
line *every other* pass.  It will scan all the odd numbered lines, then
all the even numbered lines, then go back to the odd numbered lines, etc.
87 Hz is actually the "half screen" vertical refresh rate.  It's the number
of vertical scans completed in one second.  But each vertical scan only
writes half of the lines.  The calculations for an interlaced mode are
more complicated and I'm not going to go into details on it.
These days, many video chipsets and/or drivers don't support interlaced
modes anymore.  They were a way to reduce flicker on monitors with low
video bandwidth and they have largely outlived their usefulness.

On 2010-01-13 at 07:18:51 -0500, Stanisław T. Findeisen wrote:
> Where do those modes come from, if there are none in the config file
> and my monitor does not support EDID?

The X server has an internal list of VESA standard video modes
that it can choose from.

On 2010-01-13 at 07:18:51 -0500, Stanisław T. Findeisen wrote:
> I can also see that the monitor mode I want
> (1024x768 / 94.5 Mhz / 68.677 kHz / 85 Hz from the monitor manual)
> is not on the list. Why?

I'm not sure if that exact modeline is in the X server's
database of VESA standard modelines or not.  If not, there's
probably something else that is close.  But even if it were,
it still wouldn't be chosen.  That mode requires a pixel clock
rate of 94.5 MHz.  That's above 80.  Too high.

On 2010-01-13 at 07:18:51 -0500, Stanisław T. Findeisen wrote:
> What do those line prefixes ((--), (==), (**), (WW), (II) etc.)
> in the log stand for? I would guess (WW) stands for "warning",
> but all the rest looks like "notice"...

The Xorg.0.log file itself tells you what they mean.  I quote:

Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.

On 2010-01-13 at 07:18:51 -0500, Stanisław T. Findeisen wrote:
> With this I am able to run 1024x768x16 @ 75 Hz! However, I wanted 85 Hz.

The video card's maximum pixel clock rate is too low to get a
vertical refresh rate of 85 Hz.  Your monitor can do it, but the
video card cannot.

On 2010-01-13 at 07:18:51 -0500, Stanisław T. Findeisen wrote:
> I also tried TargetRefresh=85 but with no success.

It tried!  But it couldn't find any modelines with a vertical refresh
rate of 85 Hz or higher that used a pixel clock rate of 80 MHz or lower.
75 Hz was the best it could do, and that required a pixel clock rate
of 78.75 MHz, just below the maximum.

On 2010-01-13 at 07:18:51 -0500, Stanisław T. Findeisen wrote:
> I would say maximum pixel clock rate supported by the video card
> is 80 MHz and *that* is the limit?...

For this driver, chipset, and color depth, yes.
You are now operating at the optimum capabilities of your video
card and monitor combination.  Congratulations.
I don't know about you, but my eyes cannot detect any noticeable
flicker at a 75 Hz vertical refresh rate.

Cheers,
SMP


Reply to: