2007/10/3, Daniel P. Berrange <[EMAIL PROTECTED]>:
>
>
> The memset calls in that patch are bogus & not correctly fixing the buffer
> update problem. You're merely setting the 'old data' to have pixel value
> 42 - if the guest OS framebuffer happens to also have aras with pixel
> value
> of 42 too, the frame buffer will still not correctly update. The root
> problem is overly-aggressive update minimization logic in
> vnc_update_client.
> This is in turn flawed beause the dirty_row aray is trying to encode two
> separate concepts - areas which are dirty, and areas which need to be
> sent to the client. The latter are a superset of the former, but the code
> in vnc_update_client minimizes based on dirtiness, so updates will get
> missed out. Setting the old data to 42 merely changes which areas will get
> missed updates.


Agreed. I just used the same hack that is scattered around several other
places to make a patch quickly.


The QEMU code in Xen has added a update_row field, separate from the
> dirty_row
> field. Thus after a resize it can update the entire framebuffer,
> regardless
> of whether QEMU's copy of the framebuffer is dirty wrt to the guest copy.


I think that VNC server needs a deep rework, as several qemu related
projects have done, but meanwhile correcting bugs with small non-intrusive
patches may be the way to go.

Edu.

Reply via email to