JAremko / docker-x11-bridge

Simple Xpra X11 bridge to enable GUI with any docker image
GNU General Public License v3.0
179 stars 39 forks source link

Is HiDPI possible? #4

Open aisamu opened 6 years ago

aisamu commented 6 years ago

Is there a way to get HiDPI from X programs, or at least a small-but-crisp rendering?

My current (only) target is spacemacs-docker, and running it right now gives me correctly sized but very blurry text. I imagine it is rendered on a lower resolution and then upscaled.

I've tried changing XORG_DPI (env), XPRA_DPI (env), desktop-scaling (xpra.conf), but I'm limited by my lack of knowledge on both Xpra and X11.

The current workaround is to disable the system "2x" scaling, so that Xpra receives the correct screen size (4k) and renders the output accordingly. It is indeed very small, but I can increase the font size and have normal-sized, crisp text.)

Please let me know if you'd like me to check/test something that I've missed.

This is an absurdly amazing tool! Thank you very much!

aisamu commented 6 years ago

Here's spacemacs rendered through x11-bridge (left) vs native (right).

screen shot 2018-07-17 at 10 22 03
JAremko commented 6 years ago

@aisamu Besides setting this and that vars via docker envs dno :thinking: Mb try fiddling with Xpra client settings.

aisamu commented 6 years ago

Yup, that's exactly what I've tried fiddling with! e.g. setting both mentioned vars to 192 gives me the same result, with the following output:

2018-07-18 00:52:26,335 client 1: setting scaling to 100%:
2018-07-18 00:52:26,346 client 1: sending updated screen size to server: 3360x1080 with 1 screens
2018-07-18 00:52:26,346 client 1:   ip-192-168-1-109.ec2.internal (1185x381 mm - DPI: 72x72)
2018-07-18 00:52:26,355 client 1:     monitor 1 1440x900 (508x317 mm - DPI: 72x72) workarea: 1440x877 at 0x23
2018-07-18 00:52:26,355 client 1:     monitor 2 1920x1080 at 1440x0 (677x381 mm - DPI: 72x72) workarea: 1920x1053 at 0x23
2018-07-18 00:52:26,422 server virtual display now set to 3600x1080 (best match for 3360x1080)
2018-07-18 00:52:26,422 received updated display dimensions
2018-07-18 00:52:26,422 client display size is 3360x1080 with 1 screen:
2018-07-18 00:52:26,423   ip-192-168-1-109.ec2.internal (1185x381 mm - DPI: 72x72)
2018-07-18 00:52:26,423     monitor 1 1440x900 (508x317 mm - DPI: 72x72) workarea: 1440x877 at 0x23
2018-07-18 00:52:26,423     monitor 2 1920x1080 at 1440x0 (677x381 mm - DPI: 72x72) workarea: 1920x1053 at 0x23
2018-07-18 00:52:26,441 DPI set to 42 x 25 (wanted 192 x 192)
2018-07-18 00:52:26,441  you may experience scaling problems, such as huge or small fonts, etc
2018-07-18 00:52:26,441  to fix this issue, try the dpi switch, or use a patched Xorg dummy driver
2018-07-18 00:52:26,458 sent updated screen size to 1 client: 3600x1080 (max 8192x4096)

Note that the advertised screen sizes are what OS X wants, not the true panel size. Both are actually 2x that.

I've also tried (all are active now):

// filename:linenumber
// Changes

/Applications/Xpra.app/Contents/Resources/etc/xpra/conf.d/05_features.conf:45
env = XPRA_DEFAULT_VFB_RESOLUTION=3840x2160

/Applications/Xpra.app/Contents/Resources/etc/xpra/conf.d/30_picture.conf:45
video-scaling = off
dpi = 192

/Applications/Xpra.app/Contents/Resources/etc/xpra/conf.d/40_client.conf:65
desktop-scaling = off

When I turn of the 2x scaling on the OS, I get the correct output on Xpra, with the desired 1x1 pixel mapping. This is the output during the change:

2018-07-18 01:19:48,644 client 3: sending updated screen size to server: 5280x2160 with 1 screens
2018-07-18 01:19:48,646 client 3:   ip-192-168-1-109.ec2.internal (1862x762 mm - DPI: 72x72)
2018-07-18 01:19:49,176 client 3:     monitor 1 1440x900 (508x317 mm - DPI: 72x72) workarea: 1440x873 at 0x23
2018-07-18 01:19:49,236 client 3:     monitor 2 3840x2160 at 1440x0 (1354x762 mm - DPI: 72x72) workarea: 3840x2137 at 0x23
2018-07-18 01:19:49,385 client 3: screen size change: will reinit the windows
2018-07-18 01:19:49,485 server virtual display now set to 5760x2160 (best match for 5280x2160)
2018-07-18 01:19:49,485 received updated display dimensions
2018-07-18 01:19:49,485 client display size is 5280x2160 with 1 screen:
2018-07-18 01:19:49,487   ip-192-168-1-109.ec2.internal (1862x762 mm - DPI: 72x72)
2018-07-18 01:19:49,487     monitor 1 1440x900 (508x317 mm - DPI: 72x72) workarea: 1440x873 at 0x23
2018-07-18 01:19:49,487     monitor 2 3840x2160 at 1440x0 (1354x762 mm - DPI: 72x72) workarea: 3840x2137 at 0x23
2018-07-18 01:19:49,556 DPI set to 68 x 51 (wanted 192 x 192)
2018-07-18 01:19:49,556  you may experience scaling problems, such as huge or small fonts, etc
2018-07-18 01:19:49,556  to fix this issue, try the dpi switch, or use a patched Xorg dummy driver
2018-07-18 01:19:49,562 sent updated screen size to 1 client: 5760x2160 (max 8192x4096)

The reason I cannot go with this workaround is that it makes everything else on the system incredibly small.

aisamu commented 6 years ago

I forgot to mention: setting desktop-scaling to 50% gives me the correct screen size for monitor 2 from Xpra's server logs, as well as the expected (smaller) font size on Spacemacs on my screen, but the pixel density doesn't increase (making it unreadable). :/

JAremko commented 6 years ago

@aisamu You can try using XQuartz instead of Xpra it will give you better performance and probably solve the problem.

aisamu commented 6 years ago

Good call! Tried it and unfortunately got the same results 😞.

Is there a way to advertise a forced, fake screen size (2x) to Xpra? Since it works when I turn off OSX's system scaling, I still have hope!

JAremko commented 6 years ago

@aisamu Hmm. I think you should ask at https://www.xpra.org/ they helped me a ton when I had feature request, found bugs.


@aisamu Btw can you try XQuartz and Xpra with something like Firefox? Just to make sure that we aren't searching for a problem in a wrong place.


https://bugs.freedesktop.org/show_bug.cgi?id=92777 :thinking:

aisamu commented 6 years ago

Tested Firefox with XQuartz, same behavior. (followed this: https://fredrikaverpil.github.io/2016/07/31/docker-for-mac-and-gui-applications/) Correct size (consistent with the OS), but extra-large pixels. Turning off system scaling "fixes" it as well (1-to-1 pixel mapping, everything becomes small).

Firefox with Xpra is interesting. With the DPI flags set to 192, FF renders as if it were on a HiDPI display, but at twice the size! Turning down the desktop-scaling to 0.5 brings it back to the correct size, but the DPI is reduced as well. So close! Firefox with Xpra and no DPI flags is just like the others.

aisamu commented 6 years ago

Firefox with Xpra using the web client behaves as the local client with DPI flags set: rendered as a HiDPI app, but at twice the size. (even with the DPI flags unset)

aisamu commented 6 years ago

I've asked on xpra's IRC channel and I was told the version we're using (2.0.1) is a bit old and unsupported. They've also asked if we're using the patched dummy driver, but I really couldn't answer with certainty. (they mentioned that https://xpra.org/trac/wiki/Xdummy should contain the patches)

JAremko commented 6 years ago

@aisamu We use dummy from Alpine repo https://pkgs.alpinelinux.org/package/edge/main/ppc64le/xf86-video-dummy

JAremko commented 6 years ago

(2.0.1) is a bit old and unsupported.

You can try build Xpra with a different version https://github.com/JAremko/docker-x11-bridge/blob/master/Dockerfile#L6 and submit PR if it works. You can figure out what is the latest one from by looking here https://www.xpra.org/src/

aisamu commented 6 years ago

I'm trying to build it with version 2.3, but the RUN command fails with returned a non-zero code: 3

JAremko commented 6 years ago

@aisamu Usually it means that Xpra changed its dependencies and we need to add new packages and stuff.

Look into build log :wink:

aisamu commented 6 years ago

OK, will check! The full output is:

ERROR: unsatisfiable constraints:
  gst-plugins-base1 (missing):
    required by: world[gst-plugins-base1]
  gst-plugins-good1 (missing):
    required by: world[gst-plugins-good1]
  gstreamer1 (missing):
    required by: world[gstreamer1]
The command '/bin/sh -c echo "http://nl.alpinelinux.org/alpine/edge/testing"     >> /etc/apk/repositories     && echo "http://nl.alpinelinux.org/alpine/edge/community"     >> /etc/apk/repositories     && apk --no-cache upgrade     && apk --no-cache add     bash     curl     cython     dbus-x11     desktop-file-utils     ffmpeg     gst-plugins-base1     gst-plugins-good1     gstreamer1     libvpx     libxcomposite     libxdamage     libxext     libxfixes     libxkbfile     libxrandr     libxtst     musl-utils     openrc     openssh     openssl     py-asn1     py-cffi     py-cryptography     py-dbus     py-enum34     py-gobject3     py-gtk     py-gtkglext     py-idna     py-ipaddress     py-lz4     py-netifaces     py-numpy     py-pillow     py-rencode     py-six     shared-mime-info     x264     xf86-video-dummy     xhost     xorg-server     && apk --no-cache add --virtual build-deps     build-base     cython-dev     git     ffmpeg-dev     flac-dev     libc-dev     libvpx-dev     libxcomposite-dev     libxdamage-dev     libxext-dev     libxfixes-dev     libxkbfile-dev     libxrandr-dev     libxtst-dev     linux-headers     opus-dev     py-dbus-dev     py-gtk-dev     py-gtkglext-dev     py-numpy-dev     py2-pip     python-dev     which     x264-dev     xvidcore-dev     && pip install     pycrypto     websockify     xxhash     && curl https://www.xpra.org/src/xpra-$XPRA_VERSION.tar.xz | tar -xJ     && cd xpra-$XPRA_VERSION     && echo -e 'Section "Module"\n  Load "fb"\n  EndSection'     >> etc/xpra/xorg.conf     && python2 setup.py install         --verbose         --with-Xdummy         --with-Xdummy_wrapper         --with-bencode         --with-clipboard         --with-csc_swscale         --with-cython_bencode         --with-dbus         --with-enc_ffmpeg         --with-enc_x264         --with-gtk2         --with-gtk_x11         --with-pillow         --with-server         --with-vpx         --with-vsock         --with-x11         --without-client         --without-csc_libyuv         --without-dec_avcodec2         --without-enc_x265         --without-gtk3         --without-mdns         --without-opengl         --without-printing         --without-sound         --without-webcam     && mkdir -p /var/run/xpra/     && cd ../..     && rm -fr xpra-$XPRA_VERSION     && git clone https://github.com/ncopa/su-exec.git /tmp/su-exec     && cd /tmp/su-exec     && make     && chmod 770 su-exec     && mv su-exec /usr/sbin/     && apk del build-deps     && rm -rf /var/cache/* /tmp/* /var/log/* ~/.cache     && mkdir -p /var/cache/apk     && mkdir -p /var/run/sshd     && chmod 0755 /var/run/sshd     && rc-update add sshd     && rc-status     && touch /run/openrc/softlevel     && /etc/init.d/sshd start > /dev/null 2>&1     && /etc/init.d/sshd stop > /dev/null 2>&1' returned a non-zero code: 3
JAremko commented 6 years ago

@aisamu replace it with gst-plugins-base, gst-plugins-good, gstreamer

JAremko commented 6 years ago

@aisamu Packages in Alpine got renamed (for some reason) when you have error like this try searching with a wild cards (i.e. *) https://pkgs.alpinelinux.org/packages?name=*gst-plugins-base*&branch=edge


It's a painful process :scream_cat:

aisamu commented 6 years ago

Thanks for the hand-holding, I'm really out my depth here!

aisamu commented 6 years ago

Changes so far

-ENV XPRA_VERSION=2.0.1
+ENV XPRA_VERSION=2.3

-    gst-plugins-base1 \
+    gst-plugins-base \

-    gst-plugins-good1 \
+    gst-plugins-good \

-    gstreamer1 \
+    gstreamer \

# required by lz4
+    py-future \ 

Observed non-breaking error:

setup.py install --verbose ...
[...]
error running (['uglifyjs', '--version'],),{'stderr': -1, 'stdout': -1}: [Errno 2] No such file or directory
Warning: uglifyjs failed and return -1
Warning: yuicompressor module not found, cannot minify
'nvcc --version' failed with return code 127
stderr: None

Currrent breaking error:

gcc -fno-strict-aliasing -Os -fomit-frame-pointer -g -DNDEBUG -Os -fomit-frame-pointer -g -DTHREAD_STACK_SIZE=0x100000 -fPIC -I/usr/include/python2.7 -c xpra/codecs/enc_ffmpeg/encoder.c -o build/temp.linux-x86_64-2.7/xpra/codecs/enc_ffmpeg/encoder.o -Wall -Werror -fPIC
xpra/codecs/enc_ffmpeg/encoder.c: In function '__pyx_pf_4xpra_6codecs_10enc_ffmpeg_7encoder_2get_muxer_formats':
xpra/codecs/enc_ffmpeg/encoder.c:3251:38: error: implicit declaration of function 'av_muxer_iterate' [-Werror=implicit-function-declaration]
     __pyx_v_fmt = ((AVOutputFormat *)av_muxer_iterate((&__pyx_v_opaque)));
                                      ^~~~~~~~~~~~~~~~
xpra/codecs/enc_ffmpeg/encoder.c:3251:20: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
     __pyx_v_fmt = ((AVOutputFormat *)av_muxer_iterate((&__pyx_v_opaque)));
                    ^
xpra/codecs/enc_ffmpeg/encoder.c: In function '__pyx_f_4xpra_6codecs_10enc_ffmpeg_7encoder_get_av_output_format':
xpra/codecs/enc_ffmpeg/encoder.c:3402:20: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
     __pyx_v_fmt = ((AVOutputFormat *)av_muxer_iterate((&__pyx_v_opaque)));
                    ^
cc1: all warnings being treated as errors
error: command 'gcc' failed with exit status 1
JAremko commented 6 years ago

@aisamu Alpine now has Xpra package https://pkgs.alpinelinux.org/package/edge/community/s390x/xpra So we probably don't even need to build it. Unless it lacks some really needed features :thinking:

JAremko commented 6 years ago

@aisamu try something like this https://gist.github.com/JAremko/e7478e514e050aa53a99b8e0be24c84f

We might not need dbus-x11 and desktop-file-utils

aisamu commented 6 years ago

Tried the gist this morning! Had to remove openssl to get it to build, due to conflicts with libcrypto?

(37/175) Installing openssl1.0 (1.0.2o-r3)
ERROR: openssl1.0-1.0.2o-r3: trying to overwrite etc/ssl/openssl.cnf owned by libressl2.7-libcrypto-2.7.4-r0.

After building and running it, we get:

chown: /var/run/xpra: No such file or directory
Starting in the tcp mode.
/usr/local/bin/run: line 54: su-exec: command not found

I'll try now just switching the compilation with the xpra package in the original Dockerfile. I've noticed that the package doesn't depend on websockify, so we might loose the HTML client.

aisamu commented 6 years ago

:hair-pulling: With the following changes to the Dockerfile:

(The previous changes also apply)

# Deps
+    xpra \

# Xpra
-    && curl https://www.xpra.org/src/xpra-$XPRA_VERSION.tar.xz | tar -xJ \
-    && cd xpra-$XPRA_VERSION \
     && echo -e 'Section "Module"\n  Load "fb"\n  EndSection' \
     >> etc/xpra/xorg.conf \
-    && python2 setup.py install \
-        --verbose \
-        --with-Xdummy \
-        --with-Xdummy_wrapper \
-        --with-bencode \
-        --with-clipboard \
-        --with-csc_swscale \
-        --with-cython_bencode \
-        --with-dbus \
-        --with-enc_ffmpeg \
-        --with-enc_x264 \
-        --with-gtk2 \
-        --with-gtk_x11 \
-        --with-pillow \
-        --with-server \
-        --with-vpx \
-        --with-vsock \
-        --with-x11 \
-        --without-client \
-        --without-csc_libyuv \
-        --without-dec_avcodec2 \
-        --without-enc_x265 \
-        --without-gtk3 \
-        --without-mdns \
-        --without-opengl \
-        --without-printing \
-        --without-sound \
-        --without-webcam \
     && mkdir -p /var/run/xpra/ \
-    && cd ../.. \
-    && rm -fr xpra-$XPRA_VERSION \

The build works, but the run fails with:

Starting in the tcp mode.

X.Org X Server 1.19.6
Release Date: 2017-12-20
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.4.45-0-grsec x86_64 Alpine Linux
Current Operating System: Linux 45e39ead8dc6 4.9.41-moby #1 SMP Wed Sep 6 00:05:16 UTC 2017 x86_64
Kernel command line: earlyprintk=serial console=ttyS0 com.docker.driver="com.docker.driver.amd64-linux", com.docker.database="com.docker.driver.amd64-linux" ntp=gateway mobyplatform=mac vsyscall=emulate page_poison=1 panic=1
Build Date: 09 May 2018  01:37:57PM

Current version of pixman: 0.34.0
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(++) Log file: "/tmp/Xorg.log", Time: Thu Jul 19 13:10:42 2018
(++) Using config file: "/etc/xpra/xorg.conf"
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
2018-07-19 13:10:42,494 Warning: failed to write script file in '/run/user/1000/xpra':
2018-07-19 13:10:42,495  [Errno 2] No such file or directory: '/run/user/1000/xpra'
2018-07-19 13:10:42,495  ($XDG_RUNTIME_DIR has not been created?)
2018-07-19 13:10:42,500 cannot access python uinput module:
2018-07-19 13:10:42,500  No module named uinput

X.Org X Server 1.19.6
Release Date: 2017-12-20
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.4.45-0-grsec x86_64 Alpine Linux
Current Operating System: Linux 45e39ead8dc6 4.9.41-moby #1 SMP Wed Sep 6 00:05:16 UTC 2017 x86_64
Kernel command line: earlyprintk=serial console=ttyS0 com.docker.driver="com.docker.driver.amd64-linux", com.docker.database="com.docker.driver.amd64-linux" ntp=gateway mobyplatform=mac vsyscall=emulate page_poison=1 panic=1
Build Date: 09 May 2018  01:37:57PM

Current version of pixman: 0.34.0
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(++) Log file: "/home/xpra/.xpra/Xorg.:14.log", Time: Thu Jul 19 13:10:42 2018
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
(EE)
Fatal server error:
(EE) parse_vt_settings: Cannot open /dev/tty0 (No such file or directory)
(EE)
(EE)
Please consult the The X.Org Foundation support
     at http://wiki.x.org
 for help.
(EE) Please also check the log file at "/home/xpra/.xpra/Xorg.:14.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
2018-07-19 13:10:42,769
2018-07-19 13:10:42,770 Xvfb command has terminated! xpra cannot continue
2018-07-19 13:10:42,770  if the display is already running, try a different one,
2018-07-19 13:10:42,770  or use the --use-display flag
2018-07-19 13:10:42,770
2018-07-19 13:10:42,770 closing tcp socket 0.0.0.0:10000
2018-07-19 13:10:42,771 killing xvfb with pid 24
2018-07-19 13:10:42,771 failed to kill xvfb process with pid 24:
2018-07-19 13:10:42,771  [Errno 3] No such process
JAremko commented 6 years ago

Yeah this (EE) parse_vt_settings: Cannot open /dev/tty0 (No such file or directory) doesn't look good. Having same problem.

Debian and Ubuntu have xserver-xorg-input-void package that may help... We can try replacing Alpine with Ubuntu.


I'll probably try building Xpra to figure out when it broke.

JAremko commented 6 years ago

@aisamu Looks like I managed to fix it and update to the latest version :shipit:

aisamu commented 6 years ago

Tested it, thank you so much! Still no luck, though :( Here are the screenshots of the HTML Client, the Xpra Client (with scaling off) and the Native app. The server was started with -e XORG_DPI=192 -e XPRA_DPI=192 -e XPRA_HTML_DPI=192

screen shot 2018-07-20 at 16 02 58

We're still getting these warnings:

2018-07-20 18:59:53,354 DPI set to 42 x 25 (wanted 72 x 72)
2018-07-20 18:59:53,354  you may experience scaling problems, such as huge or small fonts, etc
2018-07-20 18:59:53,354  to fix this issue, try the dpi switch, or use a patched Xorg dummy driver
JAremko commented 6 years ago

@aisamu You can try building dummy with patches from https://xpra.org/trac/wiki/Xdummy#Status but it will require coding in C :thinking:


It may help you https://git.alpinelinux.org/cgit/aports/tree/main/xf86-video-dummy/APKBUILD

aisamu commented 6 years ago

:sob:

JAremko commented 6 years ago

Now we use patched dummy.


@aisamu When it finishes building you can try again with the new image.

JAremko commented 6 years ago

@aisamu Added another update - removed stuff that seems to be no longer needed. Now it needs good testing :shipit:

aisamu commented 6 years ago

Oh my, you're fast!

Done testing, fiddling with all the parameters listed before. It's not working yet, but we've got some new behavior!

Xpra logs

We no longer get the dpi warning, but it shows 72dpi even with all the env vars on the server and the parameters on my local .conf files set to 192.

2018-07-23 13:08:21,845 Python/Gtk2 Mac OS X 14.5.0 client version 2.3.2-r19729 64-bit
2018-07-23 13:08:21,845  connected from 'mbpr.local' as 'aisamu' - 'Samuel Guedes'
2018-07-23 13:08:21,847  client root window size is 3360x1080 with 1 display:
2018-07-23 13:08:21,847   ip-192-168-1-109.ec2.internal (1185x381 mm - DPI: 72x72)
2018-07-23 13:08:21,847     monitor 1 1440x900 (508x317 mm - DPI: 72x72) workarea: 1440x877 at 0x23
2018-07-23 13:08:21,847     monitor 2 1920x1080 at 1440x0 (677x381 mm - DPI: 72x72) workarea: 1920x1053 at 0x23
2018-07-23 13:08:21,928 server virtual display now set to 3600x1080 (best match for 3360x1080)
2018-07-23 13:08:21,969 setting keyboard layout to 'us'
2018-07-23 13:08:22,034 DPI set to 72 x 72

If I set the desktop scaling to 50% I get the correct screen size (but the pixels don't shrink accordingly, so the image gets effectively worse):

2018-07-23 13:12:57,598 client @14.720 Xpra X11 server version 2.3.2-r19729 64-bit
2018-07-23 13:12:57,598 client @14.720  running on Linux
2018-07-23 13:14:29,113 client @46.248 setting scaling to 50%:
2018-07-23 13:14:29,121 client @46.251 sending updated screen size to server: 6720x2160 with 1 screens
2018-07-23 13:14:29,122 client @46.252   ip-192-168-1-109.ec2.internal (1185x381 mm - DPI: 144x144)
2018-07-23 13:14:29,201 client @46.253     monitor 1 2880x1800 (508x317 mm - DPI: 144x144) workarea: 2880x1754 at 0x46
2018-07-23 13:14:29,202 client @46.253     monitor 2 3840x2160 at 2880x0 (677x381 mm - DPI: 144x144) workarea: 3840x2106 at 0x46
2018-07-23 13:14:29,373 server virtual display now set to 6784x2304 (best match for 6720x2160)
2018-07-23 13:14:29,373 received updated display dimensions
2018-07-23 13:14:29,373 client display size is 6720x2160 with 1 screen:
2018-07-23 13:14:29,373   ip-192-168-1-109.ec2.internal (1185x381 mm - DPI: 144x144)
2018-07-23 13:14:29,373     monitor 1 2880x1800 (508x317 mm - DPI: 144x144) workarea: 2880x1754 at 0x46
2018-07-23 13:14:29,373     monitor 2 3840x2160 at 2880x0 (677x381 mm - DPI: 144x144) workarea: 3840x2106 at 0x46
2018-07-23 13:14:29,407 DPI set to 384 x 384
2018-07-23 13:14:29,436 sent updated screen size to 1 client: 6784x2304 (max 8192x4096)

Firefox

Firefox, when both the server and client are forcing 192 DPI, renders itself as a HIDPI app - but at twice the "correct" size, since the effective DPI is not correct. If I then scale it back with desktop-scaling I loose the added pixels.

Scaling off

screen shot 2018-07-23 at 10 26 17

After setting scale to 50%

(Poor quality only apparent if you click the thumbnail)

screen shot 2018-07-23 at 10 28 30

Emacs

Emacs behaves the same as before

JAremko commented 6 years ago

@aisamu What Xpra ppl saying about it? :thinking:

JAremko commented 6 years ago

We use latest Xpra with latest dummy patched with all 3 xpra patches (without conflicts)

JAremko commented 6 years ago

@aisamu The only somewhat reasonable thing I can think about at this point is fiddling with /etc/xpra/xorg.conf
You can mount modified version.

Mb try removing/adding some resolutions to force it into hiDPI mode. Also try removing this section - it is at the end of the /etc/xpra/xorg.conf file :thinking:

aisamu commented 6 years ago

I had some free time today to test some of the parameters with your latest version:

--desktop-scaling=on|off|auto|value
                  desktop−size - the scaling will be enabled and the server will render to the given size. ie: 1600x1200

Server

Image built locally from source with

$ git rev-parse HEAD
82d238b236f4e0c168997292dede8639eb6ee926

$ docker build -t x11 .
...

Always started with

docker run --rm --name x11-bridge \
-e MODE="tcp"  \
-e XPRA_HTML="yes" \
-e XORG_DPI="192" \
-e XPRA_DPI="192" \
-e XPRA_HTML_DPI="192" \
-e DISPLAY=:14 -e XPRA_PASSWORD="111" -p 10000:10000 x11
Starting in the tcp mode.

X.Org X Server 1.19.6
Release Date: 2017-12-20
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.14.39-0-vanilla x86_64 Alpine Linux
Current Operating System: Linux 2a7627909be8 4.4.0-1062-aws #71-Ubuntu SMP Fri Jun 15 10:07:39 UTC 2018 x86_64
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-1062-aws root=UUID=2fcba7a1-77bf-4d12-b01b-d1ff410d1a0a ro console=tty1 console=ttyS0
Build Date: 19 July 2018  08:16:51AM

Current version of pixman: 0.34.0
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(++) Log file: "/tmp/Xorg.log", Time: Sat Aug  4 18:25:49 2018
(++) Using config file: "/etc/xpra/xorg.conf"
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
2018-08-04 18:25:49,732 cannot access python uinput module:
2018-08-04 18:25:49,732  No module named uinput

X.Org X Server 1.19.6
Release Date: 2017-12-20
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.14.39-0-vanilla x86_64 Alpine Linux
Current Operating System: Linux 2a7627909be8 4.4.0-1062-aws #71-Ubuntu SMP Fri Jun 15 10:07:39 UTC 2018 x86_64
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-1062-aws root=UUID=2fcba7a1-77bf-4d12-b01b-d1ff410d1a0a ro console=tty1 console=ttyS0
Build Date: 19 July 2018  08:16:51AM

Current version of pixman: 0.34.0
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(++) Log file: "/tmp/xdg/xpra/Xorg.:14.log", Time: Sat Aug  4 18:25:50 2018
(++) Using config file: "/etc/xpra/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"

 (process:21): WARNING **: 18:25:53.910: Trying to register gtype 'GMountMountFlags' as enum when in fact it is of type 'GFlags'

 (process:21): WARNING **: 18:25:53.911: Trying to register gtype 'GDriveStartFlags' as enum when in fact it is of type 'GFlags'

 (process:21): WARNING **: 18:25:53.911: Trying to register gtype 'GSocketMsgFlags' as enum when in fact it is of type 'GFlags'
2018-08-04 18:25:54,015 created unix domain socket: /run/user/1000/xpra/2a7627909be8-14
2018-08-04 18:25:54,016 created unix domain socket: /run/xpra/2a7627909be8-14
2018-08-04 18:25:56,509 pointer device emulation using XTest
2018-08-04 18:25:56,510 Warning: the 'start-child' option is used,
2018-08-04 18:25:56,510  but 'exit-with-children' is not enabled,
2018-08-04 18:25:56,510  use 'start' instead
2018-08-04 18:25:57,397 serving html content from: /usr/share/xpra/www
2018-08-04 18:25:57,439 D-Bus notification forwarding is available
2018-08-04 18:25:57,449 Error: failed to query sound subsystem:
2018-08-04 18:25:57,449  No module named sound.common
2018-08-04 18:25:57,806 xpra X11 version 2.3.2-r19729 64-bit
2018-08-04 18:25:57,806  uid=1000 (xpra), gid=1000 (xpra)
2018-08-04 18:25:57,806  running with pid 21 on Linux
2018-08-04 18:25:57,807  connected to X11 display :14 with 24 bit colors
2018-08-04 18:25:57,943 xpra is ready.
2018-08-04 18:25:58,283 started command 'xhost +' with pid 45
access control disabled, clients can connect from any host
2018-08-04 18:25:58,287 3.9GB of system memory
2018-08-04 18:25:58,287 child 'xhost +' with pid 45 has terminated

Applications

Started only after connecting the client.

Spacemacs

docker run -ti --rm --name spacemacs --volumes-from x11-bridge -e TZ=UTC-3 -e DISPLAY=:14 spacemacs/emacs-snapshot:develop

Firefox

docker run -ti --rm --name firefoxzb --volumes-from x11-bridge -e TZ=UTC-3 -e DISPLAY=:14 jess/firefox

Client

Running with Xpra attach tcp://user@host:porta --encoding=h264 --desktop-scaling=value --dpi=192

Connecting with local client

--desktop-scaling=6720x2160

Spacemacs rendered with twice the size, incorrect DPI. Firefox rendered as hidpi-app with twice the size, incorrect DPI.

Scaling was set automatically to 200%. Setting it back to 100% resulted in correct sizes but even worse DPI.

  1. Client logs

    2018-08-04 15:34:38.563 Xpra[84874:9355266] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead.
    /Applications/Xpra.app/Contents/Resources/lib/python/xpra/platform/darwin/gui.py:98: Warning: invalid cast from 'GtkMenuBar' to 'GtkWindow'
      osxapp.set_menu_bar(mh.rebuild())
    /Applications/Xpra.app/Contents/Resources/lib/python/xpra/platform/darwin/gui.py:98: GtkWarning: gtk_window_add_accel_group: assertion 'GTK_IS_WINDOW (window)' failed
      osxapp.set_menu_bar(mh.rebuild())
    2018-08-04 15:34:39,623 Warning: failed to get release information
    2018-08-04 15:34:39,623  from '/System/Library/CoreServices/SystemVersion.plist':
    2018-08-04 15:34:39,623  'module' object has no attribute 'load'
    2018-08-04 15:34:39,650 Xpra gtk2 client version 2.3.2-r19729 64-bit
    2018-08-04 15:34:39,651  running on Mac OS X 14.5.0
    2018-08-04 15:34:40,335 GStreamer version 1.14.1 for Python 2.7.15 64-bit
    2018-08-04 15:34:40,820 OpenGL_accelerate module loaded
    2018-08-04 15:34:40,837 Using accelerated ArrayDatatype
    2018-08-04 15:34:41,297 OpenGL enabled with NVIDIA GeForce GT 650M OpenGL Engine
    /Applications/Xpra.app/Contents/Resources/lib/python/xpra/platform/darwin/osx_tray.py:89: Warning: invalid cast from 'GtkMenuBar' to 'GtkWindow'
      self.macapp.set_menu_bar(self.menu)
    /Applications/Xpra.app/Contents/Resources/lib/python/xpra/platform/darwin/osx_tray.py:89: GtkWarning: gtk_window_add_accel_group: assertion 'GTK_IS_WINDOW (window)' failed
      self.macapp.set_menu_bar(self.menu)
    2018-08-04 15:34:43,065  desktop size is 3360x1080 with 1 screen:
    2018-08-04 15:34:43,066   ip-192-168-1-109.ec2.internal (1185x381 mm - DPI: 72x72)
    2018-08-04 15:34:43,066     monitor 1 1440x900 (508x317 mm - DPI: 72x72) workarea: 1440x877 at 0x23
    2018-08-04 15:34:43,066     monitor 2 1920x1080 at 1440x0 (677x381 mm - DPI: 72x72) workarea: 1920x1053 at 0x23
    2018-08-04 15:34:43,066  upscaled by 200%, virtual screen size: 1680x540
    2018-08-04 15:34:43,066   ip-192-168-1-109.ec2.internal (1185x381 mm - DPI: 36x36)
    2018-08-04 15:34:43,066     monitor 1 720x450 (508x317 mm - DPI: 36x36) workarea: 720x439 at 0x12
    2018-08-04 15:34:43,066     monitor 2 960x540 at 720x0 (677x381 mm - DPI: 36x36) workarea: 960x527 at 0x12
    2018-08-04 15:34:43,080  keyboard settings: layout=us
    2018-08-04 15:34:43,679 enabled remote logging
    2018-08-04 15:34:43,680 Xpra X11 server version 2.3.2-r19729 64-bit
    2018-08-04 15:34:43,680  running on Linux
    2018-08-04 15:34:43,692 Attached to s0-test.local:10000 via tcp
    2018-08-04 15:34:43,693  (press Control-C to detach)
  2. Server logs

    2018-08-04 18:34:43,419 New tcp connection received from 10.0.107.56:63318 on 0.0.0.0:10000
    2018-08-04 18:34:43,420 Warning: client expects an authentication challenge,
    2018-08-04 18:34:43,420  sending a fake one
    2018-08-04 18:34:43,984 Handshake complete; enabling connection
    2018-08-04 18:34:44,029  using h264 as primary encoding, also available:
    2018-08-04 18:34:44,030   vp9, vp8, png, png/P, png/L, rgb24, rgb32, jpeg
    2018-08-04 18:34:44,031 Python/Gtk2 Mac OS X 14.5.0 client version 2.3.2-r19729 64-bit
    2018-08-04 18:34:44,031  connected from 'mbpr.local' as 'aisamu' - 'Samuel '
    2018-08-04 18:34:44,032  client root window size is 1680x540 with 1 display:
    2018-08-04 18:34:44,032   ip-192-168-1-109.ec2.internal (1185x381 mm - DPI: 36x36)
    2018-08-04 18:34:44,033     monitor 1 720x450 (508x317 mm - DPI: 36x36) workarea: 720x439 at 0x12
    2018-08-04 18:34:44,033     monitor 2 960x540 at 720x0 (677x381 mm - DPI: 36x36) workarea: 960x527 at 0x12
    2018-08-04 18:34:44,178 server virtual display now set to 1728x640 (best match for 1680x540)
    2018-08-04 18:34:44,186 setting keyboard layout to 'us'
    2018-08-04 18:34:44,228 DPI set to 48 x 48
    2018-08-04 18:34:44,404 client @04.382 Xpra X11 server version 2.3.2-r19729 64-bit
    2018-08-04 18:34:44,404 client @04.382  running on Linux
    2018-08-04 18:34:44,415 client @04.395 Attached to s0-test.local:10000 via tcp
    2018-08-04 18:34:44,415 client @04.395  (press Control-C to detach)

--desktop-scaling=1/2

Xpra advertises the correct screen size but smaller DPI (144 vs 192). Spacemacs renders at half the size (wanted) but with even worse DPI. Firefox crashes on start.

  1. Client logs

    2018-08-04 15:47:51.615 Xpra[85361:9364337] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead.
    /Applications/Xpra.app/Contents/Resources/lib/python/xpra/platform/darwin/gui.py:98: Warning: invalid cast from 'GtkMenuBar' to 'GtkWindow'
      osxapp.set_menu_bar(mh.rebuild())
    /Applications/Xpra.app/Contents/Resources/lib/python/xpra/platform/darwin/gui.py:98: GtkWarning: gtk_window_add_accel_group: assertion 'GTK_IS_WINDOW (window)' failed
      osxapp.set_menu_bar(mh.rebuild())
    2018-08-04 15:47:52,241 Warning: failed to get release information
    2018-08-04 15:47:52,241  from '/System/Library/CoreServices/SystemVersion.plist':
    2018-08-04 15:47:52,241  'module' object has no attribute 'load'
    2018-08-04 15:47:52,263 Xpra gtk2 client version 2.3.2-r19729 64-bit
    2018-08-04 15:47:52,264  running on Mac OS X 14.5.0
    2018-08-04 15:47:52,839 GStreamer version 1.14.1 for Python 2.7.15 64-bit
    2018-08-04 15:47:53,025 OpenGL_accelerate module loaded
    2018-08-04 15:47:53,029 Using accelerated ArrayDatatype
    2018-08-04 15:47:53,284 OpenGL enabled with NVIDIA GeForce GT 650M OpenGL Engine
    /Applications/Xpra.app/Contents/Resources/lib/python/xpra/platform/darwin/osx_tray.py:89: Warning: invalid cast from 'GtkMenuBar' to 'GtkWindow'
      self.macapp.set_menu_bar(self.menu)
    /Applications/Xpra.app/Contents/Resources/lib/python/xpra/platform/darwin/osx_tray.py:89: GtkWarning: gtk_window_add_accel_group: assertion 'GTK_IS_WINDOW (window)' failed
      self.macapp.set_menu_bar(self.menu)
    2018-08-04 15:47:54,699  desktop size is 3360x1080 with 1 screen:
    2018-08-04 15:47:54,700   ip-192-168-1-109.ec2.internal (1185x381 mm - DPI: 72x72)
    2018-08-04 15:47:54,700     monitor 1 1440x900 (508x317 mm - DPI: 72x72) workarea: 1440x877 at 0x23
    2018-08-04 15:47:54,700     monitor 2 1920x1080 at 1440x0 (677x381 mm - DPI: 72x72) workarea: 1920x1053 at 0x23
    2018-08-04 15:47:54,700  downscaled by 50%, virtual screen size: 6720x2160
    2018-08-04 15:47:54,700   ip-192-168-1-109.ec2.internal (1185x381 mm - DPI: 144x144)
    2018-08-04 15:47:54,700     monitor 1 2880x1800 (508x317 mm - DPI: 144x144) workarea: 2880x1754 at 0x46
    2018-08-04 15:47:54,700     monitor 2 3840x2160 at 2880x0 (677x381 mm - DPI: 144x144) workarea: 3840x2106 at 0x46
    2018-08-04 15:47:54,711  keyboard settings: layout=us
    2018-08-04 15:47:55,157 enabled remote logging
    2018-08-04 15:47:55,157 Xpra X11 server version 2.3.2-r19729 64-bit
    2018-08-04 15:47:55,158  running on Linux
    2018-08-04 15:47:55,167 Attached to s0-test.local:10000 via tcp
    2018-08-04 15:47:55,167  (press Control-C to detach)
  2. Server logs

    2018-08-04 18:53:15,605 New tcp connection received from 10.0.107.56:64089 on 0.0.0.0:10000
    2018-08-04 18:53:15,606 Warning: client expects an authentication challenge,
    2018-08-04 18:53:15,607  sending a fake one
    2018-08-04 18:53:16,158 Handshake complete; enabling connection
    2018-08-04 18:53:16,161  using h264 as primary encoding, also available:
    2018-08-04 18:53:16,161   vp9, vp8, png, png/P, png/L, rgb24, rgb32, jpeg
    2018-08-04 18:53:16,161 Python/Gtk2 Mac OS X 14.5.0 client version 2.3.2-r19729 64-bit
    2018-08-04 18:53:16,161  connected from 'mbpr.local' as 'aisamu' - 'Samuel '
    2018-08-04 18:53:16,162  client root window size is 6720x2160 with 1 display:
    2018-08-04 18:53:16,162   ip-192-168-1-109.ec2.internal (1185x381 mm - DPI: 144x144)
    2018-08-04 18:53:16,162     monitor 1 2880x1800 (508x317 mm - DPI: 144x144) workarea: 2880x1754 at 0x46
    2018-08-04 18:53:16,163     monitor 2 3840x2160 at 2880x0 (677x381 mm - DPI: 144x144) workarea: 3840x2106 at 0x46
    2018-08-04 18:53:16,213 best resolution matching 6720x2160 is unchanged: 6784x2304
    2018-08-04 18:53:16,219 Warning: sanitizing invalid gtk selection type atom 0x5608b37b8eb0
    2018-08-04 18:53:16,221 setting keyboard layout to 'us'
    2018-08-04 18:53:16,426 client @04.427 Xpra X11 server version 2.3.2-r19729 64-bit
    2018-08-04 18:53:16,433 client @04.427  running on Linux
    2018-08-04 18:53:16,444 client @04.442 Attached to s0-test.local:10000 via tcp
    2018-08-04 18:53:16,444 client @04.442  (press Control-C to detach)

Connecting with web client

Spacemacs rendered with correct size, incorrect DPI. Firefox rendered as non-hidpi-app with correct size, incorrect DPI.

Server logs

2018-08-04 18:37:37,607 Warning: client expects an authentication challenge,
2018-08-04 18:37:37,607  sending a fake one
2018-08-04 18:37:37,960 Handshake complete; enabling connection
2018-08-04 18:37:37,963  automatic picture encoding enabled, also available:
2018-08-04 18:37:37,963   jpeg, png, rgb32
2018-08-04 18:37:37,964 HTML5 Mac OSX Chrome client version 2.3.2
2018-08-04 18:37:37,965  client root window size is 640x979 with 1 display:
2018-08-04 18:37:37,965   HTML (169x259 mm - DPI: 96x96)
2018-08-04 18:37:37,966     Canvas
2018-08-04 18:37:38,014 server virtual display now set to 640x1024 (best match for 640x979)
2018-08-04 18:37:38,017 Warning: sanitizing invalid gtk selection type atom 0x5608b37b8eb0
2018-08-04 18:37:38,018 keyboard mapping already configured (skipped)
2018-08-04 18:37:38,026 DPI set to 96 x 96
2018-08-04 18:37:38,220 client got hello: server version 2.3.2 accepted our connection
2018-08-04 18:37:38,224 client connection_progress( Session started ,   ,  100 )
2018-08-04 18:37:38,225 client startup complete
aisamu commented 6 years ago

Removing the "Module" section seems to prevent Xpra from starting! Here's the output:

X.Org X Server 1.19.6
Release Date: 2017-12-20
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.14.39-0-vanilla x86_64 Alpine Linux
Current Operating System: Linux dc8a65f1865f 4.4.0-1062-aws #71-Ubuntu SMP Fri Jun 15 10:07:39 UTC 2018 x86_64
Starting in the tcp mode.
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-1062-aws root=UUID=2fcba7a1-77bf-4d12-b01b-d1ff410d1a0a ro console=tty1 console=ttyS0
Build Date: 19 July 2018  08:16:51AM

Current version of pixman: 0.34.0
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(++) Log file: "/tmp/Xorg.log", Time: Sat Aug  4 19:35:28 2018
(++) Using config file: "/etc/xpra/xorg.conf"
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
2018-08-04 19:35:28,926 cannot access python uinput module:
2018-08-04 19:35:28,926  No module named uinput

X.Org X Server 1.19.6
Release Date: 2017-12-20
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.14.39-0-vanilla x86_64 Alpine Linux
Current Operating System: Linux dc8a65f1865f 4.4.0-1062-aws #71-Ubuntu SMP Fri Jun 15 10:07:39 UTC 2018 x86_64
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-1062-aws root=UUID=2fcba7a1-77bf-4d12-b01b-d1ff410d1a0a ro console=tty1 console=ttyS0
Build Date: 19 July 2018  08:16:51AM

Current version of pixman: 0.34.0
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(++) Log file: "/tmp/xdg/xpra/Xorg.:14.log", Time: Sat Aug  4 19:35:29 2018
(++) Using config file: "/etc/xpra/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
(EE)
Fatal server error:
(EE) no screens found(EE)
(EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
(EE) Please also check the log file at "/tmp/xdg/xpra/Xorg.:14.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
2018-08-04 19:35:29,621
2018-08-04 19:35:29,622 Xvfb command has terminated! xpra cannot continue
2018-08-04 19:35:29,622  if the display is already running, try a different one,
2018-08-04 19:35:29,623  or use the --use-display flag
2018-08-04 19:35:29,623
2018-08-04 19:35:29,624 closing tcp socket 0.0.0.0:10000
2018-08-04 19:35:29,624 killing xvfb with pid 26
2018-08-04 19:35:29,625 failed to kill xvfb process with pid 26:
2018-08-04 19:35:29,625  [Errno 3] No such process
JAremko commented 6 years ago

@aisamu So if you use default Xpra config it doesn't start... :thinking:

JAremko commented 6 years ago

Mb there is something interesting in /tmp/xdg/xpra/Xorg.:14.log

aisamu commented 6 years ago

Tried it again with the contents of the link and got the same result :/

JAremko commented 6 years ago

@aisamu That's probably a good thing. There is a real probability that this Load "fb" makes Xorg not actually use dummy while Xpra thinks it does. Just a hunch :thinking:

aisamu commented 6 years ago

Here are the contents of Xorg.:14.log

[   513.995]                                                                                                [66/109]
X.Org X Server 1.19.6
Release Date: 2017-12-20
[   513.995] X Protocol Version 11, Revision 0
[   513.995] Build Operating System: Linux 4.14.39-0-vanilla x86_64 Alpine Linux
[   513.995] Current Operating System: Linux 29d2c9f11ef2 4.4.0-1062-aws #71-Ubuntu SMP Fri Jun 15 10:07:39 UTC 2018
 x86_64
[   513.995] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-1062-aws root=UUID=2fcba7a1-77bf-4d12-b01b-d1ff410d
1a0a ro console=tty1 console=ttyS0
[   513.995] Build Date: 19 July 2018  08:16:51AM
[   513.995]
[   513.995] Current version of pixman: 0.34.0
[   513.995]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[   513.995] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[   513.995] (++) Log file: "/tmp/xdg/xpra/Xorg.:14.log", Time: Sat Aug  4 20:08:42 2018
[   513.995] (++) Using config file: "/etc/xpra/xorg.conf"
[   513.995] (EE) Unable to locate/open config directory: "/tmp/xdg/xpra/xorg.conf.d/24"
[   513.995] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[   514.006] (==) ServerLayout "dummy_layout"
[   514.006] (**) |-->Screen "dummy_screen" (0)
[   514.006] (**) |   |-->Monitor "dummy_monitor"
[   514.017] (**) |   |-->Device "dummy_videocard"                                                          [42/109]
[   514.017] (**) Option "DontVTSwitch" "true"
[   514.017] (**) Option "AllowMouseOpenFail" "true"
[   514.017] (**) Option "AutoAddDevices" "false"
[   514.017] (**) Option "AutoEnableDevices" "false"
[   514.017] (**) Not automatically adding devices
[   514.017] (**) Not automatically enabling devices
[   514.017] (==) Automatically adding GPU devices
[   514.017] (==) Max clients allowed: 256, resource mask: 0x1fffff
[   514.017] (WW) The directory "/usr/share/fonts/TTF" does not exist.
[   514.017]    Entry deleted from font path.
[   514.017] (WW) The directory "/usr/share/fonts/Type1" does not exist.
[   514.017]    Entry deleted from font path.
[   514.017] (==) FontPath set to:
        /usr/share/fonts/misc,
        /usr/share/fonts/100dpi:unscaled,
        /usr/share/fonts/75dpi:unscaled
[   514.017] (==) ModulePath set to "/usr/lib/xorg/modules"
[   514.017] (==) |-->Input Device "<default pointer>"
[   514.017] (==) |-->Input Device "<default keyboard>"
[   514.017] (==) The core pointer device wasn't specified explicitly in the layout.
        Using the default mouse configuration.
[   514.017] (==) The core keyboard device wasn't specified explicitly in the layout.
        Using the default keyboard configuration.
[   514.017] (II) Loader magic: 0x7f1dcfe28c60
[   514.017] (II) Module ABI versions:
[   514.017]    X.Org ANSI C Emulation: 0.4
[   514.017]    X.Org Video Driver: 23.0
[   514.017]    X.Org XInput driver : 24.1
[   514.017]    X.Org Server Extension : 10.0
[   514.023] (--) PCI:*(0:0:2:0) 1013:00b8:5853:0001 rev 0, Mem @ 0xf0000000/33554432, 0xf3000000/4096
[   514.023] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[   514.023] (II) LoadModule: "glx"
[   514.024] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[   514.025] (II) Module glx: vendor="X.Org Foundation"
[   514.025]    compiled for 1.19.6, module version = 1.0.0
[   514.025]    ABI class: X.Org Server Extension, version 10.0
[   514.025] (II) LoadModule: "dummy"
[   514.025] (II) Loading /usr/lib/xorg/modules/drivers/dummy_drv.so
[   514.025] (EE) Failed to load /usr/lib/xorg/modules/drivers/dummy_drv.so: Error relocating /usr/lib/xorg/modules/
drivers/dummy_drv.so: fbPictureInit: symbol not found
[   514.025] (II) UnloadModule: "dummy"
[   514.025] (II) Unloading dummy
[   514.025] (EE) Failed to load module "dummy" (loader failed, 7)
[   514.025] (II) LoadModule: "mouse"
[   514.025] (WW) Warning, couldn't open module mouse
[   514.025] (II) UnloadModule: "mouse"
[   514.025] (II) Unloading mouse
[   514.025] (EE) Failed to load module "mouse" (module does not exist, 0)
[   514.025] (II) LoadModule: "kbd"
[   514.025] (WW) Warning, couldn't open module kbd
[   514.025] (II) UnloadModule: "kbd"
[   514.025] (II) Unloading kbd
[   514.025] (EE) Failed to load module "kbd" (module does not exist, 0)
[   514.025] (EE) No drivers available.
[   514.025] (EE)
Fatal server error:
[   514.025] (EE) no screens found(EE)
[   514.026] (EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
[   514.026] (EE) Please also check the log file at "/tmp/xdg/xpra/Xorg.:14.log" for additional information.
[   514.026] (EE)
[   514.026] (EE) Server terminated with error (1). Closing log file.
JAremko commented 6 years ago

@aisamu And if you use Load "fb" does it try to LoadModule: "dummy" ?

JAremko commented 6 years ago

aha https://git.alpinelinux.org/cgit/aports/commit/?id=8fc1aaee7f27d1ac317b7b39a1dc8c4182ce5fec

 package() {
    cd "$builddir"
    python2 setup.py install --prefix=/usr --root="$pkgdir" || return 1
+   # fixes Error relocating /usr/lib/xorg/modules/drivers/dummy_drv.so: fbPictureInit: symbol not found
+   printf '\nSection "Module"\n  Load\t"fb"\nEndSection' >> $pkgdir/etc/xpra/xorg.conf
+   # https://bugs.alpinelinux.org/issues/5478
 }

 tests() {
JAremko commented 6 years ago

So this is why I added this section. Should document next time :confused:

aisamu commented 6 years ago

Here are the contents of Xorg.:14.log with "fb" present:

[  1185.344] 
X.Org X Server 1.19.6
Release Date: 2017-12-20
[  1185.344] X Protocol Version 11, Revision 0
[  1185.344] Build Operating System: Linux 4.14.39-0-vanilla x86_64 Alpine Linux
[  1185.344] Current Operating System: Linux f66641774c03 4.4.0-1062-aws #71-Ubuntu SMP Fri Jun 15 10:07:39 UTC 2018 x86_64
[  1185.345] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-1062-aws root=UUID=2fcba7a1-77bf-4d12-b01b-d1ff410d1a0a ro console=tty1 console=ttyS0
[  1185.345] Build Date: 19 July 2018  08:16:51AM
[  1185.346]  
[  1185.346] Current version of pixman: 0.34.0
[  1185.346]    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
[  1185.346] Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[  1185.347] (++) Log file: "/tmp/xdg/xpra/Xorg.:14.log", Time: Sat Aug  4 20:19:54 2018
[  1185.348] (++) Using config file: "/etc/xpra/xorg.conf"
[  1185.348] (EE) Unable to locate/open config directory: "/tmp/xdg/xpra/xorg.conf.d/21"
[  1185.348] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[  1185.361] (==) ServerLayout "dummy_layout"
[  1185.361] (**) |-->Screen "dummy_screen" (0)
[  1185.361] (**) |   |-->Monitor "dummy_monitor"
[  1185.363] (**) |   |-->Device "dummy_videocard"
[  1185.363] (**) Option "DontVTSwitch" "true"
[  1185.363] (**) Option "AllowMouseOpenFail" "true"
[  1185.363] (**) Option "AutoAddDevices" "false"
[  1185.363] (**) Option "AutoEnableDevices" "false"
[  1185.363] (**) Not automatically adding devices
[  1185.363] (**) Not automatically enabling devices
[  1185.363] (==) Automatically adding GPU devices
[  1185.363] (==) Max clients allowed: 256, resource mask: 0x1fffff
[  1185.363] (WW) The directory "/usr/share/fonts/TTF" does not exist.
[  1185.363]    Entry deleted from font path.
[  1185.363] (WW) The directory "/usr/share/fonts/Type1" does not exist.
[  1185.363]    Entry deleted from font path.
[  1185.363] (==) FontPath set to:
    /usr/share/fonts/misc,
    /usr/share/fonts/100dpi:unscaled,
    /usr/share/fonts/75dpi:unscaled
[  1185.363] (==) ModulePath set to "/usr/lib/xorg/modules"
[  1185.363] (==) |-->Input Device "<default pointer>"
[  1185.363] (==) |-->Input Device "<default keyboard>"
[  1185.363] (==) The core pointer device wasn't specified explicitly in the layout.
    Using the default mouse configuration.
[  1185.363] (==) The core keyboard device wasn't specified explicitly in the layout.
    Using the default keyboard configuration.
[  1185.363] (II) Loader magic: 0x7f55ed0fdc60
[  1185.363] (II) Module ABI versions:
[  1185.363]    X.Org ANSI C Emulation: 0.4
[  1185.363]    X.Org Video Driver: 23.0
[  1185.363]    X.Org XInput driver : 24.1
[  1185.363]    X.Org Server Extension : 10.0
[  1185.382] (--) PCI:*(0:0:2:0) 1013:00b8:5853:0001 rev 0, Mem @ 0xf0000000/33554432, 0xf3000000/4096
[  1185.383] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[  1185.383] (II) "glx" will be loaded by default.
[  1185.383] (II) LoadModule: "fb"
[  1185.383] (II) Loading /usr/lib/xorg/modules/libfb.so
[  1185.383] (II) Module fb: vendor="X.Org Foundation"
[  1185.383]    compiled for 1.19.6, module version = 1.0.0
[  1185.383]    ABI class: X.Org ANSI C Emulation, version 0.4
[  1185.383] (II) LoadModule: "glx"
[  1185.383] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[  1185.392] (II) Module glx: vendor="X.Org Foundation"
[  1185.392]    compiled for 1.19.6, module version = 1.0.0
[  1185.392]    ABI class: X.Org Server Extension, version 10.0
[  1185.392] (II) LoadModule: "dummy"
[  1185.393] (II) Loading /usr/lib/xorg/modules/drivers/dummy_drv.so
[  1185.393] (II) Module dummy: vendor="X.Org Foundation"
[  1185.393]    compiled for 1.19.6, module version = 0.3.8
[  1185.393]    Module class: X.Org Video Driver
[  1185.393]    ABI class: X.Org Video Driver, version 23.0
[  1185.393] (II) LoadModule: "mouse"
[  1185.393] (WW) Warning, couldn't open module mouse
[  1185.393] (II) UnloadModule: "mouse"
[  1185.393] (II) Unloading mouse
[  1185.393] (EE) Failed to load module "mouse" (module does not exist, 0)
[  1185.393] (II) LoadModule: "kbd"
[  1185.393] (WW) Warning, couldn't open module kbd
[  1185.393] (II) UnloadModule: "kbd"
[  1185.393] (II) Unloading kbd
[  1185.393] (EE) Failed to load module "kbd" (module does not exist, 0)
[  1185.393] (II) DUMMY: Driver for Dummy chipsets: dummy
[  1185.393] (WW) Falling back to old probe method for dummy
[  1185.393] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[  1185.393] (II) DUMMY(0): Chipset is a DUMMY
[  1185.393] (++) DUMMY(0): Depth 24, (--) framebuffer bpp 32
[  1185.393] (==) DUMMY(0): RGB weight 888
[  1185.393] (==) DUMMY(0): Default visual is TrueColor
[  1185.393] (==) DUMMY(0): Using gamma correction (1.0, 1.0, 1.0)
[  1185.393] (**) DUMMY(0): Option "ConstantDPI" "true"
[  1185.393] (**) DUMMY(0): VideoRAM: 256000 kByte
[  1185.393] (**) DUMMY(0): Max Clock: 600000 kHz
[  1185.393] (II) DUMMY(0): dummy_monitor: Using hsync range of 1.00-2000.00 kHz
[  1185.393] (II) DUMMY(0): dummy_monitor: Using vrefresh range of 1.00-200.00 Hz
[  1185.393] (II) DUMMY(0): Clock range:  11.00 to 600.00 MHz
[  1185.393] (II) DUMMY(0): Not using mode "7680x4320" (height too large for virtual size)
[  1188.905] (**) DUMMY(0): Virtual size is 8192x4096 (pitch 8192)
[  1188.905] (**) DUMMY(0): *Mode "8192x4096": 193.3 MHz, 21.5 kHz, 5.0 Hz
[  1188.905] (II) DUMMY(0): Modeline "8192x4096"x5.0  193.35  8192 8224 8952 8984  4096 4196 4200 4301 (21.5 kHz z)
[  1188.905] (**) DUMMY(0): *Mode "5120x3200": 199.8 MHz, 33.7 kHz, 10.0 Hz
[  1188.905] (II) DUMMY(0): Modeline "5120x3200"x10.0  199.75  5120 5152 5904 5936  3200 3277 3283 3361 (33.7 kHz z)
... a lot of those ...
[  1188.930] (**) DUMMY(0):  Mode "600x762": 14.4 MHz, 20.2 kHz, 25.2 Hz
[  1188.930] (II) DUMMY(0): Modeline "600x762"x25.2   14.39  600 632 680 712  762 779 783 801 (20.2 kHz)
[  1188.930] (**) DUMMY(0):  Mode "640x704@160": 109.0 MHz, 123.9 kHz, 159.6 Hz
[  1188.930] (II) DUMMY(0): Modeline "640x704@160"x159.6  109.00  640 696 760 880  704 707 717 776 -hsync +vsync (123.9 kHz)
[  1188.930] (**) DUMMY(0):  Mode "704x640@160": 108.2 MHz, 112.8 kHz, 159.7 Hz
[  1188.930] (II) DUMMY(0): Modeline "704x640@160"x159.7  108.25  704 760 832 960  640 643 653 706 -hsync +vsync (112.8 kHz)
[  1188.930] (**) DUMMY(0):  Mode "800x562": 13.5 MHz, 14.8 kHz, 25.1 Hz
[  1188.930] (II) DUMMY(0): Modeline "800x562"x25.1   13.52  800 832 880 912  562 575 578 591 (14.8 kHz)
[  1188.930] (**) DUMMY(0):  Mode "864x486": 32.5 MHz, 30.3 kHz, 59.9 Hz
[  1188.930] (II) DUMMY(0): Modeline "864x486"x59.9   32.50  864 888 968 1072  486 489 494 506 (30.3 kHz)
[  1188.930] (**) DUMMY(0):  Mode "480x854": 13.3 MHz, 22.5 kHz, 25.1 Hz
[  1188.930] (II) DUMMY(0): Modeline "480x854"x25.1   13.34  480 512 560 592  854 873 877 897 (22.5 kHz)
[  1188.930] (**) DUMMY(0):  Mode "640x640@160": 99.2 MHz, 112.8 kHz, 159.8 Hz
[  1188.930] (II) DUMMY(0): Modeline "640x640@160"x159.8   99.25  640 696 760 880  640 643 653 706 -hsync +vsync (112.8 kHz)
[  1188.930] (**) DUMMY(0):  Mode "848x480": 12.1 MHz, 12.7 kHz, 25.1 Hz
[  1188.930] (II) DUMMY(0): Modeline "848x480"x25.1   12.09  848 880 920 952  480 491 493 505 (12.7 kHz)
[  1188.930] (**) DUMMY(0):  Mode "480x810": 12.6 MHz, 21.6 kHz, 25.3 Hz
[  1188.930] (II) DUMMY(0): Modeline "480x810"x25.3   12.59  480 512 552 584  810 828 832 851 (21.6 kHz)
[  1188.930] (**) DUMMY(0):  Mode "480x800": 12.4 MHz, 21.3 kHz, 25.3 Hz
[  1188.930] (II) DUMMY(0): Modeline "480x800"x25.3   12.43  480 512 552 584  800 818 822 841 (21.3 kHz)
[  1188.930] (**) DUMMY(0):  Mode "800x480": 11.5 MHz, 12.7 kHz, 25.1 Hz
[  1188.930] (II) DUMMY(0): Modeline "800x480"x25.1   11.46  800 832 872 904  480 491 493 505 (12.7 kHz)
[  1188.930] (**) DUMMY(0):  Mode "848x442": 11.1 MHz, 11.6 kHz, 25.1 Hz
[  1188.930] (II) DUMMY(0): Modeline "848x442"x25.1   11.09  848 880 920 952  442 452 454 465 (11.6 kHz)
[  1188.930] (**) DUMMY(0):  Default mode "700x525": 77.9 MHz, 81.5 kHz, 74.8 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "700x525"x74.8   77.90  700 732 892 956  525 526 532 545 doublescan +hsync +vsync (81.5 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "700x525": 61.0 MHz, 64.9 kHz, 60.0 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "700x525"x60.0   61.00  700 744 820 940  525 526 532 541 doublescan +hsync +vsync (64.9 kHz d)
[  1188.930] (**) DUMMY(0):  Mode "480x762": 11.8 MHz, 20.2 kHz, 25.2 Hz
[  1188.930] (II) DUMMY(0): Modeline "480x762"x25.2   11.79  480 512 552 584  762 779 783 801 (20.2 kHz)
[  1188.930] (**) DUMMY(0):  Default mode "640x512": 78.8 MHz, 91.1 kHz, 85.0 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "640x512"x85.0   78.75  640 672 752 864  512 512 514 536 doublescan +hsync +vsync (91.1 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "640x512": 67.5 MHz, 80.0 kHz, 75.0 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "640x512"x75.0   67.50  640 648 720 844  512 512 514 533 doublescan +hsync +vsync (80.0 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "640x512": 54.0 MHz, 64.0 kHz, 60.0 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "640x512"x60.0   54.00  640 664 720 844  512 512 514 533 doublescan +hsync +vsync (64.0 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "640x480": 74.2 MHz, 85.9 kHz, 85.1 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "640x480"x85.1   74.25  640 672 752 864  480 480 482 505 doublescan +hsync +vsync (85.9 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "640x480": 36.0 MHz, 43.3 kHz, 85.0 Hz
[  1188.930] (II) DUMMY(0): Modeline "640x480"x85.0   36.00  640 696 752 832  480 481 484 509 -hsync -vsync (43.3 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "640x480": 31.5 MHz, 37.5 kHz, 75.0 Hz
[  1188.930] (II) DUMMY(0): Modeline "640x480"x75.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "640x480": 31.5 MHz, 37.9 kHz, 72.8 Hz
[  1188.930] (II) DUMMY(0): Modeline "640x480"x72.8   31.50  640 664 704 832  480 489 492 520 -hsync -vsync (37.9 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "640x480": 54.0 MHz, 60.0 kHz, 60.0 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "640x480"x60.0   54.00  640 688 744 900  480 480 482 500 doublescan +hsync +vsync (60.0 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "640x480": 25.2 MHz, 31.5 kHz, 59.9 Hz
[  1188.930] (II) DUMMY(0): Modeline "640x480"x59.9   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz d)
[  1188.930] (**) DUMMY(0):  Mode "720x405": 22.5 MHz, 25.1 kHz, 59.5 Hz
[  1188.930] (II) DUMMY(0): Modeline "720x405"x59.5   22.50  720 744 808 896  405 408 413 422 (25.1 kHz)
[  1188.930] (**) DUMMY(0):  Default mode "720x400": 35.5 MHz, 37.9 kHz, 85.0 Hz
[  1188.930] (II) DUMMY(0): Modeline "720x400"x85.0   35.50  720 756 828 936  400 401 404 446 -hsync +vsync (37.9 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "640x400": 31.5 MHz, 37.9 kHz, 85.1 Hz
[  1188.930] (II) DUMMY(0): Modeline "640x400"x85.1   31.50  640 672 736 832  400 401 404 445 -hsync +vsync (37.9 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "576x432": 54.0 MHz, 67.5 kHz, 75.0 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "576x432"x75.0   54.00  576 608 672 800  432 432 434 450 doublescan +hsync +vsync (67.5 kHz d)
[  1188.930] (**) DUMMY(0):  Mode "640x360": 14.8 MHz, 18.4 kHz, 49.3 Hz
[  1188.930] (II) DUMMY(0): Modeline "640x360"x49.3   14.75  640 664 720 800  360 363 368 374 (18.4 kHz)
[  1188.930] (**) DUMMY(0):  Default mode "640x350": 31.5 MHz, 37.9 kHz, 85.1 Hz
[  1188.930] (II) DUMMY(0): Modeline "640x350"x85.1   31.50  640 672 736 832  350 382 385 445 +hsync -vsync (37.9 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "512x384i": 22.4 MHz, 35.5 kHz, 86.6 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "512x384i"x86.6   22.45  512 516 604 632  384 384 388 409 interlace doublescan +hsync +vsync (35.5 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "512x384": 47.2 MHz, 68.7 kHz, 85.0 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "512x384"x85.0   47.25  512 536 584 688  384 384 386 404 doublescan +hsync +vsync (68.7 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "512x384": 39.4 MHz, 60.0 kHz, 75.0 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "512x384"x75.0   39.38  512 520 568 656  384 384 386 400 doublescan +hsync +vsync (60.0 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "512x384": 37.5 MHz, 56.5 kHz, 70.1 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "512x384"x70.1   37.50  512 524 592 664  384 385 388 403 doublescan -hsync -vsync (56.5 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "512x384": 32.5 MHz, 48.4 kHz, 60.0 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "512x384"x60.0   32.50  512 524 592 672  384 385 388 403 doublescan -hsync -vsync (48.4 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "416x312": 28.6 MHz, 49.7 kHz, 74.7 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "416x312"x74.7   28.64  416 432 464 576  312 312 314 333 doublescan -hsync -vsync (49.7 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "400x300": 28.1 MHz, 53.7 kHz, 85.3 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "400x300"x85.3   28.15  400 416 448 524  300 300 302 315 doublescan +hsync +vsync (53.7 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "400x300": 24.8 MHz, 46.9 kHz, 75.1 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "400x300"x75.1   24.75  400 408 448 528  300 300 302 312 doublescan +hsync +vsync (46.9 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "400x300": 25.0 MHz, 48.1 kHz, 72.2 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "400x300"x72.2   25.00  400 428 488 520  300 318 321 333 doublescan +hsync +vsync (48.1 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "400x300": 20.0 MHz, 37.9 kHz, 60.3 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "400x300"x60.3   20.00  400 420 484 528  300 300 302 314 doublescan +hsync +vsync (37.9 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "400x300": 18.0 MHz, 35.2 kHz, 56.3 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "400x300"x56.3   18.00  400 412 448 512  300 300 301 312 doublescan +hsync +vsync (35.2 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "320x240": 18.0 MHz, 43.3 kHz, 85.2 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "320x240"x85.2   18.00  320 348 376 416  240 240 242 254 doublescan -hsync -vsync (43.3 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "320x240": 15.8 MHz, 37.5 kHz, 75.0 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "320x240"x75.0   15.75  320 328 360 420  240 240 242 250 doublescan -hsync -vsync (37.5 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "320x240": 15.8 MHz, 37.9 kHz, 72.8 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "320x240"x72.8   15.75  320 332 352 416  240 244 246 260 doublescan -hsync -vsync (37.9 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "320x240": 12.6 MHz, 31.5 kHz, 60.1 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "320x240"x60.1   12.59  320 328 376 400  240 245 246 262 doublescan -hsync -vsync (31.5 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "360x200": 17.8 MHz, 37.9 kHz, 85.0 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "360x200"x85.0   17.75  360 378 414 468  200 200 202 223 doublescan -hsync +vsync (37.9 kHz d)
[  1188.930] (**) DUMMY(0):  Default mode "320x175": 15.8 MHz, 37.9 kHz, 85.3 Hz (D)
[  1188.930] (II) DUMMY(0): Modeline "320x175"x85.3   15.75  320 336 368 416  175 191 192 222 doublescan +hsync -vsync (37.9 kHz d)
[  1188.930] (==) DUMMY(0): DPI set to (96, 96)
[  1188.930] (II) Loading sub module "fb"
[  1188.930] (II) LoadModule: "fb"
[  1188.931] (II) Loading /usr/lib/xorg/modules/libfb.so
[  1188.931] (II) Module fb: vendor="X.Org Foundation"
[  1188.931]    compiled for 1.19.6, module version = 1.0.0
[  1188.931]    ABI class: X.Org ANSI C Emulation, version 0.4
[  1188.931] (II) Loading sub module "ramdac"
[  1188.931] (II) LoadModule: "ramdac"
[  1188.931] (II) Module "ramdac" already built-in
[  1188.931] (--) Depth 24 pixmap format is 32 bpp
[  1188.931] (II) DUMMY(0): Using 3904 scanlines of offscreen memory 
[  1188.931] (==) DUMMY(0): Backing store enabled
[  1188.931] (==) DUMMY(0): Silken mouse enabled
[  1188.931] (==) RandR enabled
[  1188.937] (II) AIGLX: Screen 0 is not DRI2 capable
[  1188.937] (EE) AIGLX: reverting to software rendering
[  1188.937] (EE) AIGLX error: dlopen of /usr/lib/xorg/modules/dri/swrast_dri.so failed (Error loading shared library /usr/lib/xorg/modules/dri/swrast_dri.so: No such file or directory)
[  1188.937] (EE) GLX: could not load software renderer
[  1188.937] (II) GLX: no usable GL providers found for screen 0
[  1188.991] (II) LoadModule: "mouse"
[  1188.992] (WW) Warning, couldn't open module mouse
[  1188.992] (II) UnloadModule: "mouse"
[  1188.992] (II) Unloading mouse
[  1188.992] (EE) Failed to load module "mouse" (module does not exist, 0)
[  1188.992] (EE) No input driver matching `mouse'
[  1188.992] (II) Falling back to input driver `libinput'
[  1188.992] (II) LoadModule: "libinput"
[  1188.992] (WW) Warning, couldn't open module libinput
[  1188.992] (II) UnloadModule: "libinput"
[  1188.992] (II) Unloading libinput
[  1188.992] (EE) Failed to load module "libinput" (module does not exist, 0)
[  1188.992] (II) LoadModule: "kbd"
[  1188.992] (WW) Warning, couldn't open module kbd
[  1188.992] (II) UnloadModule: "kbd"
[  1188.992] (II) Unloading kbd
[  1188.992] (EE) Failed to load module "kbd" (module does not exist, 0)
[  1188.992] (EE) No input driver matching `kbd'
[  1188.992] (II) Falling back to input driver `libinput'
[  1188.992] (II) LoadModule: "libinput"
[  1188.992] (WW) Warning, couldn't open module libinput
[  1188.992] (II) UnloadModule: "libinput"
[  1188.992] (II) Unloading libinput
[  1188.992] (EE) Failed to load module "libinput" (module does not exist, 0)
[  1188.993] (II) config/udev: Adding input device Power Button (/dev/input/event0)
[  1188.993] (II) AutoAddDevices is off - not adding device.
[  1188.993] (II) config/udev: Adding input device Sleep Button (/dev/input/event1)
[  1188.993] (II) AutoAddDevices is off - not adding device.
[  1188.993] (II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event2)
[  1188.993] (II) AutoAddDevices is off - not adding device.
[  1188.993] (II) config/udev: Adding input device (unnamed) (/dev/ttyS1)
[  1188.993] (II) AutoAddDevices is off - not adding device.
[  1188.993] (II) config/udev: Adding input device (unnamed) (/dev/ttyS2)
[  1188.993] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/ttyS3)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/ttyS0)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/input/mice)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/console)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/ptmx)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/tty)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/tty0)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/tty1)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/tty10)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/tty11)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/tty12)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/tty13)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/tty14)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/tty15)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/tty16)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/tty17)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/tty18)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/tty19)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/tty2)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/tty20)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.994] (II) config/udev: Adding input device (unnamed) (/dev/tty21)
[  1188.994] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty22)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty23)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty24)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty25)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty26)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty27)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty28)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty29)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty3)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty30)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty31)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty32)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty33)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty34)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty35)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty36)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty37)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty38)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty39)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty4)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty40)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.995] (II) config/udev: Adding input device (unnamed) (/dev/tty41)
[  1188.995] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty42)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty43)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty44)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty45)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty46)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty47)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty48)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty49)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty5)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty50)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty51)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty52)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty53)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty54)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty55)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty56)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty57)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty58)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty59)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty6)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.996] (II) config/udev: Adding input device (unnamed) (/dev/tty60)
[  1188.996] (II) AutoAddDevices is off - not adding device.
[  1188.997] (II) config/udev: Adding input device (unnamed) (/dev/tty61)
[  1188.997] (II) AutoAddDevices is off - not adding device.
[  1188.997] (II) config/udev: Adding input device (unnamed) (/dev/tty62)
[  1188.997] (II) AutoAddDevices is off - not adding device.
[  1188.997] (II) config/udev: Adding input device (unnamed) (/dev/tty63)
[  1188.997] (II) AutoAddDevices is off - not adding device.
[  1188.997] (II) config/udev: Adding input device (unnamed) (/dev/tty7)
[  1188.997] (II) AutoAddDevices is off - not adding device.
[  1188.997] (II) config/udev: Adding input device (unnamed) (/dev/tty8)
[  1188.997] (II) AutoAddDevices is off - not adding device.
[  1188.997] (II) config/udev: Adding input device (unnamed) (/dev/tty9)
[  1188.997] (II) AutoAddDevices is off - not adding device.
[  1188.997] (II) config/udev: Adding input device (unnamed) (/dev/ttyprintk)
[  1188.997] (II) AutoAddDevices is off - not adding device.
JAremko commented 6 years ago

@aisamu [ 1188.930] (==) DUMMY(0): DPI set to (96, 96) interesting. Have you actually set it to 96 ?

aisamu commented 6 years ago

No! I ask for 192 everywhere that I could think of... Server is started with:

-e XORG_DPI="192" \
-e XPRA_DPI="192" \
-e XPRA_HTML_DPI="192" \

Client is started with:

Xpra attach ... --dpi=192

And the relevant client conf.d/ file also has dpi=192

JAremko commented 6 years ago

May be if you start Xorg from Xpra like in https://xpra.org/trac/wiki/Xdummy it will help :confused:

xpra --xvfb="Xorg <xorg_configs>" \
    start :14

Here's how we start Xorg (you can comment it out or set START_XORG to something else then "yes") https://github.com/JAremko/docker-x11-bridge/blob/master/bin/run#L44

And here's how we start Xpra (add --xvfb stuff here) https://github.com/JAremko/docker-x11-bridge/blob/master/bin/tcp_m


Did some asking about fb thingy https://unix.stackexchange.com/a/460553/145842

totaam commented 6 years ago

Note that the advertised screen sizes are what OS X wants, not the true panel size. Both are actually 2x that.

If the OS is lying to xpra, then xpra doesn't stand a chance to paint things with the desired geometry.

env = XPRA_DEFAULT_VFB_RESOLUTION=3840x2160

FYI: this is only useful for applications that try to calculate their own DPI based on the screen geometry. And only for application started before the client connects.

video-scaling = off

This only affects video encoders. Unless your application is refreshing the screen at 10fps or more, this won't make any difference.

When I turn of the 2x scaling on the OS, I get the correct output on Xpra, with the desired 1x1 pixel mapping. The reason I cannot go with this workaround is that it makes everything else on the system incredibly small.

Sounds like it is the other applications that need to adapt properly to the DPI, not xpra.

Is there a way to advertise a forced, fake screen size (2x) to Xpra?

No, and even if there was one, it wouldn't help: xpra would still be painting using APIs that pretend to be a different size.

There is nothing you can do server side. The only hope is to find a way to get macos screen API to stop lying about the resolution of the monitors. Similar to what we have under MS Windows with their DPI Aware / awareness settings. Xpra's "Helpers/GTK_info" or "Helpers/NativeGUI_info" utility scripts have to be able to get the real monitor geometry to have any hope of rendering correctly. If that's even possible and they have an API for it.

Just in case (unlikely IMO), you may want to try the macos beta builds based on the newer python3 / gtk3 toolkit: (https://xpra.org/beta/osx/ xpra macos beta builds)

aisamu commented 6 years ago

@totaam Thank you for the input!

Sounds like it is the other applications that need to adapt properly to the DPI, not xpra.

Xpra is being correctly rendered, but as a non HiDPI-aware OS X app. You can get the same behavior out of a HiDPI app by checking the "render in low resolution" flag on the app's "Get Info" (Example)

What I meant is that my end goal is to have Xpra rendering using the "real" pixels, as a HiDPI app, even if that means the underlying application will be extra-small (since there's not necessarily support on X11 or by the app).

If that's even possible and they have an API for it.

I'll keep my fingers crossed!

You may want to try the macos beta builds

Gave it a try, but it won't start :/ I'm on Yosemite (two minor versions behind), so that might be understandable.

And thanks for this great software :)