Gaming In 64-Bit: Tom's Tests, Microsoft Weighs In

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. Again, Chuck is a senior software design engineer working in the XNA Developer Connection team, collaborating with game developers around the world to build games for Windows and Xbox 360.

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 advice 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.

This thread is closed for comments
    Your comment
  • salsoolo
    i went 64-bit from last year. i hope that game devs go 64-bit. and every programmer too.

    with Windows 7 around the corner, m$ already said that they expect the majority of windows installations will be 64.
  • curnel_D
    "Given the very known nature of these virtual address space limitations, you’d think that game developers would be taking a more hurried approach to making the transition."

    This mainly has to do with resources. Most developers use the same engine they've built or bought for a span of many years. Take bioware, for instance, who used the Auroa engine for 9+ years, knowing that it was limited to single threads and low memory.
    To switch to 64-bit, these developers would have to take the time not just to modify their existing engines, but more likely rewrite the entire engine because of the changes involved. Something that some developers just cant afford.
  • curnel_D
    Oh, and deffinately drop GTA. None of the GTA or games that use the GTA engine have ever been any good on PC, and have never been consistant in indicating graphics performance due to their poorly developed and optimized code. It's a waste of time.
  • amdfangirl
    I say the benefit of having full access to 8GB of DDR2 is enough to make me switch to 64 bit. Not using a Page File and being able to use native 64 bit programs like those found in CS4, is worth it enough. The advantage of being able to execute native 64 bit instructions is absolutely heavenly powerful speed boost(CS3 vs CS4).
  • spearhead
    indeed 64-bit is good and you can see that in games and applications which take advantage from it. it might require a bit more ram but then 64-bit can handle more applications running at the same time and execution of those applications seems to be alot faster that is what i can tell from my experience with 64-bit vista
  • nathanlh
    One of the reasons that x64 games might run slower on 3GB of system memory than their x86 counterpart is that x64 code should be somewhat larger due to the 64 bit addressing itself. If the x86 code is already feeling the squeeze on 3GB, the x64 code will be even more so - resulting in more memory swapping to disk. Also, one of the benefits of x64 code is the use of more general purpose registers which the x64 games tested here might not have made use of.
  • Chris - could you check the same thing on AMD platform? AFAIK there are some performance differencies between AMD and Intel @ 64bit
  • amdfangirl
    ^ There were some on Linux with the Athlon 64 and Pentium 4. Gap has really closed tho, I'd say.
  • apache_lives
    heh we forget the main concepts here with 64-bit:

    NO ONE uses a system with nothing bar windows a single game installed - they have a few security apps, torrent apps, messenger, keyboard/mouse apps etc - they all sap up resources, so 64 bit gives all apps all the memory they need - for example 8gb is useless to a 32-bit app, but when you got that hungry game ASWELL as a hungry background app etc they both get the full amount of memory!

    Also lessens the "thrashing" effect on HDD's and helps there lifespan etc

    As for why there arnt any benifits for 64 bit games etc - there all still native 32-bit because all those morons still think there 2gb and XP is "sufficent and up to date" - move to 64-bit so we can all benifit!
  • amdfangirl
    ^ +1

    We should all be 64 bit.

    Those who play hardcore games should have at least a x64 proc.

    So, devs should make 64bit games simply.

    The world will transition in due time.

    We just are at the frontier.
  • williehams
    If simply for the allowance of more ram it makes sense, however Vista64 has even more hardware compatibility issues than Vista32. Trying to install a linksys wireless card was a no go, even with guides and bodged drivers the result was poor, I resorted to an USB wireless adapter instead which is pretty lame.
  • powerbaselx
    IMO 64bit OS will be trully significant for home/game users when 3 things happen:
    1) Games and applications will demand more than 2GB RAM each (we're still far away from this reality).
    2) Games and applications will be truly multi-tasking, multi-process, competing each other, and requiring plenty of memory each.
    3) Windows and software houses stop having 32bit versions and 64bit will be massified.

    Currently most benchmarks and articles search for a motive to upgrade to 64bit on performance, which is wrong while home applications and games don't demand more than 2GB RAM each. Today it has nothing to do with performance gains, since as benchmarks reveal it brings no relevant advantage.

    Virtualization (like VMWare ESX and Citrix Xen) is a good motive to have lots of installed memory over 4GB but that's an area for enthusiasts, developers, students and enterprises, not for the masses.
    In an absurd analysis, if each game had its own independent OS to be loaded through a virtualization OS then i'm pretty sure 64bit were pretty much developed and maybe today the standard was 32GB RAM on 16-core PCs! :-)
  • San Pedro
    I'd like to see you guys keep GTA for the benchmarks. I disagree with an earlier poster, I think all the GTA ports have been great fun on the PC. I do agree with what was said in the article about it being a hassle with Social Club and Windows Live. Running a mod that disables windows live has been reported in user forums to yield a good amount of extra performance.
  • RiotSniperX
    Of course 64-bit would yeild more advantages.

    When your playing WoW, your not just playing WoW,atleast it dont.

    Your running ventrilo,xfire, and sometimes itunes for music, and with 6gb you'd be able to do it no problem.
  • wuyanxu
    GTA4 is a very good benchmark, especially in testing MODERN machines. by modern machines, i mean quad core, with lots RAM and vRAM. the only reason it's been viewed as unoptimised is because those dual core losers don't understand the future of computing.

    64bit is the minimal anyone building/buying a machine should be looking at, and 4GB/6GB is also the minimal. Microsoft should have stopped making Win Vista 32bit from the beginning. as always, software developers are too slow to catch up.
    for Win7, with netbooks as part of target audience, Microsoft should ONLY have 32bit netbook edition. all other desktop editions should be 64bit without question.

    posted on a quad core, 8GB RAM, Vista 64bit and sitting here waiting for more native 64bit programs
  • Who cares about gaming. I am sort of fed up with this site talking mostly about gaming and overclocking. It did not use to be this way many years ago... Please change the name to "tomsgamesandoc".
    Great discover... A game (which performance depends mostly on the GPU) doesn't improve when running in a 64Bit os... Wow... Very strange uh? Expecially considering that the code is in 32bit.
    This ignorance of "testing" is almost offensive for IT professionals who know what they are talking about.

    Why don't you try the difference with some native 64-bit apps? Ray-tracing anyone? Video encoding?
  • powerbaselx
    DonalDuck[/nomThis ignorance of "testing" is almost offensive for IT professionals who know what they are talking about.Why don't you try the difference with some native 64-bit apps? Ray-tracing anyone? Video encoding?

    Virtualization as i said in a post here... (did you read? ...)
  • RiotSniperX
    DonalDuckWho cares about gaming. I am sort of fed up with this site talking mostly about gaming and overclocking. It did not use to be this way many years ago... Please change the name to "tomsgamesandoc".Great discover... A game (which performance depends mostly on the GPU) doesn't improve when running in a 64Bit os... Wow... Very strange uh? Expecially considering that the code is in 32bit.This ignorance of "testing" is almost offensive for IT professionals who know what they are talking about.Why don't you try the difference with some native 64-bit apps? Ray-tracing anyone? Video encoding?

    Your missing the point, when running a game, like i said, you could be able to do other things, not be limited to the game and fear lag if you say, decide to go on google for a second.
  • gfg
    use 4870x2 in CF. Supposedly AMD has better support for 64-bit.
    And using more powerfull GPU eliminates the bottleneck.
  • gfg
    use 4870x2 in CF. Supposedly AMD has better support for 64-bit.
    And using more powerfull GPU eliminates the bottleneck, to see the real diferents.
    I am from Argentina sory my inglish.
  • wasteoftime
    This is the second awesome article I've read on Tom's in two weeks. Great job.
  • It's weird. AFAIR x86-64 CPUs have double lenght double number GPRs and XMMs. So with proper optimization should've much better performance (up to ~20% I think). Yeah, there are not many double precision calculations, but still more registers should bring better performance. I guess 64bit compilers are still far from perfect.
  • glawk
    The bottom line is that you won’t see game-changing benefits from the apps you play today. But when you consider , the decision to go 64-bit should be an easy one.

    Same crap I heard 4 years ago and I still don't see widespread utilization of 64-bit. The only difference now is that the 64-bit device drivers aren't absolutely terrible. Other than that, it's the same old argument:

    "Will I benefit from this switch?"
    "Weeeell... not exactly. Not right now anyway."
    "Ok, call me when I do."
  • gamerk316
    No Dev wants to support two versions of the same program (otherwise Linux would have a lot more games :D), so until most everyone shifts to a 64-bit OS, you will continue to see lackluster 64-bit support. Its the same deal with DX10, you won't see any games developed soley for DX10 until XP loses more market share.

    We won't see many 64-bit games (let along games designed to be 64-bit from the start) until M$ kills of 32-bit OS's (Windows 8), so I think we need 4-5 years before 64-bit programming takes off.