The Carmack on 3D
by Steve Gibson, Mar 08, 2000 4:39am PSTJohn Carmack has made an absolutely huge .plan update writing out his ideas of where the 3d hardware industry should be going. It's pretty damn tech heavy, but if you're wondering if you can make your head explode just from reading something this is a good test.
This is something I have been preaching for a couple years, but I finally got around to setting all the issues down in writing. First, the statement: Virtualized video card local memory is The Right Thing. Now, the argument (and a whole bunch of tertiary information): If you had all the texture density in the world, how much texture memory would be needed on each frame?... <snip>You can see a few comments by Zoid and Jack in the comments section giving their reactions and a bit of a simplification if you're curious.
Daily Filter: Planetside 2, Deadlight
Weekend PC digital deals: strategy-o-rama
38 Studios, Harry Potter Kinect - Shacknews Daily: May 25, 2012
Minecraft for Xbox 360 dev working on 'Adventure' update
Demon's Souls servers extended again
Comments
that a good reason for the Permedia 3 actually to have the virtual
paging is the 3d texture support. 3d textures obviously get
big quick, and can take up a lot of texture memory, but often
very little of that memory is accessed at a single time, as the card
still renders triangles which are simply slices across that texture.
Obviously if you have parts of a 3d texture that aren\'t going to be
accessed, then you don\'t wanna have to have them in texture
memory.
And saying the Permedia 3\'s performance \"sucks ass\" isn\'t really
correct. (Now you guys are going to label me a 3dlabs fan boy.
I use a Voodoo3 at the moment in my dev machine, soon to be
a GeForce) The card\'s fillrate isn\'t really top notch (even though
the card is overclockable and keeps the fillrate near peak very
often), but its triangle rate, and performance when doing things
like professional rendering (especially with CSG using 3d textures)
are very good.
Also the triangle rate is pretty cool, especially when
you have a multiproc system (due to good drivers with thread
support). If I had a scene with low fillrate requirements and high
triangle requirements, I would choose the Permedia 3 over the
TnT2U. And if I was buying a hi-end work station card today it
would probably be a 3dlabs one based on a dual R3 core with
and an improved Glint Gamma.
Still, for high fill rate applications, the nVidia cards are going to
win, and thats where I would put my money.
Holdy = Holy.
mofo. ()
mofo. (I finished my essay, sir)
I think the real problem with this kind of an implementation is that you will end up with hardware companies trying to make cheaper cards by reducing the amount of RAM on the card below the optimal level. This would be similiar to what Intel did with the i740 cards by only giving them 8MB of memory because of the AGP bus.
If a hardware manufacturer put enough DDR-SDRAM in addition to a hardware accelerated texture cache controller, this would seem to be a win-win situation.
Symantics, though. I can see where you\'re comming from and I\'m happy to agree to differ. HOWEVER, my dad IS bigger than your dad. That\'s a fact. :-)
If (EnoughMemory > VirtualMemory) then (VirtualMemory < EnoughMemory)
I think we\'ve killed this one... :)
-jb
Hold on! The date\'s off!
Carmack isn\'t saying it would DECREASE performance, he\'s saying that in the case where you have enough memory for all the textures it WON\'T INCREASE performance.
Decrease is very different to not increase.
Basically, virtual is cool for the times when you don\'t have enough and doesn\'t do any harm when you do. Exactly the same as how multitexure making things faster when you have transparent stuff going on but not costing you performance when you don\'t.
Anyway, look, let\'s put all that aside. I\'m a single guy. I have needs. Your place or mine? :-)
Ahem
Actually, that is exactly what he is saying... :)
-jb
Also,
\"Different situation, of course. Some Windows code (unfortunately) looks for a swap file regardless of the amount of physical RAM. This is not a positive situation.\"
I wasn\'t aware of that, but what I effectively meant was that you try running Windows with, say, a 1meg swap file and see how long you last. :) Quake3 probably won\'t even load unless you have a half gig of RAM.
Then try using Photoshop...
Then try writing an application which has to deal with very large files and having to deal with the complete pain in the ass that application-based virtual memory code is, and then think about what a total waste of time it is for every single programmer in the same situation to have to develop their own virtual memory code because it\'s not in the OS...
Thinking about it some more, the scheme Carmack describes could actually INCREASE performance even for a card with enough texture memory. With current systems the textures need to be loaded on to the card at some point, let\'s just say they\'re all loaded when the level loads... But if some part of the texture is never fully visible (say a black square which is alway cut out for a doorway), or a texture is never seen close up and so only the smaller mip-levels are used, then virtual memory could actually mean you never waste time loading the unused data and your level will load faster initially (or there will be a smaller delay when the texture is first needed if the textures are not all loaded at the start).
IMO, there\'s nothing wrong with the idea and a whole lot right about it.
If you have a card with x meg of RAM and the textures all fit, you are in the optimal case and it doesn\'t matter if the card uses virtual video memory or not. (Assuming the implementation of virtual memory isn\'t stupid!)
If x meg is not enough to hold the textures then virtual video memory will most likely give you much better performance than what we currently have.
I see what you\'re saying, that video cards have a short life and we should just always have enough memory on them, but you can never have enough memory and someone will always push the limit, either because they\'re writing for the absolutely latest $3,000,000 card or because they were too lazy to optimise things... Or just because they\'re writing an adventure game that doesn\'t REQUIRE fast framerates but is a better experience if it looks great.
In a perfect world we would have terrabytes of memory on our graphics cards and in our PCs and neither would have to use virtual memory techniques but that\'s completely unrealistic now.
Carmack said: \"Sure, you are always better off to just have enough texture memory and never swap, and this feature wouldnÂ’t let you claim any more megapixels or megatris, but every card winds up not having enough memory at some point.\"
Real RAM is always better than virtual.
#40 - #39 Tell me virtual is bad after you turn off your Windows swap file and run with that for a week.
Different situation, of course. Some Windows code (unfortunately) looks for a swap file regardless of the amount of physical RAM. This is not a positive situation.
#43 - virtual memory is GOOD when you have to store more things in memory than you have the space for in your local memory...i think Carmacks point was that video cards don\'t or aren\'t going to have enough memory on board to run current or future games so they need to figure out a better algorithm/system for swapping to and from main memory...
Absolutely Correct.
My point is that it is not the best solution for hard core gamers. I\'d hate to see video card manufacturers adopt his scheme. It\'s like using AGP to shuffle system memory back and forth to the video card - good (maybe) idea in general, but bad for people who are willing to buy enough video memory to get optimum performance.
-jb
Going to various forums and listening to people analyze .plan files like they actually know what they are talking about, when in fact, 99.99 % don\'t have the foggiest idea.
For what my opinion on 3D card technology is worth (nadda), it sounds like an extremely logical idea to me.
Tell me virtual is bad after you turn off your Windows swap file and run with that for a week.
Virtualized video is not what a typical \'Shack user would like to see. Carmack mentions that performance would suffer with his virtualized video cache system. Of course it would! (Virtual == Bad)
The plan is to always make sure \"your\" video card has a enough local memory to support the games you want to play. I\'ve heard that video cards disappear after a year anyway... ;)
-jb