PDA

View Full Version : for the mac folks...


SamuraiCatJB
03-15-2005, 11:09 AM
http://www.pangeasoft.net/pano/plugin/downloads.html

a web-browser extension to make Quicktime VR panorama browsing OpenGL accelerated. Quicktime itself uses software rendering, fast by CPU standards, but still slow for large panoramas. This uses OpenGL to speed it up even more. :)

JackAxe
03-15-2005, 01:57 PM
Cool.

I'm a bit confused about everything though, not what this does, but about OGL and its role in QT.

I will ramble my thoughts:

Tiger finally bridges the gap between Quicktime and the GPU allowing for real time video effects. (AEPro allows me to do this.) But..... I know that for years QT has always been accellerated by the video card. Since the later OS8 days if I recall correctly. For example my old ATI cards always boasted it as a feature and I can play a QT movie any size, move it around and even minimize it with the genie effect onto the Doc without it skipping a beat. It plays in transistion and while a little icon. This is the same for my G5 and my PB.

So what type of hardware acceleration does QT use if not OGL? Anythoughts or did I just sputter out a whole bunch of nothing? :)

<]=)

SamuraiCatJB
03-15-2005, 02:15 PM
okay.... first off you have multiple capabilities of both QT and Graphics cards in general.

Stream video: many, many, many improvements over the years, including decompresson on the card, other tight memory objects for specific cards and specialized compression commands increase throughput and/or performance in general. This is the primary use of QT, playing videos. Similarly you will see option in DVD for hardware acceleration. But this is video only.

QT panorama... stripe an image on a cylinder and spin around a room for full 360 panorama view of locations. This has been accelerated by various memory throughput and packing objects, but this is a software only type algorithm, generate an image based on user location in the 360 panorama and send it down. Opengl allows you send the entire image to the card, store it as a texture, generate the cylinder, texture it, and spin the viewer in 3D.... You just went from 10fps to 200fps.

JackAxe
03-15-2005, 05:12 PM
OK, so QT VR has never been accelerated, that would make sense because if it's 3D part. I know about the whole tube thing. :D Never had to make one, but had to figure it out at me last job.


But my confusion is with QT hardware acceleration in general. QT has always had it, so why is Tiger just now connecting it to OGL?

I was thinking that maybe, just like the first Quartz which still relied on the CPU for some aspects. Tiger's use of QT is more like Quartz Extreme which offloads everything to the GPU.

<]=)

OcellNuri
03-15-2005, 05:32 PM
I was about to load that plugin up but read a post at versiontracker that said the image quality was reduced. Any personal experience regarding this?

SamuraiCatJB
03-15-2005, 06:02 PM
OK, so QT VR has never been accelerated, that would make sense because if it's 3D part. I know about the whole tube thing. :D Never had to make one, but had to figure it out at me last job.


But my confusion is with QT hardware acceleration in general. QT has always had it, so why is Tiger just now connecting it to OGL?

I was thinking that maybe, just like the first Quartz which still relied on the CPU for some aspects. Tiger's use of QT is more like Quartz Extreme which offloads everything to the GPU.

<]=)

I will talk a little more from the house, but really QT acceleration has been minimal. Basically you are talking two and only two forms of speed up. Data packing, and decompress on GPU. Although those are significant improvements and save a LOT of time (90% or more), you are still talking only increasing two things.

Acceleration of tiger says instead of drawing a window with a bar this wide, with shading from blue to white left to right, diagnal blending, 3D effect border with a shadow, all done in software, then sent to the GPU as multiple raster images and comands to the 2D portion of the GPU. Now you are talking about extending that, rather than building an image for the 3D effect and shadow box, blending effects, etc then sendign that image to the GPU, you are going to send the commands only and have the GPU produce the border, x wide, shaded with 3D releaf, shadow box below, etc. :) by sending the commands to a GPU that handles the data faster, you reduce the overhead on the AGP/PCIe bus to the card AND the GPU is specially designed to do images faster anyhow, so even a brute force build the image on the GPU would be twice as fast as the CPU. :)

SamuraiCatJB
03-15-2005, 06:04 PM
I was about to load that plugin up but read a post at versiontracker that said the image quality was reduced. Any personal experience regarding this?

then they did the plug-in wrong.... I will have to check out more from the house...

I only read a little and passed it on for the mac folks. But I do this all the time and handle VR like images on the massive scale. I can point them in the right direction if need be. Even routines in OpenSceneGraph which means they would be instantly compatible with other OSes. :D

SamuraiCatJB
03-15-2005, 07:52 PM
hey, Jack, can you nab the source code and email it to me?... I don't have a .sit extractor at the moment and am loath to install much more until I verify windows has been repaired... :)

JackAxe
03-15-2005, 08:45 PM
It comes in a "pkg" file. Would you like me to e-mail that in a zip?

I would upload it and will when I have the opertunity, but my FTP won't let me connect any more? :confused: I get a refusal message now and I'm all paid on my server spacce. :confused: Need to call them.

<]=)

SamuraiCatJB
03-15-2005, 09:13 PM
yup, email zip if you don't mind. :) I would appreciate it.... :) I want to peek at how they set up the textureing and sizes and if they did any software stretch to power of 2 textures (no longer required on most current gen boards, but is required on older boards).

SamuraiCatJB
03-15-2005, 09:47 PM
okay... now for the rest of the story on acceleration... saying that OS's now are not hardware accelerated is not exactly true. They actually are hardware accelerated or we would not be doing things as rapidly as they are now. In fact you will find 2D menu operations are part of PCmark and other general PC operations. Without hardware acceleration, it would be very, very slow.

However, current screen operations are 2D. Sure it looks like the screen is only 2D so it makes sense at first. :) But pull up 5 windows, cascade them, they are overlapping by 95%. Is that a 2D operation now? not really, it is really a 3D operation because your screen has depth. Generally a window is created off raster view memory and copied REALLY fast to the current raster channel. There are all kinds of current hardware acceleration features, stencil bits blocked copies (not the whole window, but subblocks, so you can determine what you don't need to draw, and not draw it). However, it is still not a "smart" process. No one has really driven much smarts into this 2D processor, yet the 3D side has increased exponentially. 5 years ago if you had suggested doing windowing moves on the 3D side, I and other 3D programmers would have laughed in your face. :) (well, maybe not me, I have had a wider vision for 3D). But 5 years ago the 3D portion of the GPU was a single processor unit. There were 2 distinct operational processing channels (in parallel) on the graphics card, 1 was 2D windows acceleration, the other 3D view accelleration.

So on passes 5 years, industry has pushed the 3D processor to massive changes, vertex processors, fragment processors, multiple raster processors (on 3D only), and still only the 1 2D processor for windowing.... Memory has grown faster, and a few smarts have been added to the 2D processor (transparent window moves and other funky settings), it has more than doubled in 5 years. But that is slow by industry standard. In 2000 processors were 250Mhz on the CPU, now they are 3800Mhz. :) an exponential change. By comparison the 3D GPU is double increase of the CPU, due to inherent parallel design more than some "magic" in circuitry that Intel doesn't know. In fact ghz per ghz GPUs really have barely kept up with CPUs. However the GPU relies on the driver for backward compatibility, they can change instructions at will, assign a new block in the driver to translate the command, and *poof* backwards compatibility and freedom to redesign the chips. This has actually happened several times, whereas Intel is forced to provide binary compatibility to the 8086 design *gag* that is a heavy anchor. :)

So to make a long story short (okay too late), you are hardware accelerated, but the 3D GPU has long since outdistanced the 2D GPU on modern GPU designs, are incredibly parallel and still growing exponentially faster. Now you could stack up windows use the hardware zbuffer to take care of overlapping parts, no code for bitmap moving, you just send a position x,y change to the 3D GPU and it moves. Some affects like gradual color changes and solid colors can be generated completely through shaders (one of the many parallel units) to distribute activity over all the processors that make up a modern GPU. Now you moved the design of the windows/Tiger desktop from a single Linux design to a massively parallel Linux cluster design. You can still abuse the design and make it slower, or program for the parallel system and increase it a dozen or more fold. :)

JackAxe
03-16-2005, 12:24 AM
Thanks, it's very insightful. :)

I just wanted to know why Apple states that Tiger bridges the gap between the OpenGL and QT when it has always had hardware accelleration. :D So QT mostly likely still relies on the 2D GPU for just the movie playback?

You know how in a FPS game, a movie can play smoothly on a virtual wall, but yet you can pan or move your character around it. This is exactly what I can do in OSX with a QT flic and I know that's all 3D GPU, which handles pretty much the whole caboodle of OSX. :) So is the 3D GPU just helping to keep the 2D accelerated QT in frame and to distort it when it's minimizes in Genie Effect? I'm still freaking confused. :D


On subject, but a different ting to tink about:
Flash Player 8 which will hopefully be out this summer makes heavy use of the GPU now. :D The demo that I watched, showed an average increase in speed by over 10x. I would love to get my hands on it right now. It makes soooooo many things possible, like console game quality 2D games in a browser window. :)

Check it out if you're interested;
http://www.moock.org/blog/archives/000146.html

On the Z depth thing, I've worked quite a bit with it in Flash with my tile game engines. Each new tile is assigned a depth and it's how I move a character behind or in front of an object. :)

<]=)

SamuraiCatJB
03-16-2005, 12:36 AM
well, I don't have an OSX machine to reference what you are talking about, but there is still a lot of power in the 2D engine, its just the 3D engine has more. Right now they may be cheating, rendering an uberbuffer offscreen render using 3D to a bitmap on the 2D side and combining it, hybrid. I've done a lot of hybrid technologies to get the first step into a new technology. it's easier for the big bosses to accept if you show less risk before you make the big jump.

SamuraiCatJB
03-16-2005, 01:22 AM
also, on the 6800, one of the many internal parallel machines is a video processor. Instead of using either the 3D or 2D GPU, it has a video processor that can link directly to the graphics memory (which can always be used for either 2D or 3D) of any other parallel processor on the GPU.

JackAxe
03-16-2005, 02:18 AM
If found something. Your hybrid thing sounds right.

Look at this PDF on Page 10 if you don't mind. :)

http://www.udnimweb.de/Texte/sg2002bof_apple.pdf

It shows QT is software in the beginning, but is funneled through the GPU if I'm understanding. So Tiger makes it GPU all the way through I guess?

And page 12 shows a static shot of the Genie Effect minimizing a window.

Apple has made a few more changes since this PDF was released. They've been releasing little updates here and there to make the transition to Tiger as smooth as possible.

http://www.apple.com/macosx/features/quartzextreme/

I'm an info vampire. :p

<]=)

SamuraiCatJB
03-16-2005, 08:06 AM
you start off by changing one sample portion to OpenGL acceleration, you prove to your bosses that the gains for redesign show favor/profit over the time it takes to do the redesign. That reduces risk in their eyes so that you can finish the job.

Yes the design is very similar to my new design which must also do video, in which case you keep the data on the GPU as long as possible, hopefully until it reaches the final raster stage and you need do no more work to the final rasterized 3D image. Cap the performance at a set frame rate and return the CPU processing to the user for other things. If you do as much work on the GPU as possible you reduce CPU overhead, if you are frame locked you turn 200fps into 60fps you return all that extra time to do other things. The better your core performance (300fps, 500fps), the more time leftover to handle parallel user tasks rather than only OS related. You want your core performance well over 60fps, the more insanely high number the better.

:)

JackAxe
03-16-2005, 08:17 PM
So hopefully a 6800 has room to burn. :) 60 fps is more then fine with me, especially since that's all my screen can display.

<]=)