QE rendering

pbpb
Posted:
in macOS edited January 2014
In thread <a href="http://forums.macnn.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=46;t=007398,"; target="_blank">http://forums.macnn.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=46;t=007398,</a>; moki gives some details about quartz extreme, explaining the benefits for the system. Could someone provide a more detailed description of what exactly and how is getting acceleration? If I understand well what I am reading, transformations (linear?) on already rendered (by the CPU?) windows is what we get for free in a QE enabled environment. Are there other functions of the windowing system offloaded to the GPU?

Comments

  • Reply 1 of 15
    buonrottobuonrotto Posts: 6,368member
    King Chung Huang gives a pretty good account of what's going on too in <a href="http://forums.appleinsider.com/cgi-bin/ultimatebb.cgi?ubb=get_topic&f=5&t=000692&p=7"; target="_blank">this old thread</a>.
  • Reply 2 of 15
    pbpb Posts: 4,255member
    [quote]Originally posted by BuonRotto:

    <strong>King Chung Huang gives a pretty good account of what's going on too in <a href="http://forums.appleinsider.com/cgi-bin/ultimatebb.cgi?ubb=get_topic&f=5&t=000692&p=7"; target="_blank">this old thread</a>.</strong><hr></blockquote>



    This is a very good reading, however it describes rather the keynote demo. Perhaps I am asking more than one can provide through this forum, as King Chung Huang indicates at the end of his post. Thanks anyway for the reply.
  • Reply 3 of 15
    Although I understand it rather well, I'm not the foremost authority on QE; so, I'll keep this brief. Besides, I'm just reiterating the same things King has said (though he seems a much more eloquent and detailed writer about it ).



    As moki and King have pointed out, the CPU still handles all the drawing for Quartz. Quartz Extreme does not cover all of Quartz 2D, but rather the Quartz Compositor. That's where a major speed hit has been: in the layering system. And that's where QE comes in hand. It uses the graphics card to composite all the layers together into what you see. Transparency effects and drop shadows have an enormous boost from this.



    [ 07-11-2002: Message edited by: starfleetX ]</p>
  • Reply 4 of 15
    pbpb Posts: 4,255member
    [quote]Originally posted by starfleetX:

    <strong>As moki and King have pointed out, the CPU still handles all the drawing for Quartz. Quartz Extreme does not cover all of Quartz 2D, but rather the Quartz Compositor. That's where a major speed hit has been: in the layering system. And that's where QE comes in hand. It uses the graphics card to composite all the layers together into what you see. Transparency effects and drop shadows have an enormous boost from this.



    [ 07-11-2002: Message edited by: starfleetX ]</strong><hr></blockquote>



    In an article on MacOS X in arstechnica, John Siracusa says that quartz is a third generation display layer, since it does not use shape primitives (second generation do), but it uses vector information for the shapes in the 2d euclidean space. Furthermore, quartz is apparently the natural evolution inside Apple of the Display Postscript system used by NeXTSTEP, which is an early third generation display layer. So, it seems that the quartz designers already had an experience on a similar (or analogous) display system. It is then natural to ask the question: is it so difficult technically to develop a hardware solution for quartz acceleration, co-existing with the CPU? I don't mean the OpenGL implementation of the quartz compositor, but a "chip" (not necessarily a graphics card)specially designed to execute all of the quartz instructions, or at least the quartz 2d instructions. Perhaps obtaining adequate performance this way could raise much the cost, however if it is restricted only to quartz 2d (with QE there is no need to go beyond) the cost would not be an issue, but I don't really know.



    [ 07-12-2002: Message edited by: PB ]



    [ 07-12-2002: Message edited by: PB ]</p>
  • Reply 5 of 15
    Sure, you can have a second chip do all the other Quartz calculations. Just buy a DP tower. You need a generalized chip to do the calculations that aren't compositing, because a program can draw pretty much anything.
  • Reply 6 of 15
    mokimoki Posts: 551member
    Here's what I wrote that in forum, in case you missed it (that link to it above doesn't seem to work):



    .....



    Under the current implementation of Quartz Extreme, the actual drawing of things to a window, such as text, graphics, UI widgets, etc. is not accelerated. What *is* accelerated is the the compositing of windows onto the screen in layers, after their contents have been rendered by Quartz (and thus the CPU did the work, not your graphics card).



    Ideally, you'd want everything to be rendered by the graphics card, but unfortunately, that isn't entirely practical. Things like the special algorithms Quartz uses for font smoothing and vector graphics really can't be accelerated well, even with more modern programmable video cards. It would take a very custom graphics card to be able to offload *all* of Quartz onto it.



    You also don't really want to be doing this piecemeal; if you can't accelerate all of Quartz via a video card, you'll have to shuttle fairly large chunks of data to/from the video card so that the CPU can render what little bits of it (say, some text) that the video card can't handle. This takes time and bus bandwidth.

    In an ideal world, I suppose we'd have a super-customizable video card onto which Quartz can be entirely "uploaded" to the video card and executed from there. All that would be sent to the video card would be simple Quartz drawing commands, and the video card would do all of the bit pushing and compositing right there, leaving the CPU free.



    I have no idea if this will ever happen or not, and I'm sure I'm simplifying some of the technical issues -- but that's it in a nutshell. Accelerating Quartz isn't easy -- Quartz Extreme is one step in the direction of offloading the graphics rendering to the video card.



    So what do you get? Well, once a window is already rendered (and remember, under OS X, menus, the dock, even icons on your desktop are all technically windows), it can be drawn in any position on the screen, at any rotation, at an scale, at any transparency, essentially for free. A bouncing dock icon, for instance, shouldn't chew up nearly as much CPU as it does now, and window transparencies and shadows should all be rendered "for free".



    What don't you get? The actual drawning of the contents of a window (the text, graphics, interface widgets, etc.) are still drawn by the CPU.
  • Reply 7 of 15
    doughboydoughboy Posts: 47member
    Moki said: [quote]It would take a very custom graphics card to be able to offload *all* of Quartz onto it.<hr></blockquote>Isn't there supposed to be a major announcement from nVidia (in August maybe? Can't find a link) regarding the next generation of chipsets for the Mac. I wonder if these chipsets will be customized to improve QE.



    [ 07-12-2002: Message edited by: DoughBoy ]</p>
  • Reply 8 of 15
    I posted some additional details about Quartz Extreme in the thread, "<a href="http://forums.appleinsider.com/cgi-bin/ultimatebb.cgi?ubb=get_topic&f=5&t=000892"; target="_blank">Does Apple (or maybe applenut) even understand Quartz Extreme?</a>". There, I tried to explain the two main reasons Quartz Extreme will "speed things up".
  • Reply 9 of 15
    apap Posts: 29member
    Has anyone with recent builds of Jaguar tried the effect of QE. How is the realworld performance boost? Do you even notice it?



    Does it afect a thing as the color picker? Its extremely slow in X compared to OS 9.



    ap
  • Reply 10 of 15
    [quote]Originally posted by ap:

    <strong>Do you even notice it?</strong><hr></blockquote> No, but if you think about it, you don't *want* to notice something like this. Let's put it this way: you don't notice that the UI is slow nearly as much as you would in Puma.



    Clear as mud now?

    [quote]<strong>Does it afect a thing as the color picker? Its extremely slow in X compared to OS 9.</strong><hr></blockquote>Which picker? The cocoa or carbon one? Neither has been slow for me in X. (BTW, there is a single, unified picker used in Jag-wire.)
  • Reply 11 of 15
    apap Posts: 29member
    I was thinking about the colorpicker in photoshop... When im using photoshop on X, it really makes me feel that the system is extremely slow, and far from ready to use instead of os9.



    ap
  • Reply 12 of 15
    hobbeshobbes Posts: 1,252member
    [quote]Originally posted by starfleetX:

    <strong>Which picker? The cocoa or carbon one? Neither has been slow for me in X. (BTW, there is a single, unified picker used in Jag-wire.)</strong><hr></blockquote>



    Hey Starfleet, could we see a picture of that? (Unless it's exactly the same as the current Cocoa one.)



    Thanks...
  • Reply 13 of 15
    TextEdit's color picker is on the left. GraphicConverter's is on the right. GC's is modal probably due to legacy code. I suspect that will change in the near future.



    <a href="http://brad.project-think.com/images/Jag-unifiedColorPicker.png"; target="_blank"></a>

    Click for a larger image.



    [ 07-18-2002: Message edited by: starfleetX ]</p>
  • Reply 14 of 15
    hobbeshobbes Posts: 1,252member
    Thanks...



    I just checked out Jaguar at the new Apple Store in Soho and observed the same thing.



    Sure is nice on the 17" iMac.
  • Reply 15 of 15
    eddieeddie Posts: 9member
    Apple's new Jaguar: Quartz Extreme page explains it all:

    "Here?s how it works. Quartz uses the integrated OpenGL technology to convert each window into a texture, then sends it to the graphics card to render on screen. The graphics processor focuses on what it does best ? graphics ? freeing the Power PC chip to do more operations in the same amount of time. Everything is zippier."



    <a href="http://www.apple.com/macosx/jaguar/quartzextreme.html"; target="_blank">Quartz Extreme</a>
Sign In or Register to comment.