i810 patch to swap Xinerama screens using mergedfb

Alan Hourihane alanh at fairlite.demon.co.uk
Fri Jan 12 07:42:48 PST 2007


Submit the patch to bugs.freedesktop.org and I'll apply it.

Alan.

On Fri, 2007-01-12 at 13:40 +0100, emisca wrote:
> I've read the code... there is a logic that assigns the first logical
> xinerama screen to the screen at bottom or left. The screen position
> doesn't permit to swap the logical xinerama screen number.
> My patch does it. Radeon man page explain this in that way:
>        Option "MergedXineramaCRT2IsScreen0" "boolean"
>               By default the pseudo-Xinerama provided by the driver makes  the
>               left-most  or  bottom head Xinerama screen 0.  Certain Xinerama-
>               aware applications do special things with screen 0.   To  change
>               that behavior, use this option.
>               The default value is undefined.
> 
> This is what I've implemented on i810 driver...
> 
> 2007/1/12, Alan Hourihane <alanh at fairlite.demon.co.uk>:
> > Have you tried using LeftOf or Below, instead of what you've probably
> > got now is RightOf or Above ??
> >
> > Alan.
> >
> > On Fri, 2007-01-12 at 12:34 +0100, emisca wrote:
> > > nobody cares about this... I find it very useful, ati driver has a
> > > similar behaviour, and I like to see it or a similar thing included
> > > upstream. Should it be possible?
> > >
> > > 2007/1/5, Emilio Scalise <emisca.ml at gmail.com>:
> > > > I've made a simple patch to swap logical screens exported by the fake
> > > > xinerama exposed by mergedfb. It's similar to the setting present in
> > > > the radeon driver "MergedXineramaCRT2IsScreen0". I've used a notation
> > > > similar to i810 option's names.
> > > > Now that I've found where to get latest agpgart modules, I will try it
> > > > using Ross Burton source debian packages (thanks Ross for those.. ;-)
> > > > ).
> > > >
> > > > This is the patch.. it works well for me........ (it's against 1.7.2
> > > > version, main branch, but it should apply also on newer versions).
> > > > Please merge it (if you like it)....
> > > >
> > > > --- i830_driver.c       2006-10-13 13:52:26.000000000 +0200
> > > > +++ /home/emi/i810drivnew.c     2007-01-03 13:42:23.000000000 +0100
> > > > @@ -268,6 +268,7 @@
> > > >     OPTION_SECONDHSYNC,
> > > >     OPTION_SECONDVREFRESH,
> > > >     OPTION_SECONDPOSITION,
> > > > +   OPTION_SECONDISSCRN0,
> > > >     OPTION_INTELXINERAMA
> > > >  } I830Opts;
> > > >
> > > > @@ -295,6 +296,7 @@
> > > >     {OPTION_SECONDHSYNC,        "SecondMonitorHorizSync",OPTV_STRING,
> > > >  {0}, FALSE },
> > > >     {OPTION_SECONDVREFRESH,"SecondMonitorVertRefresh",OPTV_STRING,{0}, FALSE },
> > > >     {OPTION_SECONDPOSITION,"SecondPosition",OPTV_STRING,        {0},    FALSE },
> > > > +   {OPTION_SECONDISSCRN0,"MergedXineramaSecondIsScreen0",
> > > > OPTV_BOOLEAN, {0}, FALSE },
> > > >     {OPTION_INTELXINERAMA,"MergedXinerama",OPTV_BOOLEAN,        {0},    TRUE},
> > > >     {-1,                        NULL,           OPTV_NONE,      {0},    FALSE}
> > > >  };
> > > > @@ -4685,6 +4687,13 @@
> > > >           }
> > > >           xfree(tempstr);
> > > >        }
> > > > +
> > > > +      /* If OPTION_SECONDISSCRN0 is true then swap screens */
> > > > +      if(xf86GetOptValBool(pI830->Options, OPTION_SECONDISSCRN0, TRUE)) {
> > > > +        if (pI830->SecondIsScrn0) pI830->SecondIsScrn0= FALSE;
> > > > +        else pI830->SecondIsScrn0= TRUE;
> > > > +      }
> > > > +
> > > >        if((s = (char *)xf86GetOptValString(pI830->Options, OPTION_METAMODES))) {
> > > >           pI830->MetaModes = xalloc(strlen(s) + 1);
> > > >          if(pI830->MetaModes)
> > > >
> > > _______________________________________________
> > > xorg mailing list
> > > xorg at lists.freedesktop.org
> > > http://lists.freedesktop.org/mailman/listinfo/xorg
> >
> >




More information about the xorg mailing list