RandR (etc) DriverFunc

Thomas Winischhofer thomas at winischhofer.net
Wed Mar 16 13:22:01 PST 2005


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Egbert Eich wrote:
| Andy Ritger writes:
|  >
|  > Sorry I didn't get a chance to respond to this yesterday, Thomas
|  > and Egbert.
|  >
|  > This is a good point, Thomas.
|  >
|  > In the SetConfig case, it's nice for the driver to be notified
|  > when the size is changed, even if the rotation is not changing (eg,
|  > to reallocate vidmem for the root window's new resolution), though
|  > I'd say it's not crucial (atleast for the NVIDIA driver).
|
| Hm, when we change the size we call setMode() in the driver
| anyway. Doesn't this suffice?
| Currently we don't reallocate vidmem as we don't ever change the
| size of the video memory. This is not really supported in our
| model. This shortcoming needs to be resolved when reworking the
| driver.


While we are at it (size, namely):

I would love a driver-callback to set the "initial" randr size after
screeninit().

Currently, RandR is initialized after the driver's ScreenInit(). So the
driver MUST return the real virtual sizes when exiting from ScreenInit()
in order to make the server allocate the (correct) maximum root window size.

So the server always starts with size #0 (as seen through
xrandr-semantics). However, there is no way to start the server with
size #1.

What would that be good for?

Simple: I would like to be able to start the server in MergedFB
(TwinView) mode, but with only one head attached and a clone-mode as the
startup mode, and then let the user attach (or switch on) the second
head, switch to a non-clone mode and thereby - essentially - switch from
single-head to dual-head operation.

Currently this is impossible because there is no way to issue a
RandR-resize from within the driver after ScreenInit() but before
quitting InitOutput(). The RandR part would be server-side only (hence
pretty simple) because the server is in the setup-phase where no clients
need to be notified.

Hence, I need

1) a call-back which is called AFTER xf86RandRInit() in Initoutput() in
order to issue a resize (to the startup mode-size) at this point,

2) a RandR-symbol accessible from the driver to actually issue a resize.

Comments?

Thomas

- --
Thomas Winischhofer
Vienna/Austria
thomas AT winischhofer DOT net          http://www.winischhofer.net/
twini AT xfree86 DOT org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFCOKN5zydIRAktyUcRAvPCAJ9gGTXX3AEAQgD5LO+pwdmsOFg4GQCgm0fb
g7WMf6MvtU1YK3Qtzwu02fI=
=fJvm
-----END PGP SIGNATURE-----



More information about the xorg mailing list