TigerVNC / tigervnc

High performance, multi-platform VNC client and server
https://tigervnc.org
GNU General Public License v2.0
5.04k stars 931 forks source link

libvnc.so screen not refreshing when glamor is used #1218

Open joakim-tjernlund opened 3 years ago

joakim-tjernlund commented 3 years ago

Describe the bug Remmina VNC shows a blank window with a few small fragments Disabled MATE compositing renders fine.

Client (please complete the following information):

Server (please complete the following information):

Additional context This is an old problem, I think it started before tigervnc 1.11, using master now.

--- Want to back this issue? **[Post a bounty on it!](https://app.bountysource.com/issues/97053547-libvnc-so-screen-not-refreshing-when-glamor-is-used?utm_campaign=plugin&utm_content=tracker%2F3557444&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://app.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F3557444&utm_medium=issues&utm_source=github).
joakim-tjernlund commented 3 years ago

VNC works with vino(3.22.0) though.

CendioOssman commented 3 years ago

This works just fine on other systems so there must be something specific to either Gentoo or your server. Have you checked logs for any errors?

Could you test our builds to see if they work? Might be some build issue.

CendioOssman commented 3 years ago

And please include the full information from the bug template so we get a complete picture of your system.

joakim-tjernlund commented 3 years ago

This works just fine on other systems so there must be something specific to either Gentoo or your server. Have you checked logs for any errors?

I locked in Xorg.0.log , not sure what else there is?

Could you test our builds to see if they work? Might be some build issue.

I cannot find the xorg module, /usr/lib64/xorg/modules/extensions/libvnc.so, in your build ?

CendioOssman commented 3 years ago

I locked in Xorg.0.log , not sure what else there is?

That will show you any complaints from Xorg or TigerVNC, so it's a good start. But it would also be good to check if MATE or one of its components is complaining.

I'm not aware of how Gentoo works though, so I can't give a clear answer where to look. I would guess either ~/.xsession-errors or in the journal though.

I cannot find the xorg module, /usr/lib64/xorg/modules/extensions/libvnc.so, in your build ?

That is unfortunately not something that is included as it must be tailored for each distribution. It wasn't clear which server you were using so I assumed it was Xvnc, which is the most common case.

joakim-tjernlund commented 3 years ago

And please include the full information from the bug template so we get a complete picture of your system.

Server (please complete the following information):

Section "Screen" Identifier "Default Screen" Option "PasswordFile" "/root/.vnc/passwd"

Option "SecurityTypes" "None"

Option "rfbport" "5902"

EndSection

Need more?

joakim-tjernlund commented 3 years ago

I locked in Xorg.0.log , not sure what else there is?

That will show you any complaints from Xorg or TigerVNC, so it's a good start. But it would also be good to check if MATE or one of its components is complaining.

I have looked in a lot of places but no logs/errors found

I'm not aware of how Gentoo works though, so I can't give a clear answer where to look. I would guess either ~/.xsession-errors or in the journal though.

Gentoo is a source dist so every pkg is built locally before it is installed. Here is my configre cmd if that helps:


./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-dependency-tracking --disable-silent-rules --docdir=/usr/share/doc/tigervnc-9999 --htmldir=/usr/share/doc/tigervnc-9999/html --with-sysroot=/ --libdir=/usr/lib64 --enable-glx --enable-libdrm --disable-config-hal --disable-config-udev --disable-devel-docs --disable-dmx --disable-dri --enable-dri3 --disable-glamor --disable-kdrive --disable-libunwind --disable-linux-acpi --disable-record --disable-selective-werror --disable-static --disable-unit-tests --disable-xephyr --enable-xinerama --disable-xnest --disable-xorg --disable-xvfb --disable-xwin --disable-xwayland --enable-dri2 --with-pic --without-dtrace --disable-present --with-sha1=libcrypto
configure: loading site script /usr/share/config.site
checking for a BSD-compatible install... /usr/lib/portage/python3.7/ebuild-helpers/xattr/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports the include directive... yes (GNU style)
checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether x86_64-pc-linux-gnu-gcc accepts -g... yes
checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... none needed
checking whether x86_64-pc-linux-gnu-gcc understands -c and -o together... yes
checking dependency style of x86_64-pc-linux-gnu-gcc... none
checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for x86_64-pc-linux-gnu-gcc option to accept ISO C99... none needed
checking whether __clang__ is declared... no
checking whether __INTEL_COMPILER is declared... no
checking whether __SUNPRO_C is declared... no
checking for x86_64-pc-linux-gnu-pkg-config... /usr/bin/x86_64-pc-linux-gnu-pkg-config
checking pkg-config is at least version 0.9.0... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for a sed that does not truncate output... /bin/sed
checking if x86_64-pc-linux-gnu-gcc supports -Werror=unknown-warning-option... no
checking if x86_64-pc-linux-gnu-gcc supports -Werror=unused-command-line-argument... no
checking if x86_64-pc-linux-gnu-gcc supports -Wall... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wpointer-arith... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wmissing-declarations... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wformat=2... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wstrict-prototypes... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wmissing-prototypes... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wnested-externs... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wbad-function-cast... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wold-style-definition... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wdeclaration-after-statement... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wunused... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wuninitialized... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wshadow... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wmissing-noreturn... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wmissing-format-attribute... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wredundant-decls... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wlogical-op... yes
configure: WARNING: You have chosen not to turn some select compiler warnings into errors.  This should not be necessary.  Please report why you needed to do so in a bug report at https://gitlab.freedesktop.org/xorg/xserver/issues
checking if x86_64-pc-linux-gnu-gcc supports -Wimplicit... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wnonnull... yes
checking if x86_64-pc-linux-gnu-gcc supports -Winit-self... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wmain... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wmissing-braces... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wsequence-point... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wreturn-type... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wtrigraphs... yes
checking if x86_64-pc-linux-gnu-gcc supports -Warray-bounds... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wwrite-strings... yes
checking if x86_64-pc-linux-gnu-gcc supports -Waddress... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wint-to-pointer-cast... yes
checking if x86_64-pc-linux-gnu-gcc supports -Wpointer-to-int-cast... yes
checking if x86_64-pc-linux-gnu-gcc supports -pedantic... yes
checking if x86_64-pc-linux-gnu-gcc supports -Werror... yes
checking if x86_64-pc-linux-gnu-gcc supports -Werror=attributes... yes
checking whether make supports nested variables... (cached) yes
checking for doxygen... /usr/bin/doxygen
checking the doxygen version... 1.8.20
checking for dot... /usr/bin/dot
checking for X.Org SGML entities >= 1.8... no
checking whether to build documentation... yes
checking whether to build developer documentation... no
checking for xmlto... /usr/bin/xmlto
checking the xmlto version... 0.0.28
checking for fop... no
configure: WARNING: fop not found - documentation targets will be skipped
checking for xsltproc... /usr/bin/xsltproc
checking whether to build unit test cases... no
checking whether the linker accepts -Wl,-wrap,exit... yes
checking dependency style of x86_64-pc-linux-gnu-gcc... none
checking for x86_64-pc-linux-gnu-g++... x86_64-pc-linux-gnu-g++
checking whether we are using the GNU C++ compiler... yes
checking whether x86_64-pc-linux-gnu-g++ accepts -g... yes
checking dependency style of x86_64-pc-linux-gnu-g++... none
checking whether ln -s works... yes
checking how to print strings... printf
checking for a sed that does not truncate output... (cached) /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by x86_64-pc-linux-gnu-gcc... /usr/x86_64-pc-linux-gnu/bin/ld
checking if the linker (/usr/x86_64-pc-linux-gnu/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/x86_64-pc-linux-gnu-nm -B
checking the name lister (/usr/bin/x86_64-pc-linux-gnu-nm -B) interface... BSD nm
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/x86_64-pc-linux-gnu/bin/ld option to reload object files... -r
checking for x86_64-pc-linux-gnu-objdump... x86_64-pc-linux-gnu-objdump
checking how to recognize dependent libraries... pass_all
checking for x86_64-pc-linux-gnu-dlltool... no
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for x86_64-pc-linux-gnu-ar... x86_64-pc-linux-gnu-ar
checking for archiver @FILE support... @
checking for x86_64-pc-linux-gnu-strip... x86_64-pc-linux-gnu-strip
checking for x86_64-pc-linux-gnu-ranlib... x86_64-pc-linux-gnu-ranlib
checking command to parse /usr/bin/x86_64-pc-linux-gnu-nm -B output from x86_64-pc-linux-gnu-gcc object... ok
checking for sysroot... /
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for x86_64-pc-linux-gnu-mt... no
checking for mt... no
checking if : is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if x86_64-pc-linux-gnu-gcc supports -fno-rtti -fno-exceptions... no
checking for x86_64-pc-linux-gnu-gcc option to produce PIC... -fPIC -DPIC
checking if x86_64-pc-linux-gnu-gcc PIC flag -fPIC -DPIC works... yes
checking if x86_64-pc-linux-gnu-gcc static flag -static works... yes
checking if x86_64-pc-linux-gnu-gcc supports -c -o file.o... yes
checking if x86_64-pc-linux-gnu-gcc supports -c -o file.o... (cached) yes
checking whether the x86_64-pc-linux-gnu-gcc linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking how to run the C++ preprocessor... x86_64-pc-linux-gnu-g++ -E
checking for ld used by x86_64-pc-linux-gnu-g++... /usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64
checking if the linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the x86_64-pc-linux-gnu-g++ linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for x86_64-pc-linux-gnu-g++ option to produce PIC... -fPIC -DPIC
checking if x86_64-pc-linux-gnu-g++ PIC flag -fPIC -DPIC works... yes
checking if x86_64-pc-linux-gnu-g++ static flag -static works... yes
checking if x86_64-pc-linux-gnu-g++ supports -c -o file.o... yes
checking if x86_64-pc-linux-gnu-g++ supports -c -o file.o... (cached) yes
checking whether the x86_64-pc-linux-gnu-g++ linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for x86_64-pc-linux-gnu-pkg-config... (cached) /usr/bin/x86_64-pc-linux-gnu-pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for flex... flex
checking lex output file root... lex.yy
checking lex library... -lfl
checking whether yytext is a pointer... yes
checking for bison... bison -y
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for x86_64-pc-linux-gnu-cpp... /usr/bin/x86_64-pc-linux-gnu-cpp
checking if /usr/bin/x86_64-pc-linux-gnu-cpp requires -undef... yes
checking if /usr/bin/x86_64-pc-linux-gnu-cpp requires -traditional... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for ANSI C header files... (cached) yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for unistd.h... (cached) yes
checking for dlfcn.h... (cached) yes
checking stropts.h usability... no
checking stropts.h presence... no
checking for stropts.h... no
checking fnmatch.h usability... yes
checking fnmatch.h presence... yes
checking for fnmatch.h... yes
checking sys/mkdev.h usability... no
checking sys/mkdev.h presence... no
checking for sys/mkdev.h... no
checking sys/sysmacros.h usability... yes
checking sys/sysmacros.h presence... yes
checking for sys/sysmacros.h... yes
checking sys/utsname.h usability... yes
checking sys/utsname.h presence... yes
checking for sys/utsname.h... yes
checking for an ANSI C-conforming const... yes
checking for typeof syntax and keyword spelling... typeof
checking whether byte ordering is bigendian... no
checking size of unsigned long... 8
checking for pid_t... yes
checking for dlopen... no
checking for dlopen in -ldl... yes
checking for backtrace... yes
checking for geteuid... yes
checking for getuid... yes
checking for issetugid... no
checking for getresuid... yes
checking for getdtablesize... yes
checking for getifaddrs... yes
checking for getpeereid... no
checking for getpeerucred... no
checking for getprogname... no
checking for getzoneid... no
checking for mmap... yes
checking for posix_fallocate... yes
checking for seteuid... yes
checking for shmctl64... no
checking for strncasecmp... yes
checking for vasprintf... yes
checking for vsnprintf... yes
checking for walkcontext... no
checking for setitimer... yes
checking for poll... yes
checking for epoll_create1... yes
checking for mkostemp... yes
checking for memfd_create... yes
checking for isastream... no
checking for reallocarray... yes
checking for strcasecmp... yes
checking for strcasestr... yes
checking for strlcat... no
checking for strlcpy... no
checking for strndup... yes
checking for timingsafe_memcmp... no
checking for arc4random_buf in -lbsd... yes
checking for arc4random_buf... yes
checking whether program_invocation_short_name is declared... yes
checking for SO_PEERCRED in sys/socket.h... yes
checking for sqrt in -lm... yes
checking for cbrt... yes
checking linux/agpgart.h usability... yes
checking linux/agpgart.h presence... yes
checking for linux/agpgart.h... yes
checking sys/agpio.h usability... no
checking sys/agpio.h presence... no
checking for sys/agpio.h... no
checking sys/agpgart.h usability... no
checking sys/agpgart.h presence... no
checking for sys/agpgart.h... no
checking linux/fb.h usability... yes
checking linux/fb.h presence... yes
checking for linux/fb.h... yes
checking for sys/linker.h... no
checking for SYSV IPC... yes
checking machine/apmvar.h usability... no
checking machine/apmvar.h presence... no
checking for machine/apmvar.h... no
checking execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.h... yes
checking for backtrace in -lc... yes
checking for fallback input driver... libinput
checking for root directory for font files... /usr/share/fonts
checking for directory for misc files... ${FONTROOTDIR}/misc
checking for directory for OTF files... ${FONTROOTDIR}/OTF
checking for directory for TTF files... ${FONTROOTDIR}/TTF
checking for directory for Type1 files... ${FONTROOTDIR}/Type1
checking for directory for 75dpi files... ${FONTROOTDIR}/75dpi
checking for directory for 100dpi files... ${FONTROOTDIR}/100dpi
checking for default font path... ${FONTROOTDIR}/misc/,${FONTROOTDIR}/TTF/,${FONTROOTDIR}/OTF/,${FONTROOTDIR}/Type1/,${FONTROOTDIR}/100dpi/,${FONTROOTDIR}/75dpi/
checking to see if we can install the Xorg server as root... no
checking if Xtrans should support UNIX socket connections... yes
checking if Xtrans should support TCP socket connections... yes
checking for library containing socket... none required
checking for library containing gethostbyname... none required
checking for getaddrinfo... yes
checking if IPv6 support should be built... yes
checking for struct sockaddr_in.sin_len... no
checking for socklen_t... yes
checking for struct msghdr.msg_control... yes
checking if Xtrans should support os-specific local connections... no
checking for strcasecmp... (cached) yes
checking for strlcpy... (cached) no
checking for authdes_seccreate... no
checking for authdes_create... no
checking if Secure RPC authentication ("SUN-DES-1") should be supported... no
checking for pixman-1 >= 0.27.2... yes
checking whether PTHREAD_MUTEX_RECURSIVE is declared... yes
checking if compiler needs -Werror to reject unknown flags... no
checking for the pthreads library -lpthreads... no
checking whether pthreads work without any flags... no
checking whether pthreads work with -Kthread... no
checking whether pthreads work with -kthread... no
checking for the pthreads library -llthread... no
checking whether pthreads work with -pthread... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads... no
checking for PTHREAD_PRIO_INHERIT... yes
checking for pthread_setname_np(const char*)... no
checking for pthread_setname_np(pthread_t, const char*)... yes
checking for libsystemd >= 209... no
checking for libsystemd-daemon... no
checking for libudev >= 143... yes
checking for dbus-1 >= 1.0... yes
checking for hal... no
checking for glibc...... yes
checking for clock_gettime... yes
checking for a useful monotonic clock ...... yes
checking whether to track client ids... yes
checking for dri2proto >= 2.8... yes
checking for dri3proto >= 1.2... yes
checking for sigaction... yes
checking for xshmfence >= 1.1... yes
configure: DRI3 enabled
checking for libdrm >= 2.4.89... yes
checking for x11... yes
checking for glproto >= 1.4.17 gl... yes
checking for xdmcp... yes
checking for SHA1Init... no
checking for CC_SHA1_Init... no
checking for wincrypt.h... no
checking for SHA1Init in -lmd... no
checking for libsha1... no
checking for nettle_sha1_init in -lnettle... yes
checking for gcry_md_open in -lgcrypt... yes
checking for SHA1_Init in -lcrypto... yes
checking for openssl... yes
checking for SHA1 implementation... libcrypto
checking for fixesproto >= 5.0 damageproto >= 1.1 xcmiscproto >= 1.2.0 xtrans >= 1.3.5 bigreqsproto >= 1.1.0 xproto >= 7.0.31 randrproto >= 1.6.0 renderproto >= 0.11 xextproto >= 7.2.99.901 inputproto >= 2.3 kbproto >= 1.0.3 fontsproto >= 2.1.3 pixman-1 >= 0.27.2 videoproto compositeproto >= 0.4 scrnsaverproto >= 1.1 resourceproto >= 1.2.0 dri3proto xineramaproto xkbfile  pixman-1 >= 0.27.2 xfont2 >= 2.0.0 xau xshmfence >= 1.1 xdmcp... yes
checking for  pixman-1 >= 0.27.2 xfont2 >= 2.0.0 xau xshmfence >= 1.1 xdmcp... yes
checking for libunwind... no
checking if SVR4 needs to be defined... no
checking whether to build Xvfb DDX... no
checking for xext >= 1.0.99.4 x11 xau xdmcp... yes
checking whether to build Xnest DDX... no
checking whether to build Xorg DDX... no
checking whether to build XWin DDX... no
checking dependency style of $(CC)... none
checking for xmuu xext >= 1.0.99.4 x11 >= 1.6 xrender xfixes xi >= 1.2.99.1 dmxproto >= 2.2.99.1 xau xdmcp... yes
checking for xaw7 xmu xt xpm x11... yes
checking whether to build Xdmx DDX... no
checking for wayland-client >= 1.3.0 wayland-protocols >= 1.10 libdrm >= 2.4.89 epoxy xf86vidmodeproto >= 2.2.99.1... yes
checking whether to build Xwayland DDX... no
configure: WARNING:
             ***********************************************
             Neither HAL nor udev backend will be enabled.
             Input device hotplugging will not be available!
             ***********************************************
checking that generated files are newer than configure... done
configure: creating ./config.status
joakim-tjernlund commented 3 years ago

I downgraded to tigervnc to 1.9 and the problem is still there, how odd. What might have changed to cause this bug? xorg-server ?

joakim-tjernlund commented 3 years ago

Plasma has the same problem, display is just blank.

CendioOssman commented 3 years ago

I have looked in a lot of places but no logs/errors found

It definitely logs somewhere, so we need to figure out where. Do you get anything useful out of ls -l /proc/`pgrep mate-session`/fd when the session is running?

I downgraded to tigervnc to 1.9 and the problem is still there, how odd. What might have changed to cause this bug? xorg-server ?

Yeah, that or something in the X11 infrastructure.

Do you get an updated image if you press F8 and select Refresh screen?

joakim-tjernlund commented 3 years ago

Refresh does not help. If I turn compositing inside the session, every window disappears. ls -l /proc/pgrep mate-session/fd

total 0
dr-x------ 2 jocke users  0 Mar 16 13:45 ./
dr-xr-xr-x 9 jocke users  0 Mar 16 13:43 ../
lr-x------ 1 jocke users 64 Mar 16 13:45 0 -> 'pipe:[239440]'
l-wx------ 1 jocke users 64 Mar 16 13:45 1 -> /dev/null
lrwx------ 1 jocke users 64 Mar 16 13:45 10 -> 'anon_inode:[eventfd]'
lrwx------ 1 jocke users 64 Mar 16 13:45 11 -> 'anon_inode:[eventfd]'
lrwx------ 1 jocke users 64 Mar 16 13:45 12 -> 'socket:[237086]'
lrwx------ 1 jocke users 64 Mar 16 13:45 13 -> 'socket:[237087]'
lrwx------ 1 jocke users 64 Mar 16 13:45 14 -> 'socket:[237088]'
lrwx------ 1 jocke users 64 Mar 16 13:45 15 -> 'socket:[244771]'
lr-x------ 1 jocke users 64 Mar 16 13:45 16 -> 'pipe:[237090]'
l-wx------ 1 jocke users 64 Mar 16 13:45 17 -> 'pipe:[237090]'
lrwx------ 1 jocke users 64 Mar 16 13:45 18 -> 'socket:[237091]'
lrwx------ 1 jocke users 64 Mar 16 13:45 19 -> 'socket:[239481]'
l-wx------ 1 jocke users 64 Mar 16 13:45 2 -> /home/jocke/.local/share/sddm/xorg-session.log
lrwx------ 1 jocke users 64 Mar 16 13:45 20 -> 'socket:[241936]'
lrwx------ 1 jocke users 64 Mar 16 13:45 21 -> 'socket:[244106]'
lrwx------ 1 jocke users 64 Mar 16 13:45 22 -> 'socket:[237096]'
lrwx------ 1 jocke users 64 Mar 16 13:45 23 -> 'socket:[246800]'
lrwx------ 1 jocke users 64 Mar 16 13:45 24 -> 'socket:[244884]'
lrwx------ 1 jocke users 64 Mar 16 13:45 3 -> 'socket:[244767]'
lrwx------ 1 jocke users 64 Mar 16 13:45 4 -> /dev/dri/card0
lrwx------ 1 jocke users 64 Mar 16 13:45 5 -> /dev/dri/card0
lr-x------ 1 jocke users 64 Mar 16 13:45 6 -> /var/lib/sss/mc/passwd
lrwx------ 1 jocke users 64 Mar 16 13:45 7 -> 'anon_inode:[eventfd]'
lrwx------ 1 jocke users 64 Mar 16 13:45 8 -> 'anon_inode:[eventfd]'
lrwx------ 1 jocke users 64 Mar 16 13:45 9 -> 'socket:[244770]'

and cat /home/jocke/.local/share/sddm/xorg-session.log:

mate-session[29787]: WARNING: Unable to find provider '' of required component 'dock'
Window manager warning: Log level 128: unsetenv() is not thread-safe and should not be used after threads are created
vmware-user: could not open /proc/fs/vmblock/dev
Error: /usr/bin/vmtoolsd must be run inside a virtual machine on a VMware hypervisor product.

(caja:29847): Gtk-WARNING **: 13:44:00.189: Failed to register client: GDBus.Error:org.gnome.SessionManager.AlreadyRegistered: Unable to register client
16/03/2021 13:44:00 Autoprobing TCP port in (all) network interface
16/03/2021 13:44:00 Listening IPv6://[::]:5900
16/03/2021 13:44:00 Listening IPv4://0.0.0.0:5900
16/03/2021 13:44:00 Autoprobing selected port 5900
16/03/2021 13:44:00 Advertising security type: 'TLS' (18)
16/03/2021 13:44:00 Re-binding socket to listen for VNC connections on TCP port 5900 in (all) interface
16/03/2021 13:44:00 Listening IPv6://[::]:5900
16/03/2021 13:44:00 Listening IPv4://0.0.0.0:5900
16/03/2021 13:44:00 Clearing securityTypes
16/03/2021 13:44:00 Advertising security type: 'TLS' (18)
16/03/2021 13:44:00 Clearing securityTypes
16/03/2021 13:44:00 Advertising security type: 'TLS' (18)
16/03/2021 13:44:00 Advertising authentication type: 'No Authentication' (1)
16/03/2021 13:44:00 Re-binding socket to listen for VNC connections on TCP port 5900 in (all) interface
16/03/2021 13:44:00 Listening IPv6://[::]:5900
16/03/2021 13:44:00 Listening IPv4://0.0.0.0:5900
16/03/2021 13:44:00 Clearing securityTypes
16/03/2021 13:44:00 Clearing authTypes
16/03/2021 13:44:00 Advertising security type: 'TLS' (18)
16/03/2021 13:44:00 Advertising authentication type: 'VNC Authentication' (2)

(mate-power-manager:29880): Gdk-CRITICAL **: 13:44:00.909: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed
blueman-applet 13.44.01 WARNING  PluginManager:148 __load_plugin: Not loading DhcpClient because its conflict has higher priority
blueman-applet 13.44.01 WARNING  PluginManager:148 __load_plugin: Not loading PPPSupport because its conflict has higher priority
joakim-tjernlund commented 3 years ago

While I was typing this, the screen locker kicked in and I see this image. I can type my passwd but the screen is never redrawn. The PW takes effect though.

CendioOssman commented 3 years ago

Hmm... that suggests that the rendering is completely broken, rather then just not getting transmitted to the client.

Since this is libvnc.so you should also have a local display. What do things look like there? Like it should or the same issue?

joakim-tjernlund commented 3 years ago

It looks fine on both local display and in VINO VNC server

joakim-tjernlund commented 3 years ago

And the background is still there, only the background though. Anything missing in configure? What deps are you using ?

joakim-tjernlund commented 3 years ago

What about modesetting? It was disabled by default in Xorg: https://gitlab.freedesktop.org/xorg/xserver/-/commit/1ba5e528d52ed9d7d67eb45c5d3e04b6f5d22b05

joakim-tjernlund commented 3 years ago

Got a libvnc.so question, is it possible to setup libvnc.so Xorg module so that its only active in sddm? Once sddm starts the session, libvnc.so should be gone.

CendioOssman commented 3 years ago

modesetting (atomic or otherwise) is not involved here, so unfortunately that is not in.

The next suspect area is some bug with the readback of graphics from the graphics card. Given that it works without compositing that would again suggest some driver issue.

What graphics driver are you using? Have you checked if it might have some tweaks that could affect this? E.g. turning off glamor.

CendioOssman commented 3 years ago

Got a libvnc.so question, is it possible to setup libvnc.so Xorg module so that its only active in sddm? Once sddm starts the session, libvnc.so should be gone.

Maybe. If sddm starts a new X server you could perhaps use a different config for that.

What would be the point though? I would assume a VNC server for just the login screen wouldn't be very useful.

joakim-tjernlund commented 3 years ago

it is a standard builtin Intel device and its just not one machine, it is various DEs/laptops that has the problem.

joakim-tjernlund commented 3 years ago

Got a libvnc.so question, is it possible to setup libvnc.so Xorg module so that its only active in sddm? Once sddm starts the session, libvnc.so should be gone.

Maybe. If sddm starts a new X server you could perhaps use a different config for that.

What would be the point though? I would assume a VNC server for just the login screen wouldn't be very useful.

Then each user can have its own VINO server(if they want one) with their auth.

joakim-tjernlund commented 3 years ago

Got a libvnc.so question, is it possible to setup libvnc.so Xorg module so that its only active in sddm? Once sddm starts the session, libvnc.so should be gone.

Maybe. If sddm starts a new X server you could perhaps use a different config for that. What would be the point though? I would assume a VNC server for just the login screen wouldn't be very useful.

Then each user can have its own VINO server(if they want one) with their auth.

The general idea here is that one have a PW less xdm login page but once user logs in VNC auth must kick in for the user

joakim-tjernlund commented 3 years ago

modesetting (atomic or otherwise) is not involved here, so unfortunately that is not in.

The next suspect area is some bug with the readback of graphics from the graphics card. Given that it works without compositing that would again suggest some driver issue.

What graphics driver are you using? Have you checked if it might have some tweaks that could affect this? E.g. turning off glamor.

Disabling glamor makes it WORK :)

CendioOssman commented 3 years ago

We've heard of issues with glamor before, but unfortunately I don't have any device suitable for testing here. The issue does not appear in a VMware virtual machine. :/

Could you report a bug with Xorg so the glamor maintainers could have a look?

joakim-tjernlund commented 3 years ago

We've heard of issues with glamor before, but unfortunately I don't have any device suitable for testing here. The issue does not appear in a VMware virtual machine. :/

Could you report a bug with Xorg so the glamor maintainers could have a look?

https://gitlab.freedesktop.org/xorg/xserver/-/issues/1152

joakim-tjernlund commented 3 years ago

We've heard of issues with glamor before, but unfortunately I don't have any device suitable for testing here. The issue does not appear in a VMware virtual machine. :/

Could you report a bug with Xorg so the glamor maintainers could have a look?

Thinking about this I don't think glamor mant. will be of much help unless you describe what libvnc does. or get a Intel/AMD card so you can see it yourself :)

joakim-tjernlund commented 3 years ago

So no help from Xorg, any progress on your own?

CendioOssman commented 3 years ago

I'm afraid I don't have the time to start digging around at that level. So until the glamor people (or someone else) has a look, this issue will likely remain.

joakim-tjernlund commented 3 years ago

It occurred to me that maybe this never worked with Glamor? Not sure when Glamor became default in Gentoo.

joakim-tjernlund commented 3 years ago

Tested with the new xorg-server 1.20.12 , still the same problem.

When I choose compositing I just get a background img, all icons, trays, windows etc. are gone. Flip compositing off , everything returns. Feels like tigervnc is drawing from the wrong FB?

joakim-tjernlund commented 2 years ago

Same problem with xorg-server-21.1.3

rclar802 commented 2 years ago

Has there been change since?

joakim-tjernlund commented 2 years ago

Not really, just that I now known that it is really Intel/glamor. AMD works fine. The problem is in Xorg glamor taking a shortcut somewhere.

warrenc5 commented 1 year ago

I was troubleshooting an issue with enlightenment/wayland/glx/nvidia/compositor/x11/libvnc/remmina where the screen would look like this.

I thought I had tried every combination of settings in the compositor -

If I select "force tight encoding" I initially see the entire screen.

But the behavior is the same - new/moved windows don't draw correctly.

I've looked into xdamage module - I don't know if that's involved - I haven't explicitly enabled it in my xorg.conf modules section.

Is this the same/similar issue you are seening?
I only mean to share, not hijack this issue. Should I raise a new report with all my version details?

shot-2023-05-25_10-10-36

joakim-tjernlund commented 1 year ago

Not quite, I get a black screen but who knows, maybe Nvidia is different. Does it work if you turn compositor off?

warrenc5 commented 1 year ago

Ta. Yes it works when compositor is off.

I get a blank screen too - but if I choose "tight mode" then I see this "glitching"

I might raise another ticket.

joakim-tjernlund commented 1 year ago

OK, then I think same problem. So both Nvidia and Intel seems to have the same problem

joakim-tjernlund commented 1 year ago

https://gitlab.freedesktop.org/xorg/xserver/-/issues/1152 for Xorg

Juniorsnet commented 10 months ago

for me after tinkering with xorg options, the config that work with compositor enabled is:

Section "Device" Identifier "Intel Graphics" Driver "intel" Option "AccelMethod" "uxa" Option "SwapbuffersWait" "false" EndSection

For AMD (APU A4-9120) only works disabling glamor or compositor.

joakim-tjernlund commented 10 months ago

for me after tinkering with xorg options, the config that work with compositor enabled is:

Section "Device" Identifier "Intel Graphics" Driver "intel" Option "AccelMethod" "uxa" Option "SwapbuffersWait" "false" EndSection

For AMD (APU A4-9120) only works disabling glamor or compositor.

OK, I think you should add this to the xorg-server ticket too