On 18/01/2018 15:50, Peter Maydell wrote: > On 18 January 2018 at 14:46, Paolo Bonzini <pbonz...@redhat.com> wrote: >> On 18/01/2018 15:12, Daniel P. Berrange wrote: >>>> In addition to that, do we support a >= 2 GiB framebuffer at all? (Even >>>> with unsigned ints, Coverity would rightly complain about a truncated >>>> 32-bit multiplication being assigned to a 64-bit value). >>> client_width/client_height are values that are initialized from the >>> graphics card frontend config, and thus limited by amount of video >>> RAM QEMU allows. bytes_per_pixel is limited to 8/16/32. >>> >>> So I think we're safe from 2GB overflow in any normal case. >>> >>> That said, VGA RAM size is configurable, so I'm curious what would happen >>> if someone configured an insanely large VGA RAM and asked for a big frame >>> buffer in guest. >>> >>> VNC is protocol limited to uint16 for width/height size, and so is X11 >>> so I imagine some exploding behavour would follow :-) >> >> Indeed, and even 2^16 x 2^16 * 32bpp is already 34 bits. So perhaps we >> should limit VNC to 16384 pixels on each axis (maximum frame buffer size >> 1 GiB). > > Google says you can already get graphics cards that can do 15360x8640, > which is really quite close to that 16384 limit...
Then we can do 32767 * 16384 * 4, but I'm a bit afraid of off-by-ones. Paolo