From: Allan Schaffer (allan++at++sgi.com)
Date: 06/01/2000 19:51:49
On May 31, 2:53pm, Ken Lindsay wrote:
> I'm trying to figure how to use perfly on a multipipe system and
> the man page is not much help. perfly accepts the -M but I don't
> see any difference between that and one screen mode. How do I
> specify the number and configuration of the pipes? Do I have to
> use irCombine to set up the window manager for multipipe first?
> and all the other questions that are pertinent to this query.
The short answer: My bet is that you're running in a multi-keyboard
configuration. Type:
/usr/gfx/gfxinfo | grep Managed
If you see output like this:
Managed (":0.0") 1280x1024
Managed (":1.0") 1280x1024
Managed (":2.0") 1280x1024
and NOT:
Managed (":0.0") 1280x1024
Managed (":0.1") 1280x1024
Managed (":0.2") 1280x1024
Then switch the system back to a single-keyboard config and perfly
will "just work" automatically. To do that, go to /usr/lib/X11/xdm
and modify the 'Xservers' file to read: (all one line, - your mailer
may break this into two)
:0 secure /usr/bin/X11/X -bs -nobitscale -c -pseudomap 4sight -solidroot sgilightblue -cursorFG red -cursorBG white
Then stopgfx; killall xdm; startgfx.
If that's not it, ignore the rest. :-)
The longer answer:
A graphics pipe is analogous in the X Window System with the concept
of an "X Screen". Every X Display has a single keyboard & mouse and
at least one X Screen. Multiple X screens can be collected together
into one X Display.
With that in mind, a system with multiple graphics pipes can either
be set up as:
A: multiple X screens making up one X display
(notation :0.0, :0.1, :0.2, etc),
all controlled by one keyboard/mouse
This is the default
or
B: one X screen each on multiple X displays
(notation :0.0, :1.0, :2.0, etc)
each controlled by its own keyboard/mouse
or
C: Any varation of the above, ie
groups of X screens on multiple X displays,
(notation :0.0, :0.1, :1.0, :1.1, etc)
first & second pipe share a keyboard, 3rd has its own.
When Performer goes looking for multiple pipes it looks for X screens
on the same X DISPLAY as the program was started. So pfGetPipe(2)
returns the pipe denoted by :0.2, and so on.
But if you're running in a multi-keyboard config, the pipes are
numbered differently, :0.0, :1.0, :2.0, and so on.
There is some religous debate whether pfGetPipe(2) should go and grab
the pipe on :2.0 in a multi-keyboard config, if :0.2 is not present.
The original idea of a multi-keyboard configuration is to allow
multiple users to each use the same system, with each individual
being given a graphics pipe for themselves. In that paradigm you
wouldn't want an application fired off by User #1 to suddenly appear
on the screen of User #2.
But on the flip side some folks don't care if that happens and in
fact want it to happen that way -- since reconfiguring requires root
access and cycling the graphics, they prefer to leave their system
configured in the most intricate way they might use it (in this case,
with a separate keyboard per pipe) and would like to be able to fall
back to a simpler setup without reconfiguring.
As I mentioned Performer is currently written to handle the former
methodology only. You can force it into the latter, but then there
is a glitch if you explicitly open (via pfOpenWSConnection) windows
on pipes numbered :0.0 :1.0 :2.0 -- Performer thinks they're all on
the same screen (0) and serializes the DRAW process of each -- but
although the debate rages on this is something that can be fixed for
a future release.
As a final aside we've got some plans to make perfly a lot easier to
configure (in a future future release), and I think the ability to
specify explicit host:display.screen strings on the command line or
config file would be a keen improvement.
Allan
-- Allan Schaffer allan++at++sgi.com Silicon Graphics http://reality.sgi.com/allan
This archive was generated by hypermail 2b29 : Thu Jun 01 2000 - 19:51:54 PDT