Opened 4 years ago

Closed 4 years ago

Last modified 3 years ago

#286 closed enhancement (invalid)

question about 8bit pseudocolor support by xpra

Reported by: Ward Braspenning Owned by:
Priority: trivial Milestone:
Component: Global Keywords:
Cc:

Description (last modified by Antoine gmail)

Hello,

I need 8 bit pseudocolor for some x apps who use it (don't have code of these apps to change it) to get blinking colors.
But I don't get xpra working with depth = 8 bit.

When I (on a Red Hat 7.2) test 'xpra start' (v0.16.2-r11889) as root with DefaultDepth and Depth 8 in /root/.xpra/xorg.conf.d/Screen, I get following error in file ':0.log':

  File "window_bindings.pyx", line 604, in xpra.x11.bindings.window_bindings.X11WindowBindings.ensure_XComposite_support (xpra/x11/bindings/window_bindings.c:5406):
  ...
  File "window_bindings.pyx", line 426, in xpra.x11.bindings.window_bindings.X11WindowBindings.ensure_extension_support (xpra/x11/bindings/window_bindings.c:2342)
  ValueError: X11 extension Composite not available
  ...

See attachments for the necessary files.

I'm pretty sure it is a restriction in the x(dummy) server:

From source code package xorg-x11-server-Xorg, v 1.17.2, file composite/compext.c, fu CompositeExtensionInit:

  ...
  //Composite on 8bpp pseudocolor root windows appears to fail, so
  //just disable it on anything pseudocolor for safety.
          for (vis = pScreen->visuals; vis->vid != pScreen->rootVisual; vis++);
          if ((vis->class | DynamicClass) == PseudoColor)
              return;
  ...

Xvnc, on the other hand, does support 8-bit pseudocolor.
My questions are:

  • Is there a way to get 8 bit pseudocolor working with xpra that i overlook?
    • And do have the 'xpra'-developers an idea of what is necessary to get the 'composite' extension working with 8 bit pseudocolor. Or better to ask this on the Xorg team?

I don't know enough of it, but if Xvnc gets 8 bit pseudolor working, the I think it should also be possible to implement this for X + Composite extension. Xvnc must also use something Composite like, no?

Thanks in advance if you have the time and effort to look into these questions.

Attachments (1)

xpra_config_and_log.tar.gz (19.7 KB) - added by Ward Braspenning 4 years ago.
/etc/xpra/xpra.conf

Download all attachments as: .zip

Change History (3)

Changed 4 years ago by Ward Braspenning

Attachment: xpra_config_and_log.tar.gz added

/etc/xpra/xpra.conf

comment:1 Changed 4 years ago by Antoine gmail

Description: modified (diff)
Resolution: invalid
Status: newclosed

If the Xorg server + dummy driver had support for the composite extension, xpra does not yet have code to handle 8-bit pixel data - though that could quite easily be added then. Maybe code could also be added to xpra to read pixels from windows without the composite extension, but that's unlikely to work well if at all, and will not handle things like overlapping windows..

It is probably worth asking the xorg mailing list.

As for Xvnc, it's a completely different tool: it does not use the composite extension at all which is why it is unable to manage individual windows, that's why you run a window manager within the vnc session whereas xpra is the window manager.

If you still want to create a ticket for this issue, please use the xpra bug tracker: http://xpra.org/trac/ for xpra related issues. (and try to use wikiformatting)

comment:2 Changed 3 years ago by Antoine Martin

xpra nows supports more bit depths: https://xpra.org/trac/wiki/ImageDepth

Note: See TracTickets for help on using tickets.