Feature #14495


bhyve VNC server should support alternate pixel formats

Added by Andy Fiddaman 8 months ago. Updated 5 months ago.

Start date:
Due date:
% Done:


Estimated time:
Gerrit CR:
External Bug:


The popular novnc ( client switches to a different pixel format after connection in order to reduce load on the client which is running in a browser.
The bhyve VNC server ignores this and just continues to use its default format, resulting in colours being shifted (quite a pleasing affect - see below - but not what people generally want)


clipboard-202202101409-y1ys3.png (1.38 MB) clipboard-202202101409-y1ys3.png Andy Fiddaman, 2022-02-10 02:09 PM
Actions #1

Updated by Electric Monk 7 months ago

  • Gerrit CR set to 2030
Actions #2

Updated by Andy Fiddaman 5 months ago

This change has been in OmniOS bloody for two months now, being exercised with a variety of VMs and VNC clients. I have personally tested the following clients
(the protocol version is shown, along with whether the client opted for raw or zlib compression and whether it supported extended keyboard events). I predominantly tested these with a Windows VM.

  • TightVNC RFB 003.008 raw
  • UltraVNC RFB 003.008 zlib
  • TigerVNC RFB 003.008 raw QEMU ext kevent
  • noVNC RFB 003.008 raw RGBx pixmap QEMU ext kevent
  • noVNC 1.2 RFB 003.008 raw QEMU ext kevent
  • Macos SS RFB 003.003 zlib
  • Android VNCViewer RFB 003.008 zlib
Actions #3

Updated by Andy Fiddaman 5 months ago

Mike Zeller has also tested this as part of reviewing and said:

I built and tested these bits by booting into a gate onu. I confirmed that I am able to connect to VNC with/without a password and that the wait feature works. Also confirmed that I was able to connect from the MacOS "Screen Sharing" app.

Actions #4

Updated by Electric Monk 5 months ago

  • Status changed from In Progress to Closed
  • % Done changed from 0 to 100

git commit 1aa1f41fe10c6220a7fbef328fac1b72a8355a01

commit  1aa1f41fe10c6220a7fbef328fac1b72a8355a01
Author: Andy Fiddaman <>
Date:   2022-04-23T11:02:39.000Z

    14495 bhyve VNC server should support alternate pixel formats
    14494 bhyve VNC server could support multiple connections
    14505 libumem's umem_update thread could be named
    14506 libidspace does not expose id_allocff()
    14640 bhyve VNC authentication fails with openssl3
    Reviewed by: Jason King <>
    Reviewed by: Michael Zeller <>
    Approved by: Robert Mustacchi <>


Also available in: Atom PDF