Does Apple (or maybe applenut) even understand Quartz Extreme!?

2»

Comments

  • Reply 21 of 31
    jlljll Posts: 2,713member
    [quote]Originally posted by yurin8or:

    <strong>



    huh? What real-time effects will QE allow you to do that Q doesn't? QE is simply about offloading tasks to the graphics card as opposed to the cpu.</strong><hr></blockquote>



    No, QE is all about compositing, and Q can't do the kind of compositing that QE can.



    Faster GUI obtained by offloading to the GPU is just a nice side effect.
  • Reply 22 of 31
    nemnem Posts: 45member
    Since there seem to be so many out there who got the developer release of Jaguar, can't someone just test it on a new and old ibook and then report back if it works or not...



    I'm starting to grow tired of this will work/will not work/will work but not optimally/etc discussion.



    Hard facts, please?
  • Reply 23 of 31
    I'm tired of the predictions too. Hard fact:



    "Quartz Extreme takes advantage of the OpenGL 3D graphics engine to make the entire desktop a fully accelerated OpenGL scene. A supported* video card can then render the drawing of the desktop, just like it would a 3D game. The main CPU chip(s) can then focus on application-specific needs, making the whole system faster and more responsive." -Apple.com's Jaguar description



    Quartz Extreme is defined as an OpenGl implementation of Quartz, nothing more. Open GL cannot do "more kinds of compositing." In fact, Open GL can do only a few, apart from nVidia shading extensions that ATi has not yet adopted. OpenGL merely does the same tasks Quartz used to do very quickly. All Quartz does is draw windows, icons and such to the screen, to files and to the printer. All any Quartz pictures are is part of a dynamically generated PDF file. All Quartz Extreme does is speed up Quartz rendering to the screen. Since the CPU isn't rendering (most of) the screen, the CPU has more time for other things.



    This means breaking windows down into triangles and then displaying them on a flat plane in 3-d space. A modern card can do at least ten million pixels a second, enough to cover the entire screen with one pixel triangles up to ten times a second. Of course, usually a large window is only ten to fifty triangles, and usually one has less than one hundred windows open, so theoretically QE should be able to render at least 200 FPS on a Radeon Mobility under normal circumstances, though the rendering engine will be waiting for information from the CPU on what to render quite often.



    You can guess all you want to about what improvements Jaguar may have that don't have catchy names because they're too technical to be sale points, but Quartz Extreme has a very specific definition. It's just a very small extension to the rendering engine that produces a large performance increase.



    Oh, and here's another fact: Writing the code to do what QE is defined as doing is almost trivial. Any group of competent fourth-year CS students should be able to do it. It's almost certainly being delayed until Jaguar ships because Apple wants several marketing points for this new "major" upgrade to the OS.



    Finally, I've been told by my local Apple store that they have the current demo of Jaguar and that Quartz Extreme is not included. I don't know if that's a fact, but I wouldn't be surprised.



    [ 06-25-2002: Message edited by: AllenChristopher ]</p>
  • Reply 24 of 31
    jlljll Posts: 2,713member
    [quote]Originally posted by AllenChristopher:

    <strong>Oh, and here's another fact: Writing the code to do what QE is defined as doing is almost trivial. Any group of competent fourth-year CS students should be able to do it. It's almost certainly being delayed until Jaguar ships because Apple wants several marketing points for this new "major" upgrade to the OS.</strong><hr></blockquote>



    Sure, and that's why it'll take MS at least two years before they can implement it in Windows.



    [quote]Originally posted by AllenChristopher:

    <strong>Finally, I've been told by my local Apple store that they have the current demo of Jaguar and that Quartz Extreme is not included. I don't know if that's a fact, but I wouldn't be surprised.</strong><hr></blockquote>



    Please take a look at the video where a transperant Terminal window is over a playing DVD.
  • Reply 25 of 31
    synsyn Posts: 329member
    This is all fine and dandy, however what is going to push developers to use all that compositing power?



    I mean, Quartz as it is is fairly revolutionary, it gives a boat load of free rendering and compositing features to the programme, yet few if any use them. Adobe etc. will keep on using their own display engines, and the smaller developers have yet to tap into those features...



    Supposing QGL will indeed provide devs with great new compositing features, what incentive is there to use those features by devs?



    If I'm mistaken, do show me OSX native apps that make use of all the great features Quartz provides right now.



    Don't get me wrong, I *am* excited about Jaguar. However, OSX should have made great new apps come our way, but it hasn't yet... I had great hopes for Services, we have yet to see something extraordinary come out of it... OSX's built-in "translators" type service is rarely used, if ever. I wonder if this isn't going to be yet another great feature that will go unused. I often look at the BeOS, which had only a few very unique features, however they were thoroughly used by most apps...



    [ 06-25-2002: Message edited by: SYN ]</p>
  • Reply 26 of 31
    kickahakickaha Posts: 8,760member
    [quote]Originally posted by AllenChristopher:

    <strong>This means breaking windows down into triangles and then displaying them on a flat plane in 3-d space... &lt;snip&gt; Of course, usually a large window is only ten to fifty triangles.</strong><hr></blockquote>



    Er, try two. Any quadrilateral can be composed to two triangles. With textures being allowed to be any size, instead of just powers of 2, you can get away with just using two, no tesselation needed.
  • Reply 27 of 31
    yurin8oryurin8or Posts: 120member
    [quote]Originally posted by JLL:

    <strong>



    No, QE is all about compositing, and Q can't do the kind of compositing that QE can.



    Faster GUI obtained by offloading to the GPU is just a nice side effect.</strong><hr></blockquote>



    Compositing?!?! WTF!?!? Read AllenChristopher's extract above, and have an enlightening experience.



    [ 06-25-2002: Message edited by: yurin8or ]</p>
  • Reply 28 of 31
    yurin8oryurin8or Posts: 120member
    [quote]Originally posted by JLL:

    <strong>



    quote:

    "Originally posted by AllenChristopher:

    Oh, and here's another fact: Writing the code to do what QE is defined as doing is almost trivial. Any group of competent fourth-year CS students should be able to do it. It's almost certainly being delayed until Jaguar ships because Apple wants several marketing points for this new "major" upgrade to the OS."



    Sure, and that's why it'll take MS at least two years before they can implement it in Windows.



    </strong><hr></blockquote>



    Any app that uses quartz (directly or indirectly), which is every app, will use QE on machines that have the necessary hardware. NO ADDITIONAL CODE NEEDED.



    I have no faith that Microsoft will ever be able to implement something as elegent as quartz... but you're talking about two difference things above. The first point notes the effort required for devleopers to support the new api. The second is the effort required to develop the new api. Two completely difference things.
  • Reply 29 of 31
    [quote]Originally posted by yurin8or:

    <strong>Compositing?!?! WTF!?!? Read AllenChristopher's extract above, and have an enlightening experience.</strong><hr></blockquote>



    yurin8or, as JLL very accurately said, Quartz Extreme (QE) is, quite literally, an implementation of the Quartz Compositor in OpenGL. AllenChristopher's description is flawed.



    [quote]Originally posted by AllenChristopher:

    <strong>I'm tired of the predictions too...



    Quartz Extreme is defined as an OpenGl implementation of Quartz, nothing more.</strong><hr></blockquote>



    This statement is misleading. Quartz Extreme (QE) is an implementation of the Quartz Compositor in OpenGL. Quartz 2D is not affected.



    [quote]<strong>Open GL cannot do "more kinds of compositing." In fact, Open GL can do only a few, apart from nVidia shading extensions that ATi has not yet adopted. OpenGL merely does the same tasks Quartz used to do very quickly.</strong><hr></blockquote>



    To clarify, QE does the same tasks that the Quartz Compositor used to do, but using your graphics hardware, instead of your main processor (ie: in software).



    [quote]<strong>All Quartz does is draw windows, icons and such to the screen, to files and to the printer. All any Quartz pictures are is part of a dynamically generated PDF file.</strong><hr></blockquote>



    This is the main mistake in your statement. What you've described is Quartz 2D. Quartz Extreme deals with the Quartz Compositor, Quartz 2D is not affected. The Quartz Compositor is responsible for mixing content from Quartz 2D (2D Graphics), OpenGL (3D Graphics), and QuickTime (media).



    [quote]<strong>All Quartz Extreme does is speed up Quartz rendering to the screen. Since the CPU isn't rendering (most of) the screen, the CPU has more time for other things.</strong><hr></blockquote>



    There are actually two main reasons why Quartz Extreme will free up the CPU. The first reason, which you've alluded to, is the CPU no longer has to do the job of compositing everything on screen. This task is handed off to the GPU through the use of OpenGL.



    The second reason, which probably requires a couple years of Computer Science to understand, deals with how data actually gets to the GPU in the first place, in order for it to do the compositing.



    To describe this, let's assume that we have something drawn with Quartz 2D in memory. It could be a bitmapped picture, some bezier curves, text, anything. The usual way to get this data from memory to some device is to use "Programmed I/O". This means that you're using the CPU to read some the data out of RAM, into a CPU register, then that is pushed to the destination device. Obviously, this takes time. And, if you're a really bad programmer, you can easily eat up virtually all your processor time doing nothing but pushing data out from your fast processor to a slow destination device.



    The best example of inefficient programming of this kind can be found in the ZIP drive drivers for Classic Mac OS. Note that I haven't used a ZIP drive in a very long time, so this applies to my experiences with an internal ZIP-100 drive in a Blue & White G3. As some will remember, when you're reading or writing data to a ZIP disk, the entire system literally crawls to a stuttering mess. Even the mouse cursor would "jump" when you moved it. All this from writing a measly 1 MB/sec onto a disk! So, what's causing this?



    The very basic idea behind the problem is this: Your processor is capable of pushing data a lot faster than the ZIP drive is capable of accepting. So, it pushes out a small packet of data (say 256KB), then sits around waiting for the ZIP drive to say "Hey, I'm ready for another packet of data!". In the case of the ZIP drivers, I suspect that it isn't giving up the processor during the "wait" time. And, since Classic Mac OS is co-operative multitasking, if the driver sits around doing nothing while it waits and doesn't give up the time, then the whole system waits.



    Anyways, back to Quartz Extreme. We've just explored one way that the CPU can "push" data from RAM to some destination device, such as the GPU, which is known as "Programmed I/O". However, there's actually a dedicated piece of hardware on modern computers (well, virtually every computer since the late '80s) known as the DMA Controller. DMA stands for "Direct Memory Access". Now, you're probably thinking, "I've heard of DMA!". We've seen references such as "Ultra DMA Hard Drives", and AGP video cards supporting DMA. So, how does DMA help us?



    A very basic capability of the DMA controller is that you can program it to literally arbitrate the process of transferring data from a source to a destination. So, instead of using your processor to push data from one place to another, you can basically tell the DMA controller "Take this piece of memory which contains the data that Quartz 2D drew, and transfer it to the memory on the graphics card." So now, with the DMA controller handling the transfer, your CPU is free to do something else.



    So, in summary, the "speed up" that Quartz Extreme will allow is due to two primary reasons. First, the CPU is freed from the task of compositing Quartz 2D, OpenGL and QuickTime content. Second, the CPU is also freed from the task of pushing data generated by Quartz 2D, OpenGL and QuickTime to the graphics card. Together, these are the primary reasons why we will be getting a graphics performance boost in Mac OS X (Jaguar).



    [quote]<strong>This means breaking windows down into triangles and then displaying them on a flat plane in 3-d space. A modern card can do at least ten million pixels a second, enough to cover the entire screen with one pixel triangles up to ten times a second. Of course, usually a large window is only ten to fifty triangles, and usually one has less than one hundred windows open, so theoretically QE should be able to render at least 200 FPS on a Radeon Mobility under normal circumstances, though the rendering engine will be waiting for information from the CPU on what to render quite often.</strong><hr></blockquote>



    You're completely wrong on these points. Quartz Extreme does not break windows down into triangles. Also, I have no clue where you're getting the idea that QE should be capable of rendering 200 FPS on a Radeon Mobility from. Even if that were true, screen rendering is locked to the refresh rate of your display. That's why windows don't break up when you drag them around.



    [quote]<strong>Oh, and here's another fact: Writing the code to do what QE is defined as doing is almost trivial. Any group of competent fourth-year CS students should be able to do it. It's almost certainly being delayed until Jaguar ships because Apple wants several marketing points for this new "major" upgrade to the OS.</strong><hr></blockquote>



    While the concept of Quartz Extreme is quite simple from a broad point of view, the details get complex very quickly. QE is most certainly not being "delayed" due to marketing reasons.



    [quote]<strong>Finally, I've been told by my local Apple store that they have the current demo of Jaguar and that Quartz Extreme is not included. I don't know if that's a fact, but I wouldn't be surprised.</strong><hr></blockquote>



    As someone else suggested, try playing a DVD with a transparent Terminal window over it. If QE is enabled, then the DVD will be visible through the Terminal window.



    Since we're talking about transparent Terminal windows over DVDs, I'll take the opportunity to do a brief explanation of why this wasn't feasible (it's possible, but expensive) using the existing Quartz Compositor, and why it's deceptively simple in Quartz Extreme.



    Actually, I'll write about this tomorrow. Gotta get some sleep first.



    (edit: spelling errors)



    [ 06-26-2002: Message edited by: King Chung Huang ]</p>
  • Reply 30 of 31
    junkyard dawgjunkyard dawg Posts: 2,801member
    Very interesting thread.



    It's very cool to see Apple leveraging the processing power of these powerful GPUs that are sitting around doing nothing most of the time.



    My question is, how much MORE can Apple offload to the GPU? Is it limited to compositing, or can other tasks be offloaded?
  • Reply 31 of 31
    senjazsenjaz Posts: 26member
    [quote]Originally posted by King Chung Huang:

    <strong>

    Since we're talking about transparent Terminal windows over DVDs, I'll take the opportunity to do a brief explanation of why this wasn't feasible (it's possible, but expensive) using the existing Quartz Compositor, and why it's deceptively simple in Quartz Extreme.



    Actually, I'll write about this tomorrow. Gotta get some sleep first.

    </strong><hr></blockquote>



    Isn't this because DVD video is already handled by DMA and send directly to the GPU? Since the current Quartz compositor is implemented to use programmed IO it never gets to see the DVD video data.



    For DVD video to play through a transparent Terminal window using the current Quartz compositor you would need to handle the DVD video in the same manner which would slow everything down as the processor handles the DVD video data as well.



    Since Quartz Extreme does the compositing on the GPU and all other graphic data is passed using by DMA in the same way that DVD video already is, compositing all of it together is fairly trivial.
Sign In or Register to comment.