Port-amd64 archive

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

Re: Intel builtin graphics, wsfb, gop - uses EDID?



On Wed, 16 Aug 2023, Greg Troxel wrote:

I am wondering if the builtin graphics is polling the monitor EDID and
this list is derived from the set of builtin modes that are within or
match the monitor.  Otherwise it would be bizarre to have 1680x1050 show
up.


genfb doesn't make use of EDID at all. In fact, you can't even get the EDID
data (try: wsconsctl -dw edid > edid.bin on 10.x) using it because it doesn't
implement the WSDISPLAYIO_GET_EDID ioctl. See wsdisplay(4) for what it will
handle.

It's your BIOS which has queried the monitor, changed the resolution and
set-up the framebuffer. genfb then just uses the memory handed to it.

Should I expect that if I hook it up to a 1600x1200 monitor, or via
displayport to a 2560x1440 monitor, that gop 0 will then refer to that
native resolution?


You could try it, but, a UEFI BIOS impl. need not provide any but some
standard, safe resolutions.

Is there a reason why "gop 0" is not chosen automatically?  I'm guessing
it is because it may not always go well, and thus it's best to have to
opt in.


Yup.

I'm also guessing that this does not work with xrandr because of lack of
plumbing and maybe because the wsfb driver is not mode-agile once the
system is booted.


It's because a) wsfb(4) is an Xorg display-driver for dumb framebuffers (just
a pixel-array which you address and write directly), and b) wsdisplay(4)--the
underlying abstraction for wsfb--doesn't support any of those advanced
features--even when it is running on top of an accelerated DRMKMS FB like
intelfb.

If you run wsfb(4) you also won't get:

a) multi-monitor support
b) HW brightness/contrast/gamma adjustment (install intel_backlight from pkgsrc
   to change the backlight brightness)
c) no accel, DRI, XrandR, XVideo, etc.

SW-rotation and turning the screen on & off are basically the only advanced
features you get with this X driver.

-RVP


Home | Main Index | Thread Index | Old Index