qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* Display update issue on M1 Macs
@ 2023-01-04 23:24 BALATON Zoltan
  2023-01-13 13:43 ` BALATON Zoltan
  0 siblings, 1 reply; 14+ messages in thread
From: BALATON Zoltan @ 2023-01-04 23:24 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Gerd Hoffmann, Akihiko Odaki, Joelle van Dyne

Hello,

I got reports from several users trying to run AmigaOS4 on sam460ex on 
Apple silicon Macs that they get missing graphics that I can't reproduce 
on x86_64. With help from the users who get the problem we've narrowed it 
down to the following:

It looks like that data written to the sm501's ram in 
qemu/hw/display/sm501.c::sm501_2d_operation() is then not seen from 
sm501_update_display() in the same file. The sm501_2d_operation() function 
is called when the guest accesses the emulated card so it may run in a 
different thread than sm501_update_display() which is called by the ui 
backend but I'm not sure how QEMU calls these. Is device code running in 
iothread and display update in main thread? The problem is also 
independent of the display backend and was reproduced with both -display 
cocoa and -display sdl.

We have confirmed it's not the pixman routines that sm501_2d_operation() 
uses as the same issue is seen also with QEMU 4.x where pixman wasn't used 
and with all versions up to 7.2 so it's also not some bisectable change in 
QEMU. It also happens with --enable-debug so it doesn't seem to be related 
to optimisation either and I don't get it on x86_64 but even x86_64 QEMU 
builds run on Apple M1 with Rosetta 2 show the problem. It also only seems 
to affect graphics written from sm501_2d_operation() which AmigaOS4 uses 
extensively but other OSes don't and just render graphics with the vcpu 
which work without problem also on the M1 Macs that show this problem with 
AmigaOS4. Theoretically this could be some missing syncronisation which is 
something ARM and PPC may need while x86 doesn't but I don't know if this 
is really the reason and if so where and how to fix it). Any idea what may 
cause this and what could be a fix to try?

(Info on how to run it is here:
http://zero.eik.bme.hu/~balaton/qemu/amiga/#amigaos
but AmigaOS4 is not freely distributable so it's a bit hard to reproduce. 
Some Linux X servers that support sm501/sm502 may also use the card's 2d 
engine but I don't know about any live CDs that readily run on sam460ex.)

Thank you,
BALATON Zoltan


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2023-02-04  5:21 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-04 23:24 Display update issue on M1 Macs BALATON Zoltan
2023-01-13 13:43 ` BALATON Zoltan
2023-01-14  2:41   ` Akihiko Odaki
2023-01-14 18:11     ` BALATON Zoltan
2023-01-19 13:10       ` Akihiko Odaki
2023-01-22 23:28         ` BALATON Zoltan
2023-01-28  4:01           ` Akihiko Odaki
2023-01-30 23:58             ` BALATON Zoltan
2023-01-31  7:37               ` Akihiko Odaki
2023-01-31 14:15                 ` BALATON Zoltan
2023-02-02 10:51                   ` BALATON Zoltan
2023-02-03 10:16                     ` Akihiko Odaki
2023-02-03 13:45                       ` BALATON Zoltan
2023-02-04  5:19                         ` Akihiko Odaki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).