Take a look at the tables on the first page of AnandTech's article at http://www.anandtech.com/showdoc.aspx?i=3044
. The virtual address space at game start is consistently well below your VRAM size. Vista uses the GFX card in a different way to XP. The Aero interface is 3D, which means that the only limit on video memory used by the API is the whole VRAM. To ensure stability, Vista requires the ability to swap out video memory. To do this the video memory has to be mapped to virtual address space. And there is no reason why that cannot be above the 2GB mark.
I am reminded strongly of the phrase: "A little knowledge is a dangerous thing". Again you make extraneous connections that are completely unrelated to the issue at hand. Aero isn't involved in gaming. Aero has nothing to do with mapping Vram into user space. You can turn off Aero and it will have the same effect.
Mapping Video memory into the Kernel address space is indeed the problem. Yes there are big reasons why it can't be done above the 2GB mark.
The reason you map into user space is because this because your only way of accessing the graphics card. If you put it in Kernel space you LOSE that access. You don't have access to kernel memory.
Further to that it is clear They are not mapping it to kernel space.
snowdog wrote: http://msdn2.microsoft.com/en-us/librar ... ctx_topic3
The problem is VISTA is remapping the whole of the VRAM into the user space. XP doesnt do this, There is no need to do this, it is just done for DRM.
Where did you get this little gem from?
"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."
This is talking about the new video driver. Vram access is now in user address space primarily for "Security" reasons. That is to keep one application from peeking at the protected video streams, AKA DRM.
Note the size difference between Vista and XP memory usage. 800MB almost identical to the size of the VRAM on the video card.
I am not sure what your original numbers represent exactly.
Did you even read the articles the original poster linked?
256MB - 1.7G ~400MB more than XP
512MB - 1.9G ~600MB more than XP
768MB - 2.1G ~800MB more than XP
256MB - 1.3G
512MB - 1.3G
768MB - 1.3G
It should be totally clear that Vista is burning Address space by remapping the video memory into to. None of it is going into Kernal. This might be a good idea in pure 64bit Vista, but in 32bit Vista this is a major issues that is chewing up the address space.
user_virtual_address space = min(2GB,4GB - system_reserved_address_space)
if (physical_memory > user_virtual_address_space)
max_usable_physical_memory = user_virtual_address_space
max_usable_physical_memory = physical_memory
This pseudo code is an example of high school programming intro course thinking. So first of all where do you get these values? How do you determine how much of address spaces is going to be gobbled up by Vista vs XP? Even if you did get a handle on that number, what do you do next? Are you going to keep a running total of every "new" that you do, subtracting for every "delete". How are you going to account for static allocations, how are you going account for kernel allocations?
Even if you lived in some kind of fairy tale world where you could accurately track all of this, what do you do with it, when you see you are running out? You just stop the game? You are no farther ahead than merely checking return from "new" and finding out that you are out of memory.
Why do you keep trying to defend Vista when it is chewing up all the address space?
I am explaining the issues to this forum. That is all.
That might be fine if you actually knew what you are talking about.