Insanatrix 0 Posted March 18, 2013 I thought the vram mapping was fixed with dx10? It's an addressing limitation, not a API limitation. Share this post Link to post Share on other sites
Reuben5150 2 Posted March 18, 2013 Apologies for the tone in my posts earlier, i'm suffering some illness and grumpy.:( Share this post Link to post Share on other sites
batto 17 Posted March 18, 2013 http://www.bistudio.com/english/company/developers-blog/85-breaking-the-32-bit-barrier You can map portions of larger memory block (managed by 64bit OS) to your limited address space (not even a memory copy). Share this post Link to post Share on other sites
Insanatrix 0 Posted March 18, 2013 http://www.bistudio.com/english/company/developers-blog/85-breaking-the-32-bit-barrierYou can map portions of larger memory block (managed by 64bit OS) to your limited address space (not even a memory copy). You can but there's a lot of issue's with it. I assume you mean something like http://www.codeproject.com/Articles/28818/32-bit-pointers-in-a-64-bit-world http://stackoverflow.com/questions/5916959/can-a-32-bit-program-use-more-than-4gb-of-memory-on-a-64-bit-os Share this post Link to post Share on other sites
batto 17 Posted March 18, 2013 You can but there's a lot of issue's with it.I assume you mean something like http://www.codeproject.com/Articles/28818/32-bit-pointers-in-a-64-bit-world http://stackoverflow.com/questions/5916959/can-a-32-bit-program-use-more-than-4gb-of-memory-on-a-64-bit-os I mean memory mapping. I say that there are no issues. Prove me wrong ;). Share this post Link to post Share on other sites
Insanatrix 0 Posted March 18, 2013 I mean memory mapping. I say that there are no issues. Prove me wrong ;). http://en.wikipedia.org/wiki/Pointer_(computer_programming) Share this post Link to post Share on other sites
batto 17 Posted March 18, 2013 http://en.wikipedia.org/wiki/Pointer_(computer_programming) I know pointers, thanks anyway. What does it have to do with topic? Share this post Link to post Share on other sites
Insanatrix 0 Posted March 18, 2013 I know pointers, thanks anyway. What does it have to do with topic? :confused: Share this post Link to post Share on other sites
Dwarden 1125 Posted March 18, 2013 irony, just next thread complains >2GB VRAM used : http://forums.bistudio.com/showthread.php?150453-High-VRAM-usage Share this post Link to post Share on other sites
Insanatrix 0 Posted March 18, 2013 irony, just next thread complains >2GB VRAM used : http://forums.bistudio.com/showthread.php?150453-High-VRAM-usage Could be a problem with the program not releasing stored data and the Windows memory allocator pushing them into a higher addressing space so as not to exhaust addressable ram? Share this post Link to post Share on other sites
rogerx 11 Posted March 18, 2013 (edited) Thank God for Linux and/or Open Source Software. ... and Gentoo Linux. ;-) Edited March 18, 2013 by rogerx Share this post Link to post Share on other sites
Dwarden 1125 Posted March 18, 2013 Could be a problem with the program not releasing stored data and the Windows memory allocator pushing them into a higher addressing space so as not to exhaust addressable ram? VRAM != RAM ... it was about GPU memory ... Share this post Link to post Share on other sites
PuFu 4600 Posted March 18, 2013 VRAM != RAM ... it was about GPU memory ... what david means: vram = video ram, while most of your posts (Insanatrix) you used vram for virtual ram == paging file Share this post Link to post Share on other sites
Insanatrix 0 Posted March 19, 2013 (edited) what david means: vram = video ram, while most of your posts (Insanatrix) you used vram for virtual ram == paging file No, by VRAM I do mean Video Ram. I generally say Virtual Memory if I mean that. VRAM is addressed through a window using Physical system memory, and does share some of the allotted 3gb of physical system memory even when using /LAA. You use the same memory allocator to address VRAM as you do System RAM or Virtual Memory. There's no way around it except using virtual memory on a DASD to extend the limit, which is completely limited by bandwidth speeds of the DASD and or it's interface. For instance go into device manager, click view, view resources by type, select Memory and see what address's your graphics card is using. Also notice how pretty much every single device is using a memory address in the 32 bit addressing range, If you're on a 64 bit OS you'll notice that the addresses are 16 value's long instead of 8. Every device is sharing the same memory address space, then factor in the windows kernel and all the device drivers and general system process's running, so even though a program can utilize 3gb with /LAA, that doesn't even mean there's a free 3gb for it to use in that address space or that the malloc will allow it to address that much. Edited March 19, 2013 by Insanatrix Share this post Link to post Share on other sites
Dwarden 1125 Posted March 19, 2013 in Windows Vista, Windows 7, Windows 8 the DX components handle the VRAM memory allocation and on 64bit system it's not limited to application's LAA space ... http://blogs.msdn.com/b/windowsvistanow/archive/2008/03/11/virtual-address-space-usage-in-a-windows-vista-gaming-environment.aspx Due to WDDM and DX10/10.1/11/11.1 application doesn't need to duplicate video memory into system's RAM like earlier DirectX http://support.microsoft.com/kb/940105 interesting facts: A. 32bit Windows Vista, Seven, 8 handles the VRAM operations way better than XP (this is one truly major steps over XP) even DX9 title runs less often out of memory than on XP but it's nothing compared to use of 64bit OS Vista> and DX10+ http://msdn.microsoft.com/en-us/windows/hardware/gg487371.aspx B. now there lays irony, Windows Vista, 7, 8 32bit can address and use 4>GB easily but MS don't allow it by default (and it seems also by license terms) http://www.geoffchappell.com/notes/windows/license/memory.htm I suggest read the whole article to fully grasp it ... (easier for MS marketing to push 64bit OSes over 32bit , tho easier focus on 64bit drivers than PAE compatibility) C. Windows 7 WDDM 1.1 is way improved over Vista's 1.0 and saves You memory usage http://www.tomshardware.com/news/windows-graphics-ram-desktop-memory,7644.html D. Windows 8 WDDM 1.2 might works even better with the RAM and VRAM resources than Windows 7 but the improvements aren't as dramatic change as vs Vista/Xp (feel free to educate me about W8 if i'm wrong) E. some notes about memory limits of each OS (note that B. sort of 'flips the truth') http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx#physical_memory_limits_windows_7 http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx#memory_limits http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx#how_graphics_cards_and_other_devices_affect_memory_limits if You search enough you might find the TechNet / MS / etc. blogs about all above ... quite possible I missed some good or important document on VRAM memory in Windows 7/8 so please post it ... Share this post Link to post Share on other sites
Insanatrix 0 Posted March 19, 2013 (edited) in Windows Vista, Windows 7, Windows 8 the DX components handle the VRAM memory allocation and on 64bit system it's not limited to application's LAA space ... http://blogs.msdn.com/b/windowsvistanow/archive/2008/03/11/virtual-address-space-usage-in-a-windows-vista-gaming-environment.aspx Due to WDDM and DX10/10.1/11/11.1 application doesn't need to duplicate video memory into system's RAM like earlier DirectX http://support.microsoft.com/kb/940105 interesting facts: A. 32bit Windows Vista, Seven, 8 handles the VRAM operations way better than XP (this is one truly major steps over XP) even DX9 title runs less often out of memory than on XP but it's nothing compared to use of 64bit OS Vista> and DX10+ http://msdn.microsoft.com/en-us/windows/hardware/gg487371.aspx B. now there lays irony, Windows Vista, 7, 8 32bit can address and use 4>GB easily but MS don't allow it by default (and it seems also by license terms) http://www.geoffchappell.com/notes/windows/license/memory.htm I suggest read the whole article to fully grasp it ... (easier for MS marketing to push 64bit OSes over 32bit , tho easier focus on 64bit drivers than PAE compatibility) C. Windows 7 WDDM 1.1 is way improved over Vista's 1.0 and saves You memory usage http://www.tomshardware.com/news/windows-graphics-ram-desktop-memory,7644.html D. Windows 8 WDDM 1.2 might works even better with the RAM and VRAM resources than Windows 7 but the improvements aren't as dramatic change as vs Vista/Xp (feel free to educate me about W8 if i'm wrong) E. some notes about memory limits of each OS (note that B. sort of 'flips the truth') http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx#physical_memory_limits_windows_7 http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx#memory_limits http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx#how_graphics_cards_and_other_devices_affect_memory_limits if You search enough you might find the TechNet / MS / etc. blogs about all above ... quite possible I missed some good or important document on VRAM memory in Windows 7/8 so please post it ... On your first link, data still passes through physical memory before it's sent along the bus to the GPU and then to VRAM. With WDDM it no longer needs to keep a physical 1:1 copy stored in RAM, rather it can use virtual address space for that now. That's all that article is saying, nothing about it not needing a physical memory window to address to VRAM. The window the OS uses to send data from virtual memory to system memory and then to VRAM is allocated and can be seen through the device manager by looking at assigned memory addresses to devices. It's usually anywhere from 512mb-1gb big depending on VRAM size. Those addresses are static, they are not dynamic and they cannot be addressed for anything else as they are reserved for that specific use. Now that's not to say that a program can't utilize them, but they can only be utilized for the specific purpose of addressing to VRAM. It's definitely a better implementation, as who would want to mirror their 4gb Titan, but you are simply misconstruing not needing to hold a physical memory copy of whats running in VRAM as not needing any physical memory to address to VRAM. That's about all your articles say, which is true with the WDDM driver model. It still does not mean that there aren't physical memory addresses that are reserved, or that you cannot view those and see what they are and what they are used for. Honestly I would expect a developer to know these things and have a better understanding of them. A lot depends also on the paths and calls used, How efficient they are and whether they are purely DX11 or still have some instances of DX9. Edited March 20, 2013 by Insanatrix Share this post Link to post Share on other sites
Leon86 13 Posted March 20, 2013 (edited) I read a bit of the links dwarden posted, if I understand it correctly the reason a game consumes virtual address space for the vram it uses is to create the in-ram copy of the video resources. So if you dont have to do that in dx10 or higher you dont have to consume all the address space, and the reason they even bothered with it was not for physical but for virtual memory use. http://msdn.microsoft.com/en-us/windows/hardware/gg487371.aspx Edited March 20, 2013 by Leon86 Share this post Link to post Share on other sites