Distortion on display using noVNC

292 views
Skip to first unread message

rcabasa

unread,
Oct 1, 2020, 4:06:35 AM10/1/20
to noVNC

Hi Guys,

We are using noVNC for our remote operator panel. There was a big poky upgrade on our yocto build and after that we observed some distortion in our remote operator panel. The problem with this distortion is that it's not reproducible on all of our machines. There are just a few of them that I've seen the issue. We can't also revert the poky upgrade because it's needed by our system.

I can't seem to attach any screenshots here on the distortion display.

Do you have any idea how to debug this on noVNC? (I'm actually new to noVNC)


Thanks...


ray cabasa

unread,
Oct 1, 2020, 4:12:29 AM10/1/20
to no...@googlegroups.com
Here's the screenshots by the way for the issue.

Before: Good display
Screenshot from 2020-10-01 15-43-46.png

After: Distorted display
Screenshot from 2020-10-01 14-45-33.png

If you've noticed, the keyboard display is broken/distorted. This is just one example of the distortion, if you move to different screens you can also notice the distortion. The broken display is also not specific to certain locations or components. It happens anywhere in the display.

Can somebody help me how to debug this issue in noVNC?

I tried upgrading the latest noVNC code but this issue still shows.


Thanks...

--
You received this message because you are subscribed to a topic in the Google Groups "noVNC" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/novnc/ZgPeXqLuLf4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to novnc+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/novnc/c1289682-e77a-4d27-b3fa-ccc7d7e461c0n%40googlegroups.com.

Samuel Mannehed

unread,
Oct 1, 2020, 4:27:54 AM10/1/20
to ray cabasa, no...@googlegroups.com
Hi Ray,

> If you've noticed, the keyboard display is broken/distorted. This is
> just one example of the distortion, if you move to different screens
> you can also notice the distortion. The broken display is also not
> specific to certain locations or components. It happens anywhere in
> the display.

This looks like a server side issue to me. Are you able to test with a
different VNC client?

If you still see the same issue with another VNC client it's very
likely not a problem caused by noVNC.

Best regards,
--
Samuel Mannehed Software Development
Cendio AB https://cendio.com
Teknikringen 8 https://twitter.com/ThinLinc
583 30 Linköping https://facebook.com/ThinLinc
Phone: +46 13 214 600

ray cabasa

unread,
Oct 1, 2020, 4:58:29 AM10/1/20
to Samuel Mannehed, no...@googlegroups.com
Yes, I've tested this with other VNC client and they don't show the issue.

Samuel Mannehed

unread,
Oct 1, 2020, 7:28:54 AM10/1/20
to ray cabasa, no...@googlegroups.com
Hi Ray,

> Yes, I've tested this with other VNC client and they don't show the
> issue.

Ok. Could you show a screenshot of how it's supposed to look?

What VNC server are you using?

ray cabasa

unread,
Oct 1, 2020, 8:47:15 AM10/1/20
to Samuel Mannehed, no...@googlegroups.com
Hi Samuel,

This is how it should look:

Screenshot from 2020-10-01 15-43-46.png

We're using libvncserver and I already updated it to 0.9.12, 0.9.13, also with the master branch around the first week of September commit. But the issue is still showing.


Thanks...

ray cabasa

unread,
Oct 4, 2020, 9:33:09 PM10/4/20
to Samuel Mannehed, no...@googlegroups.com
Sam,

Any updates on this one?

Thanks..

Samuel Mannehed

unread,
Oct 5, 2020, 4:28:59 AM10/5/20
to ray cabasa, no...@googlegroups.com
Hi,

> This is how it should look:
>
> [image: Screenshot from 2020-10-01 15-43-46.png]
>
> We're using libvncserver and I already updated it to 0.9.12,
> 0.9.13, also with the master branch around the first week of
> September commit. But the issue is still showing.

Are you seeing any errors in the logs when the distortion happens? I'm
mostly curious about the browser console, but it could be worthwhile to
check the VNC server logs too.

Regards,

ray cabasa

unread,
Oct 5, 2020, 6:10:22 AM10/5/20
to Samuel Mannehed, no...@googlegroups.com
Hi Sam,

I did not see any errors in the browser console so far.

Screenshot from 2020-10-05 18-05-45.png
Did not drop any logs from libvncserver but I'll try to check.

Do you have any best guess on where this distortion could probably be taking place in noVNC?


Thanks...

Samuel Mannehed

unread,
Oct 5, 2020, 7:20:55 AM10/5/20
to ray cabasa, no...@googlegroups.com
Hi,

> I did not see any errors in the browser console so far.
>
> [image: Screenshot from 2020-10-05 18-05-45.png]
> Did not drop any logs from libvncserver but I'll try to check.
>
> Do you have any best guess on where this distortion could probably be
> taking place in noVNC?

Nope, no idea. Not something I can recall seeing before. I have the
impression that we have a lot of people using libvncserver +
noVNC without issues.

In your first email you said it only happens with some of your
machines. Are we talking about client machines (running the browser),
or server machines (running the VNC server)? Perhaps it's tied to a
specific browser version?

Samuel Mannehed

unread,
Oct 20, 2020, 7:37:38 AM10/20/20
to ray cabasa, no...@googlegroups.com
Hi Ray,

> Do you have any idea what's causing the distortion of our remote
> panel in the screenshot below (our remote operator panel on the left
> side with the browser debugger on the right)? I tried debugging the
> rendering of our remote panel but can't really understand the
> rendering process of noVNC.

As I wrote in my last email, as seen below, no I don't have any idea of
what's causing this. It feels like you are troubleshooting this from
the wrong direction.

If you are having troubles with only some of your
printer-server-machines and some of them work, I'd recommend looking at
that end first. Again - what's different between the working and the
problematic machines?

Until you have more concrete information I'm afraid I can't help much.

> On Tue, Oct 6, 2020 at 8:07 PM Samuel Mannehed <sam...@cendio.se>
> wrote:
>
> > Hi,
> >
> > > Sorry, I did not clearly explain the term "machine" in my email.
> > > It's actually a printer machine. We ran the libvncserver inside
> > > the printer to access our remote operator panel (GUI panel) on a
> > > web-based client specifically noVNC is this case. With that, I can
> > > only see this issue on a few printer machines when accessing their
> > > remote operator panel. If this is just a common bug, then I should
> > > see them on all printers we have. Did I explain this clearly?
> >
> > Ok, so the problem only happens on specific VNC server machines.
> > Your next step should be to find what's different between the
> > working and the problematic printer machines then.
> >
> > I think libvncserver has a built in websocket to TCP proxy, is that
> > the one you're using? If so, you could try to eliminate that part
> > of the equation and try a different proxy, like Websockify to see
> > if the problem persists?
> >
> > If the issue persists with Websockify we could perhaps get a
> > recording to work with as well.
> >
> > Even if noVNC incorrectly handles some data here, we need more
> > details to proceed.
> >
> > > Have you also experienced this distortion problem in noVNC before?
> >
> > No, not really.

ray cabasa

unread,
Nov 8, 2020, 7:20:25 PM11/8/20
to Samuel Mannehed, no...@googlegroups.com
Hi Samuel,

I did debug libvncserver and the noVNC side rendering. I think there are framebuffer data differences from the distorted and non-distorted.
I would like to ask if you have some simulator that I can use to check if the received image data from libvncserver through websocket are correct. Something like a viewer of the image that libvncserver sent to noVNC.

Thanks...

ray cabasa

unread,
Nov 8, 2020, 7:28:44 PM11/8/20
to Samuel Mannehed, no...@googlegroups.com
Or how do you debug in noVNC if you think there's something wrong with the websocket data?
Do you have some viewer tool that will physically show the image sent by the libvncserver?

ray cabasa

unread,
Nov 9, 2020, 5:58:14 AM11/9/20
to Samuel Mannehed, no...@googlegroups.com
Hi Samuel,

I was able to reproduce the distortion using the Remmina VNC viewer. As what I've said before, we did not reproduce this issue on different VNC viewers we tested. However today, I was curious again and tried reproducing it and it did show up.

I was using the same libvncserver and noVNC version for both the non-distorted and distorted set-up. The only difference on both set-ups is the Android code of our panel. With this new finding, it is safe to say that the problem is within our Android Panel? I just want to roll-out the Websocket issue scenario. Do you agree that this has nothing to do with Websocket? Aside from replacing it with websockify, how can I test my set-up to make sure that websocket is not the issue?


Thanks...

ray cabasa

unread,
Nov 9, 2020, 8:51:54 PM11/9/20
to Samuel Mannehed, no...@googlegroups.com
Hi Samuel or anyone from noVNC community,

Can anyone answer my questions on the last email I sent to you guys?

Thanks in advance for the help.

Samuel Mannehed

unread,
Nov 10, 2020, 3:06:36 AM11/10/20
to ray cabasa, no...@googlegroups.com
Hi Ray,

> I was able to reproduce the distortion using the Remmina VNC viewer.
> As what I've said before, we did not reproduce this issue on
> different VNC viewers we tested. However today, I was curious again
> and tried reproducing it and it did show up.
>
> I was using the same libvncserver and noVNC version for both the
> non-distorted and distorted set-up. The only difference on both
> set-ups is the Android code of our panel. With this new finding, it
> is safe to say that the problem is within our Android Panel? I just
> want to roll-out the Websocket issue scenario. Do you agree that this
> has nothing to do with Websocket? Aside from replacing it with
> websockify, how can I test my set-up to make sure that websocket is
> not the issue?

If you were able to reproduce it with Remmina then we can rule out
that the problem lies with noVNC and websockify. Remmina connects
directly to the VNC server and no websocket proxy is used.

The problem is with your VNC server.

ray cabasa

unread,
Nov 10, 2020, 4:39:25 AM11/10/20
to Samuel Mannehed, no...@googlegroups.com
Thanks a lot Samuel for all the help.

Cheers to you guys!

ray cabasa

unread,
Nov 18, 2020, 5:56:18 AM11/18/20
to Samuel Mannehed, no...@googlegroups.com
Hi Samuel,

Good day!

Do you have a tool/program/script that can convert RFB (remote framebuffer) to its raw framebuffer (pixel format)?


Thanks...

Samuel Mannehed

unread,
Nov 23, 2020, 3:16:28 AM11/23/20
to ray cabasa, no...@googlegroups.com
Hi Ray,

> I've already posted the distortion issue in libvncserver github repo.
>
> The other thing I observed especially with Remmina and RealVNC is
> that the distortion is not showing when you configure the picture
> quality to "best" or "high".
> Is there a way we can set in noVNC that picture quality to "high" or
> "best"? This might be a good workaround solution we can give to our
> customers while the libvncserver investigation is going on.

There is such a slider in noVNC settings, yes.

ray cabasa

unread,
Nov 23, 2020, 5:09:03 AM11/23/20
to Samuel Mannehed, no...@googlegroups.com
That's great!

How do I set the picture quality in noVNC client to "best" or "high quality" in the javascript code?
Could this be perhaps the code? It's currently set to "6".

set qualityLevel(qualityLevel) {
if (!Number.isInteger(qualityLevel) || qualityLevel < 0 || qualityLevel > 9) {
Log.Error("qualityLevel must be an integer between 0 and 9");
return;
}

if (this._qualityLevel === qualityLevel) {
return;
}

this._qualityLevel = qualityLevel;

if (this._rfbConnectionState === 'connected') {
this._sendEncodings();
}
}

this._qualityLevel = 6;

I already tried checking in the browser using vnc.html but can't find any configuration regarding picture quality.


Thanks...

ray cabasa

unread,
Nov 23, 2020, 8:10:21 AM11/23/20
to Samuel Mannehed, no...@googlegroups.com
Hi Samuel,

The libvncserver team are suspecting that this issue/problem with distortion has something to do with Tight Enconding.

Is there a way we can disable Tight Encoding in noVNC? and allow other encondings?


Thanks....

Samuel Mannehed

unread,
Nov 23, 2020, 8:37:48 AM11/23/20
to ray cabasa, no...@googlegroups.com
Hi,

> How do I set the picture quality in noVNC client to "best" or "high
> quality" in the javascript code?
> Could this be perhaps the code? It's currently set to "6".

See core/rfb.js:306 for changing the default value.

> I already tried checking in the browser using vnc.html but can't
> find any configuration regarding picture quality.

See the attached screenshot.

> The libvncserver team are suspecting that this issue/problem with
> distortion has something to do with Tight Enconding.
>
> Is there a way we can disable Tight Encoding in noVNC? and allow other
> encondings?

You would have to modify the code and remove the TightDecoder from the
list of decoders in core/rfb.js:216.

Regards
quality_slider.png
Reply all
Reply to author
Forward
0 new messages