Setting modes while the VT is inactive (was: Xserver crash on resume)
Keith Packard
keithp at keithp.com
Sun Nov 25 17:53:10 PST 2007
On Mon, 2007-11-26 at 02:00 +0100, Robert Gerlach wrote:
> #5 0xb7a90612 in i830_crtc_commit (crtc=0x821edd8)
> at ../../src/i830_display.c:839
> #6 0x080f5f89 in xf86CrtcSetMode (crtc=0x821edd8, mode=0xbfa7ce9c,
> rotation=<value optimized out>, x=0, y=0)
> at ../../../../hw/xfree86/modes/xf86Crtc.c:312
> #7 0x080f9c73 in xf86RandR12CrtcSet (pScreen=0x822aac8, randr_crtc=0x825ae88,
> randr_mode=0x825b8b0, x=0, y=0,
> Hope this helps little bit,
Yes, it does. Thanks. The bug we fixed last time was just running xrandr
*without* setting a mode. Setting a mode without having the X server
active seems significantly more problematic, and I'm not sure precisely
what to do. We could:
+ Just fail, and let you retry when the X server has become active.
+ Suspend the operation and make the client actually hang until the X
server was active again. This would require a bit of rework down inside
the mode setting code and up through the RandR extension, but nothing
impossible.
+ Pretend the mode was set and then hope nothing goes wrong when the
server is activated. This would really require that the driver be
involved in the process, so that it could vette the incoming mode
correctly and help make sure the selected mode really can be used.
That's a change in the driver responsibilities.
The first option is easiest, the second is a bit harder, but somewhat
troublesome (a client hangs for an arbitrary amount of time). The third
one places significant burden on the driver to check, but not execute,
the mode setting operation.
Anyone care which option we pick?
--
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/20071125/85822638/attachment.pgp>
More information about the xorg
mailing list