Re: [g-a-devel] Questions about the gnome-mag design



Carlos Eduardo Rodrigues Diogenes wrote:

Bill Haneman wrote:

Carlos

Try specifying the screen number in your call, for instance:

magnifier -mv -t myip:0.0 -s myip:0.0


Yes, this work, but the delay to show the magnified area is worst then I executing the application in my machine. I think that the X traffic is too high.

I expect so, since this is causing ALL of the pixel movement to be passed over the X wire.

You really need to run the magnifier on the same host as the target X server for reasonable performance. It's OK for the 'source' display to be remote, but making the 'target' remote will slow things down terribly, as you see.

There's no way to avoid this, since you are asking for all the magnification processing to happen remote from the X displays, so all pixmaps have to go over the wire every time in this case.

Bill



However I have never tested the magnifier with source and target the same, but both remote.
You might also try

magnifier -display myip:0.0 -mv

or setting the DISPLAY env variable before starting the magnifier. One of those should work I think.

Bill

Carlos Eduardo Rodrigues Diogenes wrote:

Bill Haneman wrote:

(sorry for replying to myself - this is a clarification)
Bill Haneman wrote:...


Also, there are situations where the magnifier service may need to run on a different host from the client. For instance, if you are running a remote application, you don't really want the magnifier to run remotely as well, because of the much larger amount of X traffic and the CPU requirements of the magnification service. CORBA allows this at least in theory (although our current 'bonobo-activation' mechanism does not recognize remote servers).




The CPU requirements isn't is a big problem, because if you start the
gnome-mag in a remote machine, probably, this machine will have a better
CPU than the machine that is running the X Server. The X traffic is
really important, but I think that it's not a big problem, because we
have solutions like vino and xdmcp that works really fine, and how
gnome-mag uses the DAMAGE extension this problem is minimized. I raised
this aspect, because here in Brazil we have many places with old
machines, that will not support a good magnifier without delay, so is
more cheap buy a good server and use the old machines like dummy terminals.


By this I mean that "bonobo-activation-server" doesn't report remote magnification services to a client which is requesting an instance of gnome-mag. However, gnome-mag should work fine with remote _X servers_ as far as I know - at least, I have used this feature in the past. (Carlos, did you get this working on your system? Maybe a bug somewhere?)




no... here is the output of what I get when I call gnome-mag with this
command line in the remote machine:

#: magnifier -mv -t myip:0 -s myip:0

(magnifier:19579): Bonobo-WARNING **: Assigning a default value to a non
readable property 'source-display-screen'

(magnifier:19579): Bonobo-WARNING **: Assigning a default value to a non
readable property 'target-display-screen'

(magnifier:19579): Gdk-CRITICAL **: gdk_display_get_screen: assertion
`ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay) > screen_num' failed

(magnifier:19579): Gdk-CRITICAL **: gdk_screen_get_root_window:
assertion `GDK_IS_SCREEN (screen)' failed

(magnifier:19579): Gdk-CRITICAL **: gdk_display_get_screen: assertion
`ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay) > screen_num' failed

(magnifier:19579): Gdk-CRITICAL **: gdk_screen_get_root_window:
assertion `GDK_IS_SCREEN (screen)' failed

(magnifier:19579): Gdk-CRITICAL **: gdk_display_get_screen: assertion
`ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay) > screen_num' failed

(magnifier:19579): Gdk-CRITICAL **: gdk_screen_get_width: assertion
`GDK_IS_SCREEN (screen)' failed

(magnifier:19579): Gdk-CRITICAL **: gdk_display_get_screen: assertion
`ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay) > screen_num' failed

(magnifier:19579): Gdk-CRITICAL **: gdk_screen_get_height: assertion
`GDK_IS_SCREEN (screen)' failed

(magnifier:19579): Gdk-CRITICAL **: gdk_display_get_screen: assertion
`ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay) > screen_num' failed

(magnifier:19579): Gdk-CRITICAL **: gdk_screen_get_width: assertion
`GDK_IS_SCREEN (screen)' failed

(magnifier:19579): Gdk-CRITICAL **: gdk_display_get_screen: assertion
`ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay) > screen_num' failed

(magnifier:19579): Gdk-CRITICAL **: gdk_screen_get_height: assertion
`GDK_IS_SCREEN (screen)' failed

(magnifier:19579): Gdk-CRITICAL **: gdk_display_get_screen: assertion
`ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay) > screen_num' failed

(magnifier:19579): Gdk-CRITICAL **: gdk_screen_get_root_window:
assertion `GDK_IS_SCREEN (screen)' failed

(magnifier:19579): Gdk-CRITICAL **: gdk_display_get_screen: assertion
`ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay) > screen_num' failed

(magnifier:19579): Gdk-CRITICAL **: gdk_screen_get_root_window:
assertion `GDK_IS_SCREEN (screen)' failed

(magnifier:19579): Gdk-WARNING **: gdkdrawable-x11.c:904 drawable is not
a pixmap or window
The program 'magnifier' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadDrawable (invalid Pixmap or Window parameter)'.
  (Details: serial 9 error_code 9 request_code 154 minor_code 1)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)


If we can get the bonobo-activation-server to return the CORBA object ID of a remote gnome-mag service (or hack some other mechanism for getting the object ID), then a remote client (for instance, a remote instance of gnopernicus) can talk to a local gnome-mag service through the bonobo/CORBA IPC interface.

Bill

This sort of case is probably more common in some corporate environments, but we are not sure just how important it will be in the future.















[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]