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

Re: Undefined video mode number: 314



Mr. Findeisen, I just realized something.

On 2010-01-13 at 11:57:48 -0500 Stephen Powell wrote:
> 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.

Maybe I spoke too soon.  It's true that some video drivers and/or
chipsets no longer support interlaced modes.  But I'm not so sure that
they have "outlived their usefulness".  In fact, they may be
just the ticket in your situation.  You are bandwidth-constrained here,
not by the monitor's video bandwidth but by the video card's video
bandwidth.  You are currently operating your monitor at close to
your video card's maximum bandwidth (78.75 MHz vs. 80 MHz).
Yet you are operating at less than half of your monitor's maximum
vertical refresh rate (75 vs. 160).  This is exactly what interlaced
modes are designed for!

It appears from the Xorg.0.log file that your
video driver and chipset support interlacing.  I can't tell from
reading your monitor's manual whether it supports interlacing or not.
It doesn't say that it does, and it doesn't say that it doesn't.
The only way to find out is to try it.

Let's take a closer look at the modeline that your monitor is currently
operating under:

# 1024x768: 78.75 MHz, 60.0 kHz, 75.0 Hz
Modeline "1024x768" 78.75 1024 1040 1136 1312 768 769 772 800 +hsync +vsync

(You are not explicitly specifying this mode, it is being selected from
an internal table within the X server.)  We will make three minor changes
to it.  First, we will change the modeline name from "1024x768" to "custom".
Second, we will change the last number from 800 to 801 (interlaced modes
must have an odd vertical frame length).  Third, we add the interlace flag.
Your full xorg.conf file will now look something like this:

----------

Section "Device"
	Identifier	"Configured Video Device"
EndSection

Section "Monitor"
	Identifier	"Configured Monitor"
        VendorName      "Samsung"
        ModelName       "SyncMaster 550b"
        HorizSync       30-70
        VertRefresh     50-160
        Option          "MaxClock"   "110"
# 1024x768: 78.75 MHz, 60.0 kHz, 150 Hz (interlaced).
	Modeline	"custom" 78.75 1024 1040 1136 1312 768 769 772 801 +hsync +vsync Interlace
EndSection

Section "Screen"
	Identifier	"Default Screen"
	Device		"Configured Video Device"
	Monitor		"Configured Monitor"
	DefaultDepth	16
	SubSection	"Display"
		Depth		16
		Modes		"custom" "800x600" "640x480"
	EndSubSection
EndSection

Section "ServerLayout"
	Identifier	"Default Layout"
	Screen		"Default Screen"
EndSection

----------

Note that the word "custom" appears in two places: once in the Modeline
line in the "Monitor" section and the second time in the Modes statement
in the "Screen" section.  This pretty much forces it to use your custom
mode.  (But if it doesn't work you still have 800x600 and 640x480 to
fall back on via Ctrl+Alt+NumPlus and Ctlr+Alt+NumMinus.)

If it works, you will operate your monitor at 150 Hz vertical refresh!
Of course, it's an interlaced mode.  It's not as good as 150 Hz vertical
refresh non-interlaced.  But it's far superior to 75 Hz non-interlaced,
at least in theory.  You might want to give it a try and see how you like
it.

Reducing flicker in a bandwidth-constrained environment is what interlaced
modes were created for in the first place.  And that is the situation that
you are in.

I just recently changed monitors, and I'm in a similar situation.
I'm operating a custom interlaced mode right now as I compose this e-mail.
The monitor I'm using has a video bandwidth of only 70 MHz.  The fastest
vertical refresh rate I can get at 1024x768 resolution using the standard
video modes is 60 Hz, and it runs at a dot clock of 65 MHz (close to the
maximum of 70 MHz).

# 1024x768: 65 MHz, 48.4 kHz, 60 Hz
Modeline "1024x768" 65 1024 1048 1184 1344 768 771 777 806 -hsync -vsync

But for me, 60 Hz produces noticeable flicker and eye strain.  Although
I'm close to the maximum video bandwidth, I've still got plenty of room
in the vertical refresh department.  My monitor has a maximum vertical
refresh rate of 100 Hz!  There is a standard interlaced mode which runs
at 87 Hz, but just for grins I thought I'd try a custom mode.  Here's
what I came up with:

# 1024x768: 54 MHz, 40.2 kHz, 99.6 Hz (interlaced)
Modeline "custom" 54 1024 1048 1184 1344 768 771 777 807 -hsync -vsync Interlace

This could probably be improved some more, but I just did a rough cut
using the one I started with as a template.  I changed 806 to 807 to
get an odd number, then reduced the dot clock rate proportionately to
get the vertical refresh rate at 100 Hz.  No more (perceived) flicker!
No tearing!  No eye strain!  It works great.


Reply to: