xf86-video-intel, modesetting branch

Keith Packard keithp at keithp.com
Sat Jan 27 17:31:29 PST 2007

On Sat, 2007-01-27 at 21:14 +0100, Krzysztof Halasa wrote:
> I don't exactly understand the logic behind pScrn->modes,
> and "output modes".

pScrn->modes is purely for legacy API support; the driver fills in those
fields for DGA and other things, but doesn't use them for it's own
purposes at all.

The per-output modes are what the driver uses now; those are generated
by reading the EDID data, pulling modes based on timing information from
the built-in modes and adding any custom modes placed in the config file
for that output.

> I have
> Section "Monitor"
>         Identifier      "Monitor"
>         HorizSync       30-111
>         VertRefresh     50-160
>         Option          "NoDDC"
>         ModeLine          "640x480" ...
>         ModeLine          "800x600" ...
> EndSection

If you just want the standard 640x480 and 800x600 timings, you needn't
add custom modes here; the sync timings should select the right modes.
If you want a specific mode to be used at startup, you can add

	Option		"PreferredMode"	"800x600"

> Section "Screen"
>         Identifier      "Screen"
>         Device          "VGA"
>         Monitor         "Monitor"
>         #Option         "monitor-VGA" "Monitor1"

Right, this is how you associate a monitor section with a specific
output to control how modes are selected for that output.

>         DefaultDepth    24
>         SubSection "Display"
>                 Viewport        0 0
>                 Virtual         1600 1200
>                 Depth           24
>                 Modes          "640x480" "800x600" "1024x768"

Having a Modes entry here shouldn't have any effect; the only way to
affect which mode is used by default is to set the preferred mode option
in the monitor section.

> In this case ModeLines in Monitor section are ignored (perhaps thanks
> to i830_xf86Crtc.c:xf86SetScrnInfoModes()) and all I get are default
> modes. If I uncomment that "monitor-VGA" option, I also get
> modes specified with "Monitor1".

Right, with multiple outputs, I'm not sure which one (or ones) to
associate with the single monitor supported in the existing
configuration. There is a notion of the 'compat output' in the driver
which is used for other places where the system assumes there is only
one monitor; perhaps I could use that here as well?

> I understand a single CRTC can drive more than 1 "monitor".
> Wouldn't it be better to not ignore the "main" modes, and perhaps
> to append "monitor-*" and default modes to it (and then validate
> the list against, say, sync rates of all "monitors")?
> The same seems to apply to sync rates, are "main monitor's" sync
> rates ignored on purpose?

Yes, again, I don't know which output to associate the existing monitor
section with.

> Perhaps I'm missing something important here?

Not really, I think you've figured out what it does. The remaining
question is what it should do.

keith.packard at intel.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.x.org/archives/xorg/attachments/20070127/4ac7eb6b/attachment.pgp>

More information about the xorg mailing list