Final Thoughts

Among all of our tests, there are three identifiable patterns, all relating to some difference between Vista and XP. Those are:

  1. Vista is using more address space than XP in all situations
  2. The amount of address space used with Vista seems to be related to the amount of video memory on our video card
  3. XP on the other hand does not fluctuate at all, the address space usage is the same no matter what card we use.

We suspect that the issue is related to some combination of how Vista handles video cards, and Vista being more resource-hungry as a side effect of it being a heavier operating system in general. With the latter generally being unavoidable and unchangeable, we're left with trying to figure out what about the former is having the greatest impact.

One of the most notable features introduced in the Windows Display Driver Model(WDDM) for Vista was virtualized memory, which allows for Vista to use the normal computer memory hierarchy as part of a memory hierarchy for video memory. The reason we mention this is that tucked away in one of Microsoft's documents on WDDM is a note with the following: "Memory allocations are limited to the application address space primarily for security reasons. WDDM provides increased security by isolating applications and their resources from each other." Our suspicion is that this feature is causing video memory to eat up more of the application's address space than under XP, which would explain why the extra address space is being used, why it's variable with video memory, and why XP doesn't show something similar.

Unfortunately we have been unable to find any confirmation that this is the case. When presented with the some of our numbers, only NVIDIA would comment, cryptically saying that "Microsoft is aware of the issue and they are working on it. More details will be provided as they become available." Whether this means that the problem is what we're guessing or something entirely different is not something we can get an answer at this point.

As far as Windows Vista is concerned, all of this weighs heavily on a fledgling operating system that many people are waiting to get its first service pack before trying. While the performance problems we saw earlier this year with Vista have largely cleared up, now it seems there's a definite issue with address space usage in conjunction with applications that make heavy use of a video card (e.g. games). In turn, it's hard to understate the situation, since hitting the 2GB barrier typically results in crashing.

The situation isn't entirely unmanageable, but the number of questions left is uncomfortably larger than the number of answers provided so far. The problem can be solved by users in several ways we've outlined in part 1 of this series, but none of these solutions are truly satisfactory. The real solution is going to have to come from Microsoft, who thankfully is aware of the problem and we presume we'll be hearing about a solution from them sooner than later. In the mean time however serious gamers will want to take a critical look at Vista if they are currently using it or are thinking about switching to it. This isn't a severe problem with so few serious gamers currently on Vista, but it may be best to hold off on switching to Vista until Microsoft has the issue sorted out.

On a lighter note, not everything we've seen today is bad news. The address space usage on XP is significantly lighter than Vista, making the situation far less dire. Instead of having to resort to any of the solutions we outlined in part 1, the majority of XP users should be able to get away with not needing to take any action at all, at least for the next few months. The 2GB barrier still exists and still will be a problem, but ideally by the time the situation is as bad on XP as it is on Vista today, we'll have a solution to this address space issue from Microsoft, along with a clearer path on the migration to 64bit.

And getting back to Supreme Commander for a moment, our problems have not fallen on deaf ears over at developer Gas Powered Games. They let us know that the next version of Supreme Commander, Forged Alliance, will feature several engine improvements related to the issues we've covered. They are switching memory allocators to an in-house solution which is lighter and uses less memory, and are also attempting to put in a notification system for alerting users if the game has run out of address space to work with. Finally the game will be shipping as large address aware and will be tested as such. Hopefully we'll see other developers taking similar steps over the next year.

We'll have more on address space usage in Windows Vista as we find out more.

A Second Opinion
POST A COMMENT

57 Comments

View All Comments

  • CZroe - Wednesday, August 01, 2007 - link

    I believe that SLI will double the address ranges reserved for video memory and I believe that it would make testing the limit with these games on Windows XP possible.

    So, will SLI double the reserved address ranges? Considering that the board tested is an SLI board, I would recommend that it be tested in an SLI configuration with two 640MB+ cards.
    Reply
  • guidryp - Wednesday, July 25, 2007 - link

    It is about address space not physical memory installed. Some people don't seem to get that how much memory you have just doesn't matter. We have all been using Virtual memory for ever. As far as applications are concerned you don't run out of memory till you exhaust the address space. Vista seems to be chewing up a lot of that address space.

    Vista:
    256MB - 1.7G
    512MB - 1.9G
    768MB - 2.1G Ooops!

    XP:
    256MB - 1.3G
    512MB - 1.3G
    768MB - 1.3G

    I think Anand has a good answer on the probable what/why here. Microsoft mapped the video memory into the user address space as a security measure. Security as in DRM. This prevents a second application from peaking into the video ram while you play a BluRay disk. So for Microsoft. It is a good tradeoff to lose a big chunk of address space, to protect you from pirating, your content on your machine. We should thank them I guess. Otherwise I might accidentally do a frame capture while playing a BluRay disk. That would be just awful. Much better to be protected against that and have few games crash due to resource exhaustion. Thank you Microsoft.

    As a programmer, I will tell you that behaving gracefully when you are out of memory is a challenge. When new fails, you are likely hosed. You probably can't allocate memory to print out a message. You may as well exit because when you are out of memory it is game over. I see mission critical (five nines) code that doesn't even check the return code on new. I wouldn't hold gamer programmers to a higher standard.

    Games that don't blow the memory on XP, but do on Vista is Microsoft problem. When CoH takes 1.3GB on XP and 2.1GB on Vista. This is stark loss of address range that Microsoft should never have embarked on for backward compatibility reasons.

    Though supreme commander does deserve criticism because it can blow the memory on just about any setup. They should have tested worse case scenario and put blocks in on the number of AI/Units to prevent the memory wall from being breached.
    Reply
  • zagood - Thursday, July 26, 2007 - link

    ugh...typed a novel as a response and then got a posting error. Summation:

    I see your point and understand the logic. I was just saying that the difference between the processing power of those cards are about the same ratio as both the onboard memory difference and the allocation in Vista. For quick reference, from TH VGA charts:

    BF2142 1024x768 no AA (FPS)
    7800GTX 256mb: 56.8
    X1900XTX 512mb: 75.4
    8800GTS 640mb: 94.6

    I just find it interesting. One test with the 8800GTS 320mb could prove me wrong, that's all I'm asking.

    -z
    Reply
  • zagood - Monday, July 23, 2007 - link

    "The amount of address space used with Vista seems to be related to the amount of video memory on our video card..."

    Would like to see a test with 8800GTS 320mb vs. 8800GTS 640mb to confirm. Looking at the cards used, I wouldn't automatically chalk up the differences to onboard video memory, but instead to the processing power of each card.

    -z
    Reply
  • Kougar - Saturday, July 21, 2007 - link

    Very interesting finds here, thanks for the nice fact finding article. :) Nice to see some real, hard facts against Vista for a change other than the random perpetuated junk.

    Just a note it is still easy to crash SupCom however. As I said in the commentary for the 1st article it takes the X-large maps, 7 Advanced AI + 1 player, and 38-65 minutes of gameplay depending on econ ability of the particular map and use of the Resources x2 mod. If enough units were destroyed or an AI was killed off prematurely the game would never even crash. Using a 8800GTS 320mb card.
    Reply
  • titan7 - Thursday, July 19, 2007 - link

    Physical RAM is how much RAM you have. Pretty simple.

    Virtual Address Space is something the OS provides. Every 32 application thinks it has a full two (or three or four, whatever your OS configuration) gigabytes of RAM all to itself. It doesn't matter if you have an old PC with four megabytes or a new one with four gigabytes. It's just virtual memory, not real memory, and you've got two gigabytes of it.

    You can run dozens of applications all thinking they have two gigabytes of memory on a system with only a few megabytes. Through virtualization of the RAM the OS will just page out bits to the swap file on demand.
    Reply
  • nullpointerus - Friday, July 20, 2007 - link

    This stuff was covered in Part 1.

    Or did you intend to respond to someone in the comments section?
    Reply
  • spazmedia - Thursday, July 19, 2007 - link

    Does anandtech make reference in their motherboard reviews to memory hoisting or memory hole remapping? Just read somewhere else that even with a 64bit operating system, you can lose 1GB or more of memory depending as you say on your video card config, in the 3-4GB address space. Thus with a 32bit operating system it is pointless to have more then 3 gigs of ram. Memory hole remapping moves this address space elsewhere, presumably where it does not affect the amount of ram available for applications the OS. (Quite a mess actually...) Reply
  • BikeDude - Sunday, July 29, 2007 - link

    Yeah, the memory hole feature moves the "offending" DIMM above the 4GB border, thus you end up seeing this memory only in Windows Server or 64-bit Windows. (and if you do decide to use 32-bit Windows Server, you end up with 3pointsomething GB anyway, because nVidia has not supported PAE since Forceware 79.11) Reply
  • titan7 - Thursday, July 19, 2007 - link

    If it really is a WDDM problem couldn't you install some old Windows XP drivers instead of speculating? Or does vista 100% require wddm drivers? Reply

Log in

Don't have an account? Sign up now