Tom's Hardware Sits Down With Chuck Walbourn
To get a better sense for where we are now versus when Microsoft’s Chuck Walbourn made his two Gamefest presentations, we recently caught up with him and asked a handful of questions related to 64-bit gaming. Before you dig in, check out the story he wrote for Gamasutra on gaming, memory, and 64-bit computing, which serves as a great primer for our discussion.
Chris Angelini: In testing for this piece, I observed very little in the way of performance improvement, given a shift from 32-bit to 64-bit operating environments. What gives?
Chuck Walbourn: This goes to the fundamental issue with x64 64-bit technology: it doesn't so much "go faster" as it enables new scenarios without giving up performance running 32-bit applications. This is a pretty key issue for adoption. x64 technology "just works" and means you are not giving up anything to get 64-bit capabilities. Technically you are giving up the ability to natively execute 16-bit code when running your processor in 64-bit mode (which is the case when running Windows x64), but that's just a hardware manufacture’s tradeoff to limit compatibility with ancient code that dates back to the Windows 3.1 days.
Chris Angelini: What’s the justification for adding memory to my system, then, if I am a game developer?
Chuck Walbourn: The most obvious reason to move to a x64 OS is larger memory support. As my Gamasutra article discusses, if you have 4 GB or more of RAM installed in your system, you are wasting hardware to run anything but a x64 OS. This manifests itself in some ways just doing daily work: larger file cache and can have more processes running at once (particularly important if you have a beefy four- or eight-core machine). We've seen a number of game developers adopt x64 pretty strongly just for this reason even when they are not using any 64-bit native applications at all. An eight-core machine with 16 or 32 GB of RAM running Windows Vista x64 can crank through code builds like nobody's business when using a multi-threaded build environment. DICE, Epic, Valve, Crytek, Starbreeze, and others game developers all are standardizing on x64 machines for development to be able to use large amounts of RAM, especially given how quickly memory prices are falling for these configurations.
Once the 64-bit capability is there, that's when things get interesting.
Chris Angelini: One of your calls to action was for developers to enable /LAA, at least. Is there an easy way to tell who has heeded your device and actually done that?
Chuck Walbourn: We've had "Large Address Aware" for years, but its use has always been limited to some hardcore technical scenarios because actually booting the 32-bit OS so that you can take advantage of it is tricky. The point of my Gamefest 2007 talk was that Windows x64 makes "Large Address Aware" potentially a painless consumer scenario if they are running a Windows x64 machine. Now, there are plenty of caveats to using LAA for the developer, especially with respect to 3rd party libraries and legacy code, and it only gets your application to 4 GB of address space rather than the full 8 TB. Still, it is a useful bridge technology for letting your existing 32-bit application scale beyond 2 GB and giving users of Windows x64 systems some better detail textures, larger streamed data caches, or whatever else would never have fit into the limits of a standard 32-bit application.
For game developers, they are already hitting the wall with the 2 GB limit for their content. For Crysis, Crytek had to make a x64 native editor in order to be able to create levels that completely filled the 2 GB space available for standard applications when fully optimized, but would not be able to run the editable version at all as a standard 32-bit application. Flagship Studios made extensive use of x64 native server programs, making those processes more resilient to memory space fragmentation. The Visual Studio linker has been an LAA application for years, and by using it on a Windows x64 system, developers have been able to link huge monolithic game .exes with more optimizations enabled than would work otherwise. We've seen LAA used in combination with Windows x64 for other tool sets as well, and a number of those teams are now moving to x64 native versions. There's plenty of value already there to move studios over to x64. LAA-enabled tools and content pipelines, plus the strong push from the Digital Content Creation applications like 3ds Max, Maya, SoftImage for x64 native tools, are making it a critical enabling technology, even when shipping games on existing platforms like 32-bit PC, Xbox 360, etc.
As for which games are LAA: there are many that enable it. If you search the Web, you'll see a lot of enthusiasts are hacking existing games to enable LAA to try to make them more stable when running big mods. Some games also quietly suggest in support forums to run on Windows x64 to resolve stability issues for long play sessions, complicated levels, etc. The 2 GB 32-bit limit of applications has been a huge point of pain in the game industry for many years now, so there's plenty of pent-up demand for moving beyond it. LAA on Windows x64 gives some breathing room, and more important, it gives gamers a solid reason for adopting the technology before x64-native games becomes common-place.
Chris Angelini: How about the benefit to gamers?
Chuck Walbourn: For consumers, 4, 6, or 8 GB of RAM is pretty cheap these days. And without Windows x64 you really have to stick to about 3 GB of RAM total. While the number of x64 native games is still small, the acceleration in the market of Windows x64 driven by memory sizes makes it more interesting over time. LAA-enabled titles right now typically give a more stable experience when running on Windows x64 because they have much more headroom in the very tight 2 GB address space environment for modern AAA titles. But developers can also deliberately throw in more content in this situation when enough users have the systems to support it.
Recent data is showing a strong uptick in the numbers of Windows x64 systems out there, and game developers have wanted to get past the pains of the 2 GB limit for some time now. In today's market, it is a difficult pitch to make a x64 native-only game, and making both a 32-bit and a x64 native version of the game is more work and risk than many teams are wanting to take on right now. Game content is getting more detailed every year, and if your game is going to stand out, you'll want to be on the high end of that curve. The game industry has also been making more and more use of third party middleware solutions for their titles, and it's been a difficult process to get all the various companies providing these solutions to really engage on providing x64 native support. This is starting to accelerate as well, which should enable more developers that are otherwise stuck deciding between writing their own technology solutions that support x64 native or shipping on time.
Chris Angelini: How far off are we from seeing a more wholesale shift to native 64-bit game titles? What will they offer above and beyond the 32-bit versions seen today?
Chuck Walbourn: x64-native games are pretty limited today, and most of them are "early-adopter" titles. We hear that there are a number of studios who use x64 native builds of the game internally for development, but the publishers don't want to pay for the costs of testing and supporting them right now. Once we get a point where developers and publishers do focus on making x64-native versions of games, there are some performance improvements that can be had with more registers, better SSE2 SIMD utilization, aggressive use of memory mapped I/O, and significantly larger assets. Right now the real point is to be able to get past the 2 GB squeeze before we see major performance wins from software optimization reappear.
Chris Angelini: A big thanks to Chuck for weighing in on an issue that promises to shape the way games are developed in the years to come.
The other problem is I dont want to go buy another OS for this (Ms or otherwise). If they would run games on a linux platform I'd be happy to buy a 64bit game.
But only if that game was DRM free and didn't want me to go on-line to activate it. I've got better things to do these days as most of the games suck.
Did you write the article before you did the benches? Otherwise it might have tempered the hyperbole about the switch to 64bit. It comes across as this is really really important and will save gaming as we know it but the benches at the moment say otherwise.
I dont expect this to change radically for a while yet. Maybe 2010/2011 will be the time of 64bit?
Dont get me wrong I'm all for the full migration to 64bit but some folks need to catch a little perspective maybe?
Did you write the article before you did the benches? Otherwise it might have tempered the hyperbole about the switch to 64bit. It comes across as this is really really important and will save gaming as we know it but the benches at the moment say otherwise. I dont expect this to change radically for a while yet. Maybe 2010/2011 will be the time of 64bit?
Dont get me wrong I'm all for the full migration to 64bit but some folks need to catch a little perspective maybe?
Wow. Looks like 3gb and 64 bit doesn't go so well...
Did you write the article before you did the benches? Otherwise it might have tempered the hyperbole about the switch to 64bit. It comes across as this is really really important and will save gaming as we know it but the benches at the moment say otherwise. I dont expect this to change radically for a while yet. Maybe 2010/2011 will be the time of 64bit?Dont get me wrong I'm all for the full migration to 64bit but some folks need to catch a little perspective maybe?
indeed 64-bit needs a bit more time. alot of people still use 32 bit however and dont plan to move to 64bit any time soon this is why programmers choose not to script 32-bit af of now because that group is to large. however in the upcomming two years as when windows 7 will launch people will more steadly migrate to 64bit operating systems and by 2011 2012 64bit should be the standard programmers code for. dont worry to much about it this means AMD was way ahead with its first 64-bit cpu's
One thing you should be taking in to account here is game architechture. No doubt most of those games, if not all use DirectX, therefore the main limitation will be due to the common framework.
So what if some games claim to have some 64bit optimisations, that doesn't mean the company was actually any good at implementing them, nor tested them effectively enough to know if they make that much of a difference.
64bit gaming is currently pointless, a bit like this test.
in gaming 64 bit might not offer such an increase, but other apps such as winrar 7 zip etc u see a huge performance increase. extracting 7gb on 32 xp takes 40 mins, on visa 64 the same file took me 14 mins!
What I find odd about this article is that it starts off great and then goes so wildly of course.
The author discusses all the benefits of 64-bit computing. We are told these include increased content (visual details for example) and better stability for long sessions/ RAM heavy games.
Then the article goes completely tits up (THG style) and starts discussing FPS differences between 32-bit and 64-bit. Did I miss something or has lost the plot somewhere along the way...
The 64-bit extensions AMD introduced are a kludge on-top of a kludge on-top of a... , etc., etc.!! They are purely about addressing more RAM (vs. greater performance from wider data pathways/ bigger register banks in a "from scratch" 64-bit Instruction Set Architecture). It is a known fact that the C2D CPUs can only "glob" x86 instructions and not x64 bit instructions - so they may in fact run 64-bit code slightly slower.
@andrazz you also can only compare Vista 32-bit vs. Vista 64-bit and Windows XP 32-bit vs. Windows XP 64-bit!! Any other comparisons will apples vs. oranges...
Bob
Seems to me that the benchmarks were all about graphics. Games that do a lot of processing, like many strategy games, were not addressed. It's these games where I would expect the extra memory to provide better performance, with faster 'turns' (for turn based games), or less of a slowdown when RTS games have huge numbers of things to track. You will not see more frames per second, but you will have faster/better gameplay.
Although the benchmarks show 32 Vs 64bit is more or less the same thing, when i changed to XP 64bit just to get the old far cry 64 patch i had a whopping jump in speed. Not to mention the nice extras in-game.
Now I'm using Vista 64bit, Q6600/4gig ram/8800gtx, the 64bit games do seem faster than their 32bit counterpart to me at least.
Perhaps just because the OS has the extra Ram allocation to free up HDD Paging. Either way it does the job.
Would there be any benchmarks coming between a normal 32bit game vs the /LAA 32bit game?
You mentioned it in depth and how to do it etc, but didnt show anything that would show the difference in performance between them.
Would be nice to see if enabling that setting will increase any FPS or if it is just used for stability.
The real reason for the lack of 64bit support is the complete lack of a requirement for it on games that have ported from consoles (i.e. most AAA titles).. If you have developed a game to live in the restraints of 512MB in an Xbox 360, 2GB when you port to Windows is a relative luxury that is far beyond the game engine will require. Not until we see either the next generation of consoles – or games being developed for the home PC rather then just a simple port – will we see the need for more memory.
The real reason for the lack of 64bit support is the complete lack of a requirement for it on games that have ported from consoles (i.e. most AAA titles).. If you have developed a game to live in the restraints of 512MB in an Xbox 360, 2GB when you port to Windows is a relative luxury that is far beyond the game engine will require. Not until we see either the next generation of consoles – or games being developed for the home PC rather then just a simple port – will we see the need for more memory.
yes please keep GTA as a benchmark! It has raised the bar with regards to system requirements etc etc and would be good for future kit to be measured on it...
Just a thought but wouldn't it be nice to see a "cache level" option so that all/most of the levels in a game could be pre-loaded into RAM on a large RAM system. For a long gaming session it would be nice to avoid all the level loading stuff (without buying an SSD)!! Thinking of HL2 here...!! How much RAM would be needed for it to be useful?? Too much I guess for newer games?? Globbing a few levels together might help... Just wonder how hard it would in developing the game - probably not to much if they have a 64-bit port...
Bob
32 bit v.s. 64 bit comparison results cannot be realized via game play comparison.
The best benchmarks will be scientific A.K.A., math libraries Like BLAS and FFT. Other area will be databases and GIMPs.
Also seeing that there are newer registers in the 64 bit world, explicitly using those registers will give a benefit w.r.t. speed and I am not sure if newer compilers (64 bit) are using those in an otimum way.
Colin
*If I'm not mistaken*
In a 32bit environment, video ram counts against the >4 GB wall. Running two 1GB video cards will drop your available ram to >2GB. I can imagine this bottle-necking gaming rigs running Vista. I cannot imagine trying to save 200$ on a new rig, by skimping on the OS and ram...
Well, I dont know about anyone else, but I do other things on my computer than gaming. I also like to have 47 windows open, on a regular basis, spread out on 3 monitors.
Quad-core and 64 bit IS a requirement, and with the absurdly low prices of ram and computer gear in general, why do people insist on being cyber-luddites?
Enjoy,
S*D
to bobwya : that was here when the first systems with 1 MB+ ram came out.
it called ramdrive. did sort of hdd apartition in the RAM. it could be interesting to see it these days or maybe something similar is out already
at least it is posible to run without virtual memory if you have 4GB+ ram.
i found only video editing tools demanding some virtual memo so far.
Ahhh the stupidity of Benchmarking at High resolutions using a budget graphics card and risking it becoming the bottleneck! Why not redo the benchmarks with a more powerful graphics card? Then you might see some difference? Tom's making itself more irrelevant day by day to the think class man