Hi Chris, Johannes, list
On 10/9/03 6:21 AM, "chris clepper" cgc@humboldtblvd.com wrote:
Starting with OSX 10.2 all textures can be uploaded using DMA resulting in 0% CPU time for the transfer. Plus 10.2 can handle non-power-of-two texture sizes and YUV pixels for even more efficiency. This applies for both ATI Radeon (not Rage) and Nvidia Geforce hardware on OSX. Of course GEM fully supports these features. ;)
Windows does not feature any of these enhancements in it's standard OpenGL implementation, so significant CPU time can be spent handling the texture uploads. There might be some vendor specific extensions to enable fast texturing, but to my knowledge none of them have been implemented in GEM.
Yes... Microsoft is try to get openGL to quietly rot on the PC. I've done some testing with nVidia's Pixel Data Range extension for Windows (which allow AGP texture transfers using asynchronous DMA) but (surprisingly) the performance improvements were not at all spectacular so I didn't implement them in GEM. This extension is also available for Linux when using recent nVidia drivers. http://oss.sgi.com/projects/ogl-sample/registry/NV/pixel_data_range.txt
I haven't seen reports from anyone (except nVidia) getting significant improvmements using that extension. It's probably time I played with it again though, as texture upload certainly is an enormous bottleneck for Gem...
Windows will be getting system wide support for using video as textures, unfortunately it will be for Direct3D and won't be released until 2005 or 2006 (as part of the Longhorn GDI).
I'm no windows zealot so I'm not going to start a platform battle... but DirectX 9 has the ability to "directly" use video as textures and indeed does so by default when building media graphs in DirectShow. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwmt/html/ vmr_d3d.asp
I don't believe that there are YUV texture formats but I think that AGP DMA transfer does get used... does anyone know more? It's hard to get this info out of DirectShow/DirectX.
Longhorn is supposed to bring Quartz-Extreme style "everything is a texture", "everything is done on the GPU" to replace the old GDI interface but video playback is already being done with the 3d pipeline.
Daniel