[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v1] vnc: fix VNC artifacts
From: |
Cameron Esfahani |
Subject: |
Re: [PATCH v1] vnc: fix VNC artifacts |
Date: |
Thu, 16 Jan 2020 23:48:30 -0800 |
Yes. Personally, I'd also take the change to vnc-enc-zrle.c: because
vs->zrle->zlib is reset at the top of the function, using vs->zrle->zlib.offset
in determining zstream->next_out and zstream->avail_out is useless.
Cameron Esfahani
address@hidden
"All that is necessary for the triumph of evil is that good men do nothing."
Edmund Burke
> On Jan 16, 2020, at 11:45 PM, Gerd Hoffmann <address@hidden> wrote:
>
> On Thu, Jan 16, 2020 at 07:50:58PM -0800, Cameron Esfahani wrote:
>> Remove VNC optimization to reencode framebuffer update as raw if it's
>> smaller than the default encoding. QEMU's implementation was naive and
>> didn't account for the ZLIB z_stream mutating with each compression. Just
>> saving and restoring the output buffer offset wasn't sufficient to "rewind"
>> the previous encoding. Considering that ZRLE is never larger than raw and
>> even though ZLIB can occasionally be fractionally larger than raw, the
>> overhead of implementing this optimization correctly isn't worth it.
>
> So just revert de3f7de7f4e257 then ...
>
>> In my investigation, ZRLE always compresses better than ZLIB so
>> prioritize ZRLE over ZLIB, even if the client hints that ZLIB is
>> preferred.
>
> ... and make this a separate patch?
>
> cheers,
> Gerd
>