I broke your RAM cap.

General discussions about X Rebirth.

Moderator: Moderators for English X Forum

Bobucles
Posts: 2259
Joined: Fri, 25. Dec 09, 03:56
x3tc

I broke your RAM cap.

Post by Bobucles »

Rebirth wanted more than 3GB (Plus 1GB unlisted for the vid card) and then it died. I sure wish there was some way for a game to use more than 4GB!

[ external image ]

Have a crash dump to boot: http://www.gamefront.com/files/23868943 ... h+dump.zip
Alan Phipps
Moderator (English)
Moderator (English)
Posts: 31814
Joined: Fri, 16. Apr 04, 19:21
x4

Post by Alan Phipps »

"Rebirth wanted more than 3GB (Plus 1GB unlisted for the vid card)"

Nothing at all wrong with that if you have lots of RAM (16 GB from the pic?) and an x64 OS. The 32 bit X Rebirth exe can use up to nearly 4 GB and then the rest is available for video shared memory, OS, drivers, services and background applications. Graphics card VRAM is not mapped into RAM addresses in x64 OS. The crash is probably something coincidental and the dmp should tell the devs what.
A dog has a master; a cat has domestic staff.
Bobucles
Posts: 2259
Joined: Fri, 25. Dec 09, 03:56
x3tc

Post by Bobucles »

But rebirth is not an x64 program; x64 rules do not apply. It is not possible for a game to use memory that it can not map, and it is clearly mapping 4GB before exploding. I can literally count the seconds until it crashes after the memory gets that high, and it'll never get any higher.
User avatar
StarHealer
Posts: 11
Joined: Fri, 15. Nov 13, 22:09

Post by StarHealer »

Similar to me, game takes more memory, exceeds this limit, stuttering and large framedrops come in at uncommon places where it usually runs quite smooth without drops.. then freeze and serious crash.
Zothen
Posts: 215
Joined: Wed, 6. Nov 02, 20:31

Post by Zothen »

Bobucles wrote:But rebirth is not an x64 program; x64 rules do not apply. It is not possible for a game to use memory that it can not map, and it is clearly mapping 4GB before exploding. I can literally count the seconds until it crashes after the memory gets that high, and it'll never get any higher.
32bit processes with Large Memory Awareness flag can utilize up to 4GB on a 64bit system. Thats why X:R needs a 64bit system. Just saying.

Send the crash dumps to info[@]egosoft.com - they are usually happy to get the info from them.
KlintusFang
Posts: 61
Joined: Tue, 22. Oct 13, 22:45
x3tc

Post by KlintusFang »

The video card memory does not count toward the 4G limit. It's a different address space and is independently addressable. In can case, if you see the game crashing just as its memory usage starts increasing above normal levels, all that really means is that the game likely has a memory leak.

I'm hard pressed to think of a game that didn't have memory leaks when it was released so it wouldn't at all be surprising if X-Rebirth had a few.
CBJ
EGOSOFT
EGOSOFT
Posts: 54307
Joined: Tue, 29. Apr 03, 00:56
x4

Post by CBJ »

Bobucles wrote:But rebirth is not an x64 program; x64 rules do not apply.
You are confusing the "rules" for 64-bit Windows and those for 64-bit applications. Under 64-bit Windows, a 32-bit application with the LAA flag set has access to the full 4GB memory range, unencumbered by things like graphics card memory.
Actium
Posts: 6
Joined: Fri, 24. Oct 08, 16:17
x3tc

Post by Actium »

CBJ wrote:You are confusing the "rules" for 64-bit Windows and those for 64-bit applications. Under 64-bit Windows, a 32-bit application with the LAA flag set has access to the full 4GB memory range, unencumbered by things like graphics card memory.
See this MSDN article for the technical details: http://msdn.microsoft.com/en-us/library ... ory_limits
dmk
Posts: 682
Joined: Fri, 25. Nov 05, 00:59
x4

Post by dmk »

http://forums.unknownworlds.com/discuss ... we-need-it
Why can't windows and VRAM use the free space on the 64 bit side? The 32 bit application wouldn't know they existed if something got assigned outside the programs 4294967295 possible memory addresses. So it has to stay within the limit of 4gb.
again thanks for developers
who did not think when write code which can't be just compiled as 64 bit application - because most problems of heavy system (16 gb ram, > 2gb video) roots here using 2gb video means that for game itself leaved < 2gb of memory.
CBJ
EGOSOFT
EGOSOFT
Posts: 54307
Joined: Tue, 29. Apr 03, 00:56
x4

Post by CBJ »

Once again, that is incorrect. Under 64-bit Windows, which is specified under the system requirements, the game has access to up to 4GB, which is more than it actually needs.
dmk
Posts: 682
Joined: Fri, 25. Nov 05, 00:59
x4

Post by dmk »

(as many players pointed out) I also never see it using more than 3gb,
even when heavy short time hanging (?swapping?)
(having 1.2gb video ram).

so based on my personal experience I will trust to link and quote from previous post i.e. all texture and model memory still occupy application address space.
i.e. game could use 4gb if it not using video memory for textures and 3d models, but those objects duplicated in main memory and still maps into application address space, because their handles is pointers.

although http://stackoverflow.com/questions/5234 ... pplication
but I think that is driver dependent
(for example opengl is not allowing that.)
User avatar
bumpinthenight
Posts: 118
Joined: Thu, 5. Jul 07, 20:58
x3tc

Post by bumpinthenight »

CBJ wrote:Once again, that is incorrect. Under 64-bit Windows, which is specified under the system requirements, the game has access to up to 4GB, which is more than it actually needs.
\

Hi, how do you think an application manipulates the contents of the video platform's memory space, then? 4GB means the total between system and vram combined, that's the max a 32bit application can map and utilize.

Same crap happened back with Skyrim as well, I'd watch Skyrim chew up about 2GB of system memory and because I'm running 5760x1080 with mods it'd typically be already consuming over 2GB of vram per card...crash. Crash. 32bit is not enough for X and yet you guys keep trying to defend it with pseudo understanding of memory models. 32bit + LAA is not enough and no one has even tried to give a proper reason why the 64bit executable was never considered. You've already gone with saying 32bit OSes aren't supported so there is literally no reason not to make the exe 64bit and be done with it.

This is yet another reason I am currently seeking a refund from Steam, its obvious you guys lack the technical capability to make this game run properly and refuse to admit it.
Za ri'gh: i2600K @ 4.6Ghz, 3xEVGA GTX580/3GB Eds, 3x24" LEDs, yada yada yada.
larsig
Posts: 9
Joined: Tue, 13. Dec 11, 14:39

Post by larsig »

bumpinthenight wrote:
CBJ wrote:Once again, that is incorrect. Under 64-bit Windows, which is specified under the system requirements, the game has access to up to 4GB, which is more than it actually needs.
\

Hi, how do you think an application manipulates the contents of the video platform's memory space, then? 4GB means the total between system and vram combined, that's the max a 32bit application can map and utilize.

Same crap happened back with Skyrim as well, I'd watch Skyrim chew up about 2GB of system memory and because I'm running 5760x1080 with mods it'd typically be already consuming over 2GB of vram per card...crash. Crash. 32bit is not enough for X and yet you guys keep trying to defend it with pseudo understanding of memory models. 32bit + LAA is not enough and no one has even tried to give a proper reason why the 64bit executable was never considered. You've already gone with saying 32bit OSes aren't supported so there is literally no reason not to make the exe 64bit and be done with it.

This is yet another reason I am currently seeking a refund from Steam, its obvious you guys lack the technical capability to make this game run properly and refuse to admit it.
You clearly don't understand how vram is manipulated. It is not addressed in the same fashion as ram that is accessed by the cpu. You cannot hold a pointer to an address in vram and use that pointer in the same fashion for cpu-based operations. Thus it does not consume the address space.

Now there is some address space consumed by the gfx card and other hardware, because that is how they are accessed and controlled by the program. However this is never the full amount of vram available. Otherwise you would literally not be able to use a 4gb gfx card on a 32 bit os as the entire address space would be consumed. Actually, you wont be able to use a 2gb gfx card in most setups.

Edit: So that does mean that he's technically wrong, the game does not have full access to 4gb for storage of game data. It's closer to 3.5-3.75gb. But it's not 3gb for a 1gb card or 2gb for a 2gb card.
Last edited by larsig on Sun, 24. Nov 13, 00:49, edited 1 time in total.
Norsk
Posts: 67
Joined: Wed, 6. Nov 13, 19:13

Post by Norsk »

Out of curiosity CBJ do you know why Egosoft decided not to make a 64 bit application?
SyberSmoke
Posts: 655
Joined: Sat, 11. Feb 12, 04:03
x4

Post by SyberSmoke »

Norsk wrote:Out of curiosity CBJ do you know why Egosoft decided not to make a 64 bit application?
More then likely the cost of developing a 64bit application was not cost effective for the benefits it provides. IF I understand it right, the only things that you get from making an application 64bit is greater address space and a higher level of calculation precision. Since the game should run well with in 4gig of space and the game does not need the added precision, the cost did not out weight the benefits.

Best guess and why many other games with far more complex math have not done it. Well that and it can become a very buggy mess very quickly.
Raijan
Posts: 7
Joined: Sat, 16. Nov 13, 14:06

Post by Raijan »

larsig wrote:
bumpinthenight wrote:
CBJ wrote:Once again, that is incorrect. Under 64-bit Windows, which is specified under the system requirements, the game has access to up to 4GB, which is more than it actually needs.
\

Hi, how do you think an application manipulates the contents of the video platform's memory space, then? 4GB means the total between system and vram combined, that's the max a 32bit application can map and utilize.

Same crap happened back with Skyrim as well, I'd watch Skyrim chew up about 2GB of system memory and because I'm running 5760x1080 with mods it'd typically be already consuming over 2GB of vram per card...crash. Crash. 32bit is not enough for X and yet you guys keep trying to defend it with pseudo understanding of memory models. 32bit + LAA is not enough and no one has even tried to give a proper reason why the 64bit executable was never considered. You've already gone with saying 32bit OSes aren't supported so there is literally no reason not to make the exe 64bit and be done with it.

This is yet another reason I am currently seeking a refund from Steam, its obvious you guys lack the technical capability to make this game run properly and refuse to admit it.
You clearly don't understand how vram is manipulated. It is not addressed in the same fashion as ram that is accessed by the cpu. You cannot hold a pointer to an address in vram and use that pointer in the same fashion for cpu-based operations. Thus it does not consume the address space.

Now there is some address space consumed by the gfx card and other hardware, because that is how they are accessed and controlled by the program. However this is never the full amount of vram available. Otherwise you would literally not be able to use a 4gb gfx card on a 32 bit os as the entire address space would be consumed. Actually, you wont be able to use a 2gb gfx card in most setups.

Edit: So that does mean that he's technically wrong, the game does not have full access to 4gb for storage of game data. It's closer to 3.5-3.75gb. But it's not 3gb for a 1gb card or 2gb for a 2gb card.
Which would explain why one of my friends who can play is saying it'll hit 3.3-3.4GB+ of ram (Windows process display) before it crashes, Vram and Ram start fighting for the allocation and the whole thing falls over.
Would love to test that by keeping a tab on both the Vram and system ram levels but I still haven't been able to start the game yet. :x
User avatar
bumpinthenight
Posts: 118
Joined: Thu, 5. Jul 07, 20:58
x3tc

Post by bumpinthenight »

larsig wrote:You clearly don't understand how vram is manipulated. It is not addressed in the same fashion as ram that is accessed by the cpu. You cannot hold a pointer to an address in vram and use that pointer in the same fashion for cpu-based operations. Thus it does not consume the address space.

Now there is some address space consumed by the gfx card and other hardware, because that is how they are accessed and controlled by the program. However this is never the full amount of vram available. Otherwise you would literally not be able to use a 4gb gfx card on a 32 bit os as the entire address space would be consumed. Actually, you wont be able to use a 2gb gfx card in most setups.

Edit: So that does mean that he's technically wrong, the game does not have full access to 4gb for storage of game data. It's closer to 3.5-3.75gb. But it's not 3gb for a 1gb card or 2gb for a 2gb card.
Here's my understanding: Something has to keep track of where everything in the video card's memory lives, this is the driver's responsibility but your program still indirectly does the tasking and managing via directX which is doing the virtual memory manipulations. Your code isn't directly talking to the pointers, its calls to DirectX are doing that. But DirectX isn't some service your application polls, its a library your application has incorporated. Your 32bit application, both count towards the 2^32 limitation.

That's my understanding, and no its not like the second a game loads it needs to map the entire card's memory, it only needs to alloc what it needs and believe me it was pretty apparent via watching Nvidia Inspector's vram graph + Process monitor that whenever a 32bit game's combined quantity reaches 2^32 it'd crash. Skyrim was the only one where this became a fairly common annoyance but hearing that Rebirth is capable of using 3GB of system memory makes me wary since I know its already commonly eating 2.3-2.6GB of vram whenever I'm watching it.

Thank god that applications don't need to directly map the raw video memory and my 64bit driver gets that honour, us SLI users would be shafted way way worse.
Last edited by bumpinthenight on Sun, 24. Nov 13, 01:29, edited 1 time in total.
Za ri'gh: i2600K @ 4.6Ghz, 3xEVGA GTX580/3GB Eds, 3x24" LEDs, yada yada yada.
Crix
Posts: 49
Joined: Fri, 15. Nov 13, 01:08
x3tc

Post by Crix »

And this is why I'm frustrated with Egosoft.
Raijan
Posts: 7
Joined: Sat, 16. Nov 13, 14:06

Post by Raijan »

bumpinthenight wrote:
larsig wrote:You clearly don't understand how vram is manipulated. It is not addressed in the same fashion as ram that is accessed by the cpu. You cannot hold a pointer to an address in vram and use that pointer in the same fashion for cpu-based operations. Thus it does not consume the address space.

Now there is some address space consumed by the gfx card and other hardware, because that is how they are accessed and controlled by the program. However this is never the full amount of vram available. Otherwise you would literally not be able to use a 4gb gfx card on a 32 bit os as the entire address space would be consumed. Actually, you wont be able to use a 2gb gfx card in most setups.

Edit: So that does mean that he's technically wrong, the game does not have full access to 4gb for storage of game data. It's closer to 3.5-3.75gb. But it's not 3gb for a 1gb card or 2gb for a 2gb card.
Here's my understanding: Something has to keep track of where everything in the video card's memory lives, this is the driver's responsibility but your program still indirectly does the tasking and managing via directX which is doing the virtual memory manipulations. Your code isn't directly talking to the pointers, its calls to DirectX are doing that. But DirectX isn't some service your application polls, its a library your application has incorporated. Your 32bit application, both count towards the 2^32 limitation.

That's my understanding, and no its not like the second a game loads it needs to map the entire card's memory, it only needs to alloc what it needs and believe me it was pretty apparent via watching Nvidia Inspector's vram graph + Process monitor that whenever a 32bit game's combined quantity reaches 2^32 it'd crash. Skyrim was the only one where this became a fairly common annoyance but hearing that Rebirth is capable of using 3GB of system memory makes me wary since I know its already commonly eating 2.3-2.6GB of vram whenever I'm watching it.

Thank god that applications don't need to directly map the raw video memory and my 64bit driver gets that honour, us SLI users would be shafted way way worse.
It difficult to know how much of the GPU memory consumed is allocated actually from within the application and how much is being handled by separate GPU processes though (Caches for filtering etc). Have no idea on how Nvidia and AMD drivers handle that kind of stuff as it's well outside of my area of development work -_-;
Would be very interesting to find out the real and final answer though.
User avatar
bumpinthenight
Posts: 118
Joined: Thu, 5. Jul 07, 20:58
x3tc

Post by bumpinthenight »

Raijan wrote:It difficult to know how much of the GPU memory consumed is allocated actually from within the application and how much is being handled by separate GPU processes though (Caches for filtering etc). Have no idea on how Nvidia and AMD drivers handle that kind of stuff as it's well outside of my area of development work -_-;
Would be very interesting to find out the real and final answer though.
Totally agreed about not knowing the exact values and same with you 3d accelerated applications aren't my area of dev experience either and its frustrating that there isn't a really nice locatable resource (that I can find at least) that definitively says what's what, all my searching inevitably leads to people mistaking the question to 32bit OS vs video card memory mapping.

I also wonder if 64bit would require going up to DX10, I haven't met many games with 64bit executables but I seem to remember that even back to Crysis 1 it was always the combo of 64 + DX10. This could be the stumbling block that is also preventing Egosoft from doing it. Beyond how the whole memory foot print would go up as well due to things like pointer references eating 8 bytes instead of 4.
Za ri'gh: i2600K @ 4.6Ghz, 3xEVGA GTX580/3GB Eds, 3x24" LEDs, yada yada yada.

Return to “X Rebirth Universe”