On Wed, 29 Apr 2026, Chad Jablonski wrote:
I've found a case which this patch seems to fix and does not involve
panning (unfortunately I can't give a reproducer as it is with AmigaOS
that isn't free) but I don't understand why and what exactly happens.
Maybe updates are missed when guest updates display by directly writing to
VRAM? But such writes should cause region to become dirty due to
vga_dirty_log_start() called at the end of vga_common_init() which we call
from ati_vga_realize(). Without this patch after a mode change display is
only updated around the mouse where it's explicitely marked dirty (with
guest_hwcursor=on as guest_hwcursor=off is bugged) but with this patch
updates correctly but I don't know if it's just a side effect or actual
fix for something. Maybe it's just the calculation fix and not the off
screen dirty marking part, I haven't try to test it with restricting to
visible screen (maybe I wait for v2 of the patch).
Interesting! I haven't run into a case without panning yet so I'd
definitely be interested to hear if v2 still fixes this or if it behaves
any differently at all.
v2 also fixed this case. I made the changes I suggested to simplify it and
have sent a v3 that still works for me so I hope I did not break it. From
this it now seems to me the difference we missed was the dst_x offset that
I'm not sure how it ever worked without or where we lost that but it does
not matter any more with this patch fixing it so I did not investigate
further.
Regards,
BALATON Zoltan