Re: Cairo & pixman on PPC
cu <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <[email protected]> |
Andrea Canciani wrote: > > I had started a little project to get these things out of pixman cairo. > AFAIK it should work on most supported platforms, but I don't have > access to a ppc box anymore. > Would you be willing to test it on ppc (in the hope that it will some > day be useful to replace the mutex/atomic ifdeffery in cairo/pixman)? > Funny enough, I don't have access to real PPC box either. All my PPC testing is done under Rosetta on an Intel Mac. Then if things break - actual PPC users will usually say something. I found that so far Rosetta testing has been quite close, at least in terms of what will and will not work on a real PPC. I'd be glad to test things under Rosetta, if that helps. > > Can you provide some additional details about these intrinsics on iOS? > Are they provided by gcc or is cairo incorrectly detecting them when > they are not available? > I think they are provided as compiler "function calls", because cairo compiles and links OK with these enabled. However, they clearly do not work in a sense that using any type of concurrent cairo operations (on unrelated surfaces etc) causes almost immediate program crash due to memory corruption or refcount errors. These crashes are solved by switching cairo build configuration to pthreads based locking. > If they are available, do they work? (This might be a compiler bug?) > Probably, in a sense that compiler is not properly "cleaned up" by Apple. But it still may be worth handling it on the Cairo end. > Should we try to detect it automatically? > Is it only missing on ppc or on arm as well? > > Only on PPC as far as I can tell. Cairo 1.10 builds on iOS without these warnings. > PS: sorry for little activity on cairo quartz. I've been doing some > progress (and rebasing broke the build, so I fixed it again). I'm a > couple (maybe 3) commits away from posting a new patchset, so it > should happen "soon". > Things have been working fine so far with your latest patches, thanks! There is only one visible "drawing issue" (essentially draws a line across where there shouldn't be one, probably a clipping artifact) - that's been in Quartz backend since forever. There is also an unrelated issue in pixman, which seems to lose surface type on iOS/ARM - fortunately rarely, but when it does, it's permanent. Surface is treated as 8 bit, even though it is 32 bit (so the entire drawing is compressed into left 1/4 of screen in what looks like an old CGA :) ). The only solution then is to kill and restart the program. That one will probably remain unsolved, as it is virtually impossible to replicate or track down. Just mentioning. -- cairo mailing list [email protected] http://lists.cairographics.org/mailman/listinfo/cairo