avnc icon indicating copy to clipboard operation
avnc copied to clipboard

10-bit color support

Open Steven-- opened this issue 7 months ago • 9 comments

It would be nice if avnc supported 10-bit color depth. At the moment the connection is established and the immediately closed.

Steven-- avatar May 14 '25 14:05 Steven--

I am not aware of any extensions to enable 10-bit color depth in VNC protocol. Moreover, AVNC is using OpenGL ES, which might not support 10-bit depth.

Which VNC server are you connecting to?

gujjwal00 avatar May 18 '25 02:05 gujjwal00

Hi, thanks for your reply.

I'm using wayvnc which, according to https://github.com/any1/wayvnc/issues/378#issuecomment-2880399212, supports 10 bits.

On May 18, 2025 2:24:35 AM UTC, Gaurav Ujjwal @.***> wrote:

gujjwal00 left a comment (gujjwal00/avnc#303)

I am not aware of any extensions to enable 10-bit color depth in VNC protocol. Moreover, AVNC is using OpenGL ES, which might not support 10-bit depth.

Which VNC server are you connecting to?

Steven-- avatar May 19 '25 08:05 Steven--

Sorry, I didn't remember correctly. VNC protocol can indeed support 10-bit color, its the OpenGL ES 2.0 used in AVNC which doesn't support 10-bit colors. And some custom cursor rendering in AVNC which was written only for 8-bit color.

That said, lack of 10-bit color support should not cause AVNC to disconnect as server should use 8-bit pixel-format sent by AVNC. Can you please post the logs from Settings => Tools => Logs after trying to connect to the server?

gujjwal00 avatar May 19 '25 11:05 gujjwal00

Sure, here it is:

Logs

--------- beginning of perf
05-14 14:35:57.295 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:57.415 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:57.447 18504 21370 I 111     :  OptJank - high percentage:0.75
05-14 14:35:57.595 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:57.663 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:57.732 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:57.794 18504 21370 I 111     :  OptJank - high percentage:0.75
05-14 14:35:57.862 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:57.927 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:57.995 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:58.061 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:58.127 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:58.127 18504 21370 I 111     :  OptJank - high percentage:1
05-14 14:35:58.194 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:58.260 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:58.327 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:58.394 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:58.461 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:58.461 18504 21370 I 111     :  OptJank - high percentage:1
05-14 14:35:58.528 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:58.594 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:58.661 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:58.727 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:58.795 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:58.795 18504 21370 I 111     :  OptJank - high percentage:1
05-14 14:35:58.860 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:58.926 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:58.993 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:59.060 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:59.127 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:59.127 18504 21370 I 111     :  OptJank - high percentage:1
05-14 14:35:59.193 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:59.260 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:59.326 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:59.393 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:59.460 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:59.460 18504 21370 I 111     :  OptJank - high percentage:1
05-14 14:35:59.527 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:59.593 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:59.660 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:59.727 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:59.794 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:59.794 18504 21370 I 111     :  OptJank - high percentage:1
05-14 14:35:59.860 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:59.927 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:35:59.995 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:00.061 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:00.126 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:00.126 18504 21370 I 111     :  OptJank - high percentage:1
05-14 14:36:00.193 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:00.259 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:00.326 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:00.394 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:00.459 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:00.460 18504 21370 I 111     :  OptJank - high percentage:1
05-14 14:36:00.526 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:00.592 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:00.660 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:00.726 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:00.792 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:00.793 18504 21370 I 111     :  OptJank - high percentage:1
05-14 14:36:00.861 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:00.926 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:00.994 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:01.059 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:01.127 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:01.128 18504 21370 I 111     :  OptJank - high percentage:1
05-14 14:36:01.245 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:01.441 18504 21370 I 111     :  OptJank - continuously drops frames:4
05-14 14:36:01.460 18504 21370 I 111     :  OptJank - high percentage:0.75
05-14 14:36:47.736 18504 21370 I 110     :  OptJank - total:73 frameGap:197 delta#0#3#0#2#0#69
05-21 22:04:15.533 26988 21971 I 111     :  OptJank - continuously drops frames:4
05-21 22:06:22.282 26988 21971 I 111     :  OptJank - continuously drops frames:4
05-21 22:06:22.347 26988 21971 I 111     :  OptJank - continuously drops frames:4
--------- beginning of main
05-21 22:06:23.632 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:23.638 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 18 lines
05-21 22:06:23.638 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.221 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.227 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 6 lines
05-21 22:06:25.228 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.229 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.237 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 3 lines
05-21 22:06:25.239 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.239 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.308 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 45 lines
05-21 22:06:25.308 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.320 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.323 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 8 lines
05-21 22:06:25.323 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.338 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.354 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 11 lines
05-21 22:06:25.355 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.355 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.356 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 5 lines
05-21 22:06:25.356 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.370 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.371 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.371 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.372 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.372 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.373 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 4 lines
05-21 22:06:25.373 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.387 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.390 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 8 lines
05-21 22:06:25.390 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.404 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.489 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 56 lines
05-21 22:06:25.489 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:25.612 26988 26988 E com.gaurav.avn: Invalid ID 0x00000001.
05-21 22:06:25.628 26988 26988 D ViewRootImpl[PrefsActivity]: windowFocusChanged hasFocus=false inTouchMode=true
05-21 22:06:25.655 26988 26988 D DecorView: onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@47aa1ba[StartupActivity]
05-21 22:06:25.656 26988 26988 D ViewRootImpl[StartupActivity]: windowFocusChanged hasFocus=true inTouchMode=true
05-21 22:06:26.431 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
--------- beginning of system
05-21 22:06:26.466 26988 26988 D ViewRootImpl: support adaptive color gamut feature!
05-21 22:06:26.474 26988 26988 D ViewRootImpl[StartupActivity]: windowFocusChanged hasFocus=false inTouchMode=true
05-21 22:06:26.506 26988 26988 W Choreographer: Already have a pending vsync event.  There should only be one at a time.
05-21 22:06:26.538 26988 26988 D DecorView: onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@6e59952[VncActivity]
05-21 22:06:26.541 26988 26988 D ViewRootImpl[VncActivity]: windowFocusChanged hasFocus=true inTouchMode=true
05-21 22:06:26.544 26988 22478 I NativeVnc: Received protocol version 3.8
05-21 22:06:26.545 26988 22478 I NativeVnc: VNC server supports protocol version 3.8 (viewer 3.8)
05-21 22:06:26.551 26988 22478 I NativeVnc: We have 1 security types to read
05-21 22:06:26.552 26988 22478 I NativeVnc: 0) Received security type 1
05-21 22:06:26.552 26988 22478 I NativeVnc: Selecting security type 1 (0/1 in the list)
05-21 22:06:26.552 26988 22478 I NativeVnc: Selected Security Scheme 1
05-21 22:06:26.552 26988 22478 I NativeVnc: No authentication needed
05-21 22:06:26.556 26988 22478 I NativeVnc: VNC authentication succeeded
05-21 22:06:26.559 26988 22478 I NativeVnc: Desktop name "WayVNC"
05-21 22:06:26.559 26988 22478 I NativeVnc: Connected to VNC server, using protocol version 3.8
05-21 22:06:26.559 26988 22478 I NativeVnc: VNC server default format:
05-21 22:06:26.559 26988 22478 I NativeVnc:   32 bits per pixel.
05-21 22:06:26.559 26988 22478 I NativeVnc:   Least significant byte first in each pixel.
05-21 22:06:26.559 26988 22478 I NativeVnc:   TRUE colour: max red 1023 green 1023 blue 1023, shift red 0 green 10 blue 20
05-21 22:06:26.576 26988 22478 I NativeVnc: rfbClientProcessExtServerCutText. default cap.
05-21 22:06:26.584 26988 22478 I NativeVnc: Incorrect data received from the server.
05-21 22:06:26.584 26988 22478 E NativeVnc: errnoToStr: (11 Try again)
05-21 22:06:26.585 26988 22478 E VncViewModel: Connection failed
05-21 22:06:26.585 26988 22478 E VncViewModel: java.io.IOException: 
05-21 22:06:26.585 26988 22478 E VncViewModel: 	at com.gaurav.avnc.vnc.VncClient.processServerMessage(VncClient.kt:76)
05-21 22:06:26.585 26988 22478 E VncViewModel: 	at com.gaurav.avnc.viewmodel.VncViewModel$launchConnection$1.invoke(VncViewModel.kt:39)
05-21 22:06:26.585 26988 22478 E VncViewModel: 	at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:3)
05-21 22:06:26.634 26988 26988 E com.gaurav.avn: Invalid ID 0x00000001.
05-21 22:06:26.640 26988 26988 E com.gaurav.avn: Invalid ID 0x00000001.
05-21 22:06:28.488 26988 26988 E com.gaurav.avn: Invalid ID 0x00000001.
05-21 22:06:28.502 26988 26988 D ViewRootImpl[VncActivity]: windowFocusChanged hasFocus=false inTouchMode=true
05-21 22:06:28.505 26988 26988 E com.gaurav.avn: Invalid ID 0x00000001.
05-21 22:06:28.521 26988 26988 D DecorView: onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@47aa1ba[StartupActivity]
05-21 22:06:28.522 26988 26988 D ViewRootImpl[StartupActivity]: windowFocusChanged hasFocus=true inTouchMode=true
05-21 22:06:29.770 26988 26988 D ViewRootImpl: support adaptive color gamut feature!
05-21 22:06:29.777 26988 26988 D ViewRootImpl[StartupActivity]: windowFocusChanged hasFocus=false inTouchMode=true
05-21 22:06:29.808 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:29.811 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 18 lines
05-21 22:06:29.811 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:29.817 26988 26988 W Choreographer: Already have a pending vsync event.  There should only be one at a time.
05-21 22:06:29.819 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:29.820 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 8 lines
05-21 22:06:29.820 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:29.839 26988 26988 D DecorView: onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@8f18e88[PrefsActivity]
05-21 22:06:29.841 26988 26988 D ViewRootImpl[PrefsActivity]: windowFocusChanged hasFocus=true inTouchMode=true
05-21 22:06:29.851 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:29.853 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 8 lines
05-21 22:06:29.853 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:31.116 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:31.117 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:31.168 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:31.176 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 18 lines
05-21 22:06:31.176 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:32.748 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:32.767 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 15 lines
05-21 22:06:32.767 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:32.768 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:32.800 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 21 lines
05-21 22:06:32.800 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:32.813 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:32.850 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 24 lines
05-21 22:06:32.850 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:32.851 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:32.914 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 36 lines
05-21 22:06:32.915 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:32.915 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:32.999 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 54 lines
05-21 22:06:32.999 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:33.013 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.
05-21 22:06:33.015 26988 26988 I chatty  : uid=10022(com.gaurav.avnc) identical 8 lines
05-21 22:06:33.015 26988 26988 E com.gaurav.avn: Invalid ID 0x00000000.

Steven-- avatar May 21 '25 20:05 Steven--

That failure is coming from Tight encoder. Just for testing, try to connect with Raw encoding:

  1. Long-press on server in AVNC
  2. Tap on Edit, then on Advanced
  3. Tick the Raw checkbox in front of Image quality
  4. Save

If AVNC still fails to connect, please post the logs after failure. Also, is there a way to replicate your setup on my side, preferably in a virtual machine?

gujjwal00 avatar May 22 '25 03:05 gujjwal00

Any updates @Steven-- ?

gujjwal00 avatar Jul 28 '25 02:07 gujjwal00

Sorry, I'll get back to you by tomorrow.

On July 28, 2025 2:46:02 AM UTC, Gaurav Ujjwal @.***> wrote:

gujjwal00 left a comment (gujjwal00/avnc#303)

Any updates @Steven-- ?

Steven-- avatar Jul 28 '25 10:07 Steven--

Switching to Raw mode works. I'm using Hyprland on arch Linux:

$ hyprctl version
Hyprland 0.50.1 built from branch  at commit 4e242d086e20b32951fdc0ebcbfb4d41b5be8dcc  ([gha] Nix: update inputs).
Date: Sat Jul 19 21:37:06 2025
Tag: v0.50.1, commits: 6291
built against:
 aquamarine 0.9.2
 hyprlang 0.6.3
 hyprutils 0.8.1
 hyprcursor 0.1.12
 hyprgraphics 0.1.5


no flags were set

$ uname -a
Linux xenon 6.15.7-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 17 Jul 2025 21:05:29 +0000 x86_64 GNU/Linux

$ LSB Version:	n/a
Distributor ID:	Arch
Description:	Arch Linux
Release:	rolling
Codename:	n/a

My monitor is configured as follows:

monitorv2 {
    output = HDMI-A-5
    mode = 2560x1440@144
    position = 0x0
    scale = 1.25
    vrr = 1
    bitdepth = 10
    cm = hdr
}

Here is the wayvnc log from an unsuccessfull connection attempt (with raw mode disabled):

Info: Capturing output HDMI-A-5
Info: >> LG Electronics LG ULTRAGEAR 208MAYYG5C82 (HDMI-A-5) 2560x1440+0x0 Power:UNKNOWN
DEBUG: ../wayvnc/src/ctl-server.c: 809: Initializing wayvncctl socket: /run/user/1000/wayvncctl
DEBUG: ../neatvnc/src/server.c: 2150: Trying address: 0.0.0.0
DEBUG: ../neatvnc/src/server.c: 2165: Successfully bound to address
Info: Listening for connections on 0.0.0.0:5900
Info: New client connection from 192.168.64.163: 0x555ea020a450
DEBUG: ../neatvnc/src/server.c: 362: Client chose security type: 1
DEBUG: ../wayvnc/src/main.c: 1640: Configuring cursor capturing
DEBUG: ../wayvnc/src/main.c: 1656: Failed to capture cursor
Info: Starting screen capture
DEBUG: ../wayvnc/src/main.c: 1030: Acquired power state management. Waiting for power event to start capturing
DEBUG: ../wayvnc/src/main.c: 1383: Client connected, new client count: 1
DEBUG: ../wayvnc/src/ctl-server.c: 941: Enqueueing client-connected event: {"id":"1","address":"192.168.64.163","username":null,"seat":"Hyprland","connection_count":1}
DEBUG: ../wayvnc/src/ctl-server.c: 968: Enqueued client-connected event for 0 clients
Info: Client 0x555ea020a450 initialised. MIN-RTT during handshake was 3 ms
DEBUG: ../wayvnc/src/buffer.c: 606: Reconfiguring buffer pool
DEBUG: ../neatvnc/src/server.c: 546: Using color palette for client 0x555ea020a450
DEBUG: ../neatvnc/src/server.c: 560: Client 0x555ea020a450 chose pixel format: XRGB8888
DEBUG: ../neatvnc/src/server.c: 683: Client 0x555ea020a450 set encodings: tight,zrle,copyrect,hextile,rre,raw,cursor,desktop-size,extended-desktop-size,qemu-extended-key-event,extended-clipboard
Info: Choosing tight encoding for client 0x555ea020a450
DEBUG: ../neatvnc/src/server.c: 1655: Sending extended desktop resize rect: 2560x1440
Info: Client connection error: 0x555ea020a450
Info: Closing client connection 0x555ea020a450
DEBUG: ../wayvnc/src/main.c: 1331: Client disconnected, new client count: 0
DEBUG: ../wayvnc/src/ctl-server.c: 380: Don't know how to convert sa_family 0 to string
DEBUG: ../wayvnc/src/ctl-server.c: 941: Enqueueing client-disconnected event: {"id":"1","address":null,"username":null,"seat":"Hyprland","connection_count":0}
DEBUG: ../wayvnc/src/ctl-server.c: 968: Enqueued client-disconnected event for 0 clients
Info: Stopping screen capture

If I set the monitor bit depth to 8 bits then everything works even without raw mode.

Steven-- avatar Jul 30 '25 21:07 Steven--

Thanks @Steven-- . Because using raw mode fixes the issue, that means AVNC and wayvnc are correctly switching to 8-bit color depth for data transfer even when monitor is set to 10-bit color. So the problem is either in Tight encoding of wayvnc server, or in Tight decoding of AVNC.

I don't have a monitor with 10-bit color support so I can't test wayvnc with a real display. Nevertheless, I modified wayvnc to simulate a fake 10bit display with same screen size as yours, but I was not able to reproduce your problem. For me, AVNC connected successfully.

So without reproducing this on my side and locating the root cause, I probably won't be able to fix this. I would suggest testing with different VNC clients or servers to rule out either AVNC or wayvnc as culprit. If you are willing, there are a number of VNC clients you can try:

  • MultiVNC: Uses the same libraries as AVNC, so will probably experience the same issue
  • bVNC: Uses a different backend, so it may work correctly
  • RealVNC: proprietary, but you can try if it works

gujjwal00 avatar Aug 01 '25 13:08 gujjwal00