Aqua help in NVidia GeForce 4

Posted:
in Future Apple Hardware edited January 2014
The GeForce 4 supports 2D transparency effects (alpha channel) in 2D. If the 2D GPU is a programmable as the 3D GPU, this could mean substantial help for aqua compositing.



Check the Window Effects (for Windows) slide in the following URL.



<a href="http://www.xp-erience.org/nviewg4.htm"; target="_blank">http://www.xp-erience.org/nviewg4.htm</a>;
«13

Comments

  • Reply 1 of 50
    Maybe. I still don't think Quatz's (it's quartz your talking about here not Aqua) problem is the rendering of the vector info. I just don't think there's that much vector rendering going on to slow it down.



    Basically what you need is a GPU that can blast out PostScript commands. Maybe printers have some kind of hardware solution?
  • Reply 2 of 50
    *l++*l++ Posts: 129member
    Actually the two major problems are antialiasing (both text and bi-cubic interpolation of images) and alpha channel compositing (with shadows, etc..)



    I have also noticed what you are talking about, at least when drawing with NSBezierPath in Quartz it is very advantagous to restrict the number of commands to the minimal necessary to redraw the portion of the view that needs refreshing ([NSView drawInRect:]. But I don't see why complex polygon meshes could be rendered fast by the GPU and not vector info.
  • Reply 3 of 50
    mokimoki Posts: 551member
    I think it is highly likely that you'll see *some* form of hardware acceleration of Aqua in the future, however the rub here is that it doesn't do much to help on older hardware (which is where the speed is needed most).
  • Reply 4 of 50
    kidredkidred Posts: 2,402member
    So then will this card do well in 2D work like photoshop? As compared to ATI's 8500?
  • Reply 4 of 50
    I'd like to see some bench marks or something to figure out what's going on in Quartz. Considering most things on the screen are not a fancy path at all I can't see why the rendering is a major factor.



    Look at Java. That's still very slow in OS X. Is that related to the slowness of Quartz? I can't see why or how.



    I get the feeling that there's some kind of fundamental slowness in OS X that can't be fixed by a better driver or the right kind of graphics card. Something is holding this OS back.
  • Reply 6 of 50
    [quote]Originally posted by Scott H.:

    <strong>

    I get the feeling that there's some kind of fundamental slowness in OS X that can't be fixed by a better driver or the right kind of graphics card. Something is holding this OS back.</strong><hr></blockquote>



    It's called a brain dead idiot with a mouse.
  • Reply 7 of 50
    I don't know/remember the details but basically Quartz requires calculations that are not hardware accelerated. Mostly transparency things I think, I think everything in OS has some level of transparency that requires computation, even if its 0% transparent. Its been pointed out that when the original MacOS came out there were a lot of graphics that weren't accelerated. Eventually things like drawing the dotted outline for window resizing became accelerated, but no one previously saw the need for such hardware effects and no one did it.



    Pure speculation, but perhaps the GF4 was what some people said were in test machines that had much faster Quartz graphics. Pure speculation, but I see it as not impossible considering the cozy relationship that nVidia and Apple seem to have these days.
  • Reply 8 of 50
    [quote]I think it is highly likely that you'll see *some* form of hardware acceleration of Aqua in the future, however the rub here is that it doesn't do much to help on older hardware (which is where the speed is needed most).

    <hr></blockquote>



    At least this would help Apple sell new systems, and OS X would fly for anyone converting from Wintel platform.
  • Reply 9 of 50
    [quote]Originally posted by Nostradamus:

    <strong>



    It's called a brain dead idiot with a mouse.</strong><hr></blockquote>



    By that you mean me?
  • Reply 10 of 50
    [quote]Originally posted by Scott H.:

    By that you mean me? <hr></blockquote>I can smell a fight brewing, so lets keep the gloves down and all live in peace. <img src="graemlins/smokin.gif" border="0" alt="[Chilling]" />
  • Reply 11 of 50
    Well I didn't start this one that's for sure. OS X is slow and some people can't stand to hear it. Kill the messenger.
  • Reply 12 of 50
    xypexype Posts: 672member
    [quote]Originally posted by KidRed:

    <strong>So then will this card do well in 2D work like photoshop? As compared to ATI's 8500?</strong><hr></blockquote>

    There are no cards that would accelerate work in photoshop. Buy more ram. Cards can at best help you redraw the screen faster, but photoshop relies on calculations made by the CPU and since that calculations is quite simple most of the time the major bottleneck is the amount of ram (if you work on big images or 100something layers..).
  • Reply 13 of 50
    mokimoki Posts: 551member
    [quote]Originally posted by Scott H.:

    <strong>I get the feeling that there's some kind of fundamental slowness in OS X that can't be fixed by a better driver or the right kind of graphics card. Something is holding this OS back.</strong><hr></blockquote>



    You're right to an extent, but it isn't any one thing. There isn't any one huge bottleneck in OS X, but there are little inefficiencies chained together that in the end add up.



    However, it is a bit more than that -- sure, now that the OS is fairly feature-complete (please, no religious wars about what people think is still lacking), some focus can be spent on profiling and optimizing it further.



    However, you have to understand that some parts of OS X were architected in a very forward-thinking way. The much-maligned Quartz is actually extremely well designed, but it is somewhat ahead of its time. There is a difference between inefficiencies and cognative design choices.



    Take Quartz -- much of it is not hardware accelerated, and this is noticable to the user, because of the interactive nature of modern GUIs. This will certainly change once the hardware catches up to Quartz's fairly forward-thinking design.



    This, of course, is little comfort to folks who use older machines -- but Apple was not crafting an OS for the past, but rather the future. You'll see some pretty hot stuff soon, I wager.



    I also hope that Apple will devote some resources to tracking down inefficiencies in the OS, and giving their profiling team the power to hold the particular group who wrote the code responsible.



    OS X is actually a fairly remarkable patchwork of technologies. The seams that hold it all together account for a good bit of redundancy and inefficiency -- and I do hope that will be addressed. If they can't get the MHz up, they can at least make the OS itself more efficient
  • Reply 14 of 50
    paulpaul Posts: 5,278member
    [quote]Originally posted by Scott H.:

    <strong>



    By that you mean me?</strong><hr></blockquote>



    I think he just meant the user in general.. IE the computer waits for us more often then we wait for the computer...
  • Reply 15 of 50
    tarbashtarbash Posts: 278member
    OS X = slow basically depends on the machine you're running it on. On my iBook/500, yeah, it could be faster, but on my TiBook/500 with 512 MB RAM and on my friends 867 tower OS X flies.



  • Reply 16 of 50
    mokimoki Posts: 551member
    [quote]Originally posted by The Swan:

    <strong>I don't know/remember the details but basically Quartz requires calculations that are not hardware accelerated. Mostly transparency things I think, I think everything in OS has some level of transparency that requires computation, even if its 0% transparent. Its been pointed out that when the original MacOS came out there were a lot of graphics that weren't accelerated. Eventually things like drawing the dotted outline for window resizing became accelerated, but no one previously saw the need for such hardware effects and no one did it.</strong><hr></blockquote>



    That's semi-true. I've done quite a bit of spelunking into the nether-regions of the window server, and here's what I gathered. Keep in mind that some of this may be incomplete.



    The window server is a light-weight window server -- it just manages rectangles on the screen, ordering, and some other basic things. Quartz does the compositing and drawing.



    Each window is a rectangle, and while it is true that each window has a level of transparency, and the renderer is more of a "mixer" than a traditional drawing model, it does have some optimizations. For instance, each window can be marked as being entirely opaque, in which case everything behind it can be considered obscured, so it doesn't need to calculate any deeper for the pixels that are obscured by it.



    You can see this optimization fairly plainly by setting your Terminal window to be partially transparent -- everything except window dragging (which is hardware optimized) will be somewhat slower. There is a bit of a rub, however.



    All of the widgets you see "around" windows such as the shadows and title bar are not really part of the window proper, but rather are "attached" to it -- and they all *do* have a level of transparency associated with them. So even a fully opaque window (as is the case with most windows) still has transparent sub-parts such as the title bar, the shadows, etc. So while the contents of opaque windows are optimized for speed, every window does have some transparency to it in the form of these "attachments"



    Being able to do this transparent rendering via hardware would indeed make things feel a good bit speedier -- but keep in mind that we're talking about a fairly terrific amount of memory if all of this were to be buffered on a video card (where it would need to be for the drawing to be efficient). A single 1024x768 window in 32 bit color needs about 3mb of RAM (that's assmuing the title bar, shadows, and other "attachments" are encompassed in the 1024x768 size).



    Then take a look at how many windows are on your screen, and you get an idea of how much RAM all of your windows would take up on your video card. Right now all of this is buffered in main RAM, and for it to be hardware accelerated, it needs to be shuttled to the video card over a relatively slow bus, so the hardware can work on it locally. Window buffer compression can radically reduce the memory footprint needed for each window, but the video card would need to grok the compression and be able to handle it for such a technique to work in terms of storing the window buffers in your card's VRAM.



    Either way, we're talking about a good chunk of memory, and a very flexible video card to be able to integrate well with the way Quartz works. In order for the video hardware to work in accelerating Quartz, it would somehow need fast access to every single window's buffer, because with transparencies, it can't know ahead of time which window buffers it will need to access to do all of the drawing.



    Make no mistake, this is a very cool windowing system -- it just isn't trivial to make it work well with traditional video cards. Perhaps the GeForce 4 will change that -- I don't know enough about it to say.



    It would seem fairly obvious, though, that this is an issue Apple will attempt to address via hardware acceleration in the future.
  • Reply 17 of 50
    [old-timers-alert!] Well, I can remember that NextStep for Intel 4.2 was running quite nicely on my 486/66 Mhz :eek: , even with DisplayPostscript., which was a major performance hog in these days, too.



    But I am rather pleased with the speed gains of 10.1.x, so what is so slow about Mac OS X, especially without the Blue Box running? The only two things which are annoying to me is the poor multithreading of IE (ok, one can always use OmniWeb) and in the Finder. They still have to do work here.



    Apple probably should hire some game dev buffs from Rare (the über-development house for N64 and GameCube) to add graphical candies without hogging down the whole system or relying on graphic card acceleration.



    I still suspect that there is a lot of room to improve on the graphic card drivers, though.



    All in all - even on my old B&W G3 300 Mac OS X is very usable?



    -k



    ps: can't wait to buy the new G5
  • Reply 18 of 50
    mokimoki Posts: 551member
    One other thing I should mention -- you have a lot more windows on your screen under Mac OS X than you think you do. For instance, each icon in the dock is actually a 128x128 pixel window, located at 0,0 on the screen.



    The window server has the built-in capability to do matrix transformations on windows before drawing them, which is exactly what happens to these dock icon windows: they are scaled and moved into place on the fly.



    ob speed, another issue with Mac OS X stems from the design of Quartz: each window is buffered. Here's what that means. Under Mac OS 8/9, when you draw something to your window, it is draw right onto the screen. You'll notice that when you move a window, you can "see" the stuff behind it redraw -- that's because what is actually in the window isn't saved anywhere, and thus must be redrawn.



    Under Mac OS X, when you draw the same thing to your window, it doesn't appear on the screen, but rather it is added to the window's buffer, which is then drawn to the screen a the window server's leisure (or when you application explicitly tells it to).



    This allows for some very cool stuff, like flick-free window drawing, but it also means that everything you draw must effectively be drawn twice: once to the window's buffer, and then again to the screen.



    This added layer of drawing can obviously impact the speed of what is drawn to the screen, and thus, the perceived speed of it all.



    If it is starting to sound like Quartz's architecture is a liability, that is true to an extent -- but only because of Quartz's forward-thinking design. They made a number of design choices that are technically very cool, but are very demmanding in terms of memory usage and what would be required from a video card to hardware accelerate it.



    There's no way Apple will not move some of Quartz's functionality into hardware at some point -- the question is when and how.



    [ 01-28-2002: Message edited by: moki ]</p>
  • Reply 19 of 50
    xypexype Posts: 672member
    Actually Aqua could be accelerated very easily if done trought OpenGL and all computers with a gxf card as good or better than the ATI rage would do quite well.
  • Reply 20 of 50
    mokimoki Posts: 551member
    [quote]Originally posted by xype:

    <strong>Actually Aqua could be accelerated very easily if done trought OpenGL and all computers with a gxf card as good or better than the ATI rage would do quite well.</strong><hr></blockquote>



    Unfortunately, that's not true. When your average window chews up 3mb of RAM, and your average video card comes with 32mb of VRAM, you're talking about being able to have exactly 11 windows on screen at once before it implodes (and this is ignoring overhead such as the VRAM used up by the actual screen pixels, and other such things).



    If it were really as simple as "using OpenGL to do it", trust me, Apple would have done it already.
Sign In or Register to comment.