Discussion in 'Graphics Cards' started by Mussels, Apr 15, 2009.
so should game devs who dont use the large address aware flag
Sure, it uses the DX9 way of managing that shared data, but it's not just Aero and the OS that requires data duplication.
From what I understand WDDM 1.0 makes an effort to eliminate data duplication, but legacy apps require those bios caches in order to run, so they are still there. WDDM 1.1 doesn't require it them all, but board makers would only be able to run Win7 on boards without it.
We're kinda stuck in a juxtaposition of the two ways of doing things...in the past it wasn't possible for hardware to communicate as it can now, so they need to leave these functions there, but if they could phase all the old stuff out...
As it stands now, in XP and Vista, there are times when data isn't just duplicated..it's trippled...once on VGA, once on shared render cache, and once in the GART cache(GART cache would be the bios-assigned system ram).
This can cause issues all on it's own though. The PAE switch needs to be enabled before the OS boots, so they don't have this choice in every scenario...again, it's legacy hardware that can screw with this. PAE also require morethan 4GB of ram. Microsoft explains it best:
PAE is basically running 36-bit, the extra 4 bits allow addressing greater than 32-bit, obviously.
PAE and LAA are two entirely seperate beasts, and one does not require the other.
and yes, WDDM (windows display driver model) concerns aero and media playback. it doesnt have anything to do with third party apps, unless they tie into it for 3D surfaces (such as a game or media player - MPC-HC lets you choose from tons of rendering modes, for example).
WDDM is purely about the OS and how it renders, which is why you can run WDDM 1.1 (DX10) for aero and so on, and yet still have DX11 (not part of the WDDM 1.1 standard) for games.
Specifically, PAE is Intel's LAA tech, but they are still one and the same.
No. WDDM = Windows Display Driver Model. This includes DirectX, GDI, Direct2D, DirectCompute, etc...
GDI = Desktop level stuff. This is what requires data duplication, as the GDI format is not the same as DirectX, so there has to be a space to convert the GDI info to DirectX. That's what you are talking about...
But yeah, I understand what you are saying.
When it comes to 3D, the reasons for data duplication are different...such as deffered rendering, and, technically, Crossfire and SLi are deffered rendering, but on frames, rather than work within the graphics pipeline(like how the PS3 renders). Phys-X is also deffered rendering.
That's how Lucid's Hydra works...using deffered rendering.
Anyway, WDDM 1.0 only allowed for one application to use the entire system, while WDDM 1.1 allows for more, as the places and timing for exclusive access have been broken down into smaller parts. This allows for Both GDI threads to access the same memory space, which eliminates the need for hte duplication for the desktop space, however, the same does not apply for 3D...unless, I suppose, the developer allows for it. That's where it starts to get really confusing for me.
excellent explanation OP. very well done.
Ah, with only 2GB or RAM and a puny 256MB for the GPU frame buffer, I guess i have an excuse to stick with 32-bit Win7.
yeah, system like that has no loss on 32 bit, at all.
you wont lose anything going to 64 bit either, so consider that when you next reinstall windows.
If you got 6 GiB of RAM on a 64-bit OS, a 32-bit application that is large address aware, and a card with 1 GiB VRAM, how much does the game have access to? 3 GiB or 4 GiB?
2GB. 32 bit OS caps each app to 2GB. so depending how much Vram it uses, you could only have 1GB for ram available.
if its large address aware and you mod the OS with the /3GB switch, then you can raise it to 3GB
I said 64-bit OS. XD
... quiet, you.
32 bit app on 64 bit OS is still capped at 2GB, unless its large address aware in which case that raises to 4GB of address space.
remember that the amount of vid memory used (and thus in address space) varies, and its usually NOT the maximum your video card has (or you'd be stuttering all the time) it might be 200MB, it might be 500MB, it might be 800MB.
So the game might have 3.8 GiB, 3.5 GiB, or 3.2 GiB available to it?
yeah those numbers were pulled out of a hat, but yes. if its LAA, its 4GB minus whatever your video card is using at that moment in time (some games its hardlocked, others it varies)
if its not LAA, then its 2GB minus the rest, just like a 32 bit OS.
I have some builds on 32bit, and some on 64bit. Most people are still on 32bit OSes. 32bit isn't bad but it is wasted potential in many cases.
Thanks very much for the info Mussels.
I dont know if this was clarified in the entire thread yet, as I did not have time to read all the way through it. But, just because a video card has 1GB of VRAM or 2GB of VRAM, does not mean its gonna use that in address space. I looked at many different video cards and most of them only use 256MB of address space.
yeah that was covered, it was something we learned later on. Games can reserve set amounts, or us dynamic amounts - and i too have seen many games using a 256MB limit. Its easy to go above it however, when you add in external things such as forcing AA/AF from the driver control panel.
Woot learn alot, TY Mussel
Hadn't noticed this thread before, probably because I don't have a big graphics card , but a couple of things caught my eye.
Using PAE does not require more than 4GB of RAM. Even my old retired laptop that had 256MB of RAM used PAE. Perhaps the quote you have made is for a system where it would make little sense to run PAE without more than 4GB RAM. From XP2 onwards PAE has been enabled by default to enable use of hardware DEP, that is if the CPU support the NX bit.
Enabling PAE on the older "32-bit" CPU's that supported PAE meant being able to physically address up to 36-bits because thats how many address lines were supported by those CPU's. If a CPU supported 50 address lines then PAE would support up to 1024TB of RAM, in other words PAE can theoretically address as much RAM as 64-bit. The problem with a 32-bit OS** is actually with the linear memory space since this is limited to 4GB with the Windows OS usually taking the upper 2GB of that. This is where AWE comes in and enables swapping in to and out of chunks of that large memory into the small linear address space to enable much more than 2GB of RAM for a 32-bit application. Don't expect to see AWE in your everyday applications though . Although MS claims AWE is very efficient at doing this and it would also depend on the application itself, 64-bit should be more efficient as it can map to a much larger linear address space without swapping, which IIRC is split 8TB/8TB for Windows.
** Of course the biggest problem is from the poor drivers written some time ago that pushed MS to cap the physical address space to 4GB so that any ram that is re-mapped above 4GB is usually ignored in most 32-bit Windows OSes. Now that 64-bit OSes are available there are no real world gains for enabling 32-bit to make use of the remapped memory above 4GB. For most users anyway.
They are not the same. Large address aware is to do with linear address space, in which all it basically means is "this program should work correctly with linear addresses above 2GB (0x80000000)". PAE is to do with how the linear address is translated to a physical address. IMO it's usually the confusion between linear and physical that generates a lot of misinformation.
Sorry if it looks like I'm picking on you cadaveca, it's not meant that way.
Well as somebody who uses a 32-bit OS, where do I go for my flogging? I do also use 16-bit on occasion, what do I get for that? Seriously though, I will also use 64-bit, whatever works best for what I am doing at the time.
Probably can skip the flogging as Mussels will probably want to kill me after sidetracking this thread.
Well i have dual boot on my rig 32bit XP pro & 64bit win 7. If 32bit is so inferior why is it 3Dmark06 & furmark score higher wen running on xp ?
maybe because xp is less resource drawing which means it has more expendable resource for applications
xp is ready to retire to the old OS home and join DOS and windows ME!
only the 32bit version , the 64bit version is supported till 2014 from what i have read
wow they extended it then I heard it was 2011 or 2012.
no problems when people have information to add - and you've got a wall of it, and a good chunk of it seems relevant.
because they were coded for that OS. i bet if you get a program made for win 95, it'll run better in win 95 than in XP.
Separate names with a comma.