Register Log in

Infinite Loop / The Apple Ecosystem

Mac OS X Public Beta

For the vast majority of Mac users, the September 13, 2000 appearance of the …

Performance: Quartz

The most obvious Quartz-related performance improvement is the higher quality scaling in the Dock. On an idle G4/450, it appears just as fast as the older, lower-quality algorithm. On the G3, it is noticeably slower, but still acceptably and impressively quick, given the computations involved. It almost made me think that Beta was taking advantage of the plentiful RAM on my test systems to cache the numerous scaled bitmaps for the Dock icons.

But Quartz is not magic, and when the CPU cycles start getting tight, the expense of these operations becomes evident. There was very noticeable Dock scaling and animation stutter under heavy load, even on the Cube. At some point, the value of the high quality display must be weighed against the responsiveness of the UI and the functionality being accessed: if I just want to switch to a different application, I don't want to wait as stuttering dock scaling plays out on my screen. Disabling magnification helps the app switching problem, but the shuffle animation that occurs when dragging an item to the dock is just as bad and has no obvious solution. I'd be happier if draw quality was sacrificed dynamically in response to increased load.

The genie effect did not seem any faster or smoother in Beta than it did in DP4. It too suffers from dropped frames when the system load increases.

As in DP4, antialiased text is everywhere. The quality is reasonable (perhaps a bit better than Mac OS 9's algorithm) but there are no obvious system-wide settings to either turn it off or limit its application to fonts above a certain minimum size. The inability to turn off and/or limit this feature hurts the overall responsiveness of the system in many areas, even more so that the often-derided transparency effects. For example, grabbing the Music Player remote window, complete with substantial transparent drop-shadow, and dragging it behind the also-transparent Dock is smooth as silk on the Cube. But open a list-view Finder window with a few hundred items and try scrolling around in it and you'll feel like you've turned back the clock to the days before accelerated video. Opaque scrolling of windows full of text is unacceptably slow on the Cube. This is Apple's second-fastest single CPU Mac. Scrolling a window full of text should be glass-smooth (as it is in Mac OS 9 on the same hardware.)

Speaking of "unacceptably slow," opaque window resizing is agonizingly slow. This has been a problem since the DPx releases, and it hasn't gotten any better. If this can't be solved before release, users are going to be begging for the return of the old "gray outline" resizing behavior from classic Mac OS. Yes, it's really that slow, even on an idle machine.

And no, all this slowdown is not because "video acceleration hasn't been implemented yet" in Beta. As noted in the Q & A article, video acceleration for Apple's bundled ATI graphics cards (present in both the Cube and the G3/400) has been active for some time now. To see it in action in Beta, look no further than the excellent opaque drag performance. Solid windows with transparent shadows move around the screen as smooth as can be on an idle machine. Some stutter creeps in under heavy load, but at least it's starting from a position of strength.

Clearly there's plenty of room left for optimization in the Quartz code. A excerpt buried in the Java release notes from Public Beta supports this:

"while Quartz is very fast at complex rendering, it has not yet been optimized for some basic shapes like diagonal lines. Also, anti-aliasing is currently always on, which besides the obvious performance effect leads to some drawing glitches"

And listed in the "known bugs" section of the same document:

"rendering hints are ignored: Quartz currently always draws in highest-quality mode"

All of this is presented within the context of Beta's Java graphics performance, but it certainly sounds applicable to drawing in general. It's heartening to see that it's obvious to at least some people within Apple that using the highest quality rendering mode is not appropriate in all contexts. I hope that they both work on optimizing Quartz further and reevaluate the rendering quality vs. responsiveness issue in the areas described above. And although providing options to turn every little feature on or off in every possible context is probably overkill (if you want the X Window System, you know where to find it), a few well-placed feature toggles seem appropriate. Even the much lower-demand GUI in Mac OS 9 provides such features. A heavyweight like OS X should certainly do the same.

You may be wondering how AltiVec factors into all this. Short answer: it certainly helps. The G4/450 in the Cube handily outperforms the G3/400 in all screen drawing functions. Granted, there's more on the Cube's side than the CPU: a better video card, a newer motherboard chipset, etc. But certain operations are essentially CPU bound (antialiasing, bicubic interpolated scaling, etc.) and the G4 sure feels a heck of a lot more than "50MHz faster" that the G3/400 during these operations. It's also nice that all apps get this benefit "for free" when they do screen drawing in Mac OS X. And hey, every little bit helps when your fastest CPU is clocked 50% slower than the competition.

Let me reiterate: Quartz is not magic. There are certain fundamental computational limits on operations like antialiasing text. Unless Apple is going to do some ground-breaking research into faster drawing algorithms, Quartz is bounded at the top end by the computational cost of the best rendering algorithms currently known. Perhaps Quartz is still using relatively inefficient algorithms or it's not yet leveraging some basic hardware features of modern video cards. But it's also possible that the cost of, say, antialiasing the contents of a list-view Finder window is such that responsive opaque scrolling and resizing on modern Apple hardware like the G4 Cube is simply not possible. I hope Apple thinks long and hard about the trade-offs made in Beta. I think even the most hardcore GUI eye-candy fiend will admit that a certain minimum level of responsiveness is necessary, no matter how good something may look in screenshots.

Expand full story

You must to comment.

Need to register for a new account?

If you don't have an account yet it's free and easy.