Re: RFB doesn't use client's SetPixelFormat

From: Corvin Köhne <corvink_at_FreeBSD.org>
Date: Fri, 18 Aug 2023 05:53:39 UTC
On Thu, 2023-08-17 at 10:31 -0700, Justin England wrote:
> Greetings,
> 
> I am using FreeBSD 13.2-STABLE and have recently attempted to get
> noVNC’s web based VNC client to work with my bhyve VNC consoles, but
> immediately realized that the colors are not correctly displayed
> where essentially the reds and blues are reversed.
> 
> After doing some research, that is exactly what is happening.  Web
> browsers seem to use BGR colors where bhyve’s RFB uses RGB.  Reading
> through the mailing lists / forums of noVNC, this appears to be a
> common issue and usually means that the embedded RFB server does not
> properly use the pixel format that the client requests.
> 
> After quickly going through the RFB protocol and bhyve’s rfb.c
> source, sure enough, when bhyve receives a SetPixelFormat from the
> client, it basically ignores it and moves on. (
> rfb_recv_set_pixfmt_msg() )
> 
> At this point, I’m not sure what to do next.
> 
> Does anybody have a work around for this?
> 
> Is this something that will be added in a future release?
> 
> Should I file a bug report as recommended by the noVNC developers?
> 
> 
> I appreciate any help I can get with this.
> 
> Thanks,
> 
> Justin England
> 
> 
> 

Hi Justin,

the illumos project made some improvements for vnc on their fork of
bhyve. As far as I can see, they do support the SetPixelFormat command.
This would be a good starting point. See
https://github.com/illumos/illumos-gate/commit/1aa1f41fe10c6220a7fbef328fac1b72a8355a01


-- 
Kind regards,
Corvin