Mantra not using Windows virtual memory paging file

   6527   9   0
User Avatar
Member
246 posts
Joined: July 2005
Offline
Is this the expected behaviour? I'm getting out of memory mantra crashes when there is ample virtual memory available in the paging file to draw from.
User Avatar
Member
7871 posts
Joined: July 2005
Offline
How are you determining this? Recall that a 32-bit process is limited to using 2 GB of address space (including its code size), irregardless of how big your paging file is. On Windows, open up the Task Manager. Switch to the Process tab. From the top menu, choose View > Select Columns > Virtual Memory Size. In Houdini, the “memory” command is equal to the sum of Mem Usage and VM Size columns.
User Avatar
Member
246 posts
Joined: July 2005
Offline
The “memory” command returns the following info:

Memory: 448.35 MB of 702.08 MB arena size

What should I be taking from this?
User Avatar
Member
12632 posts
Joined: July 2005
Online
This is not related in a good way to Mantra's memory usage, especially if I know your renders, stu

It might be useful for Mantra to have a verbosity level that would report memory usage for every bucket rendered, no?
Jason Iversen, Technology Supervisor & FX Pipeline/R+D Lead @ Weta FX
also, http://www.odforce.net [www.odforce.net]
User Avatar
Member
7871 posts
Joined: July 2005
Offline
Er, nothing. I just mentioned Houdini as sort of a “by the way”. Mantra is it's own separate process and so doesn't depend on how much memory Houdini has used. Of course, if the combined memory usage exceeds the abilities of your machine itself, that cause it to swap and be very slow.

Depending on what you're doing, you may be able to decrease the memory usage either by halving or doubling your bucket size.
User Avatar
Member
246 posts
Joined: July 2005
Offline
When mantra finds a ray call does it immediately load everything in anticipation of a bounce or is it discriminate?
User Avatar
Member
1002 posts
Joined: July 2005
Offline
stu
When mantra finds a ray call does it immediately load everything in anticipation of a bounce or is it discriminate?

It will not load “everything”, but it will load enough to make ray intersection tests efficient for that ray. A ray actually needs to be traced in mantra for the trees to be built (ie. ray tracing accelerator construction is delayed until ray tracing actually occurs). For smooth surfaces or displacements, mantra uses a raytracing grid cache to limit memory use - you can use the -M option to limit the memory used for ray tesselations.
User Avatar
Member
246 posts
Joined: July 2005
Offline
By limiting the memory used for ray tesselations, how will the image be affected, if at all? What's a typical value?

edit: Upon further investigation it appears that e.d.w.a.r.d. had hit the nail on the head - it looks like I'm exceeding the 2 gig per process limit with the mantra operation. Stupid 32 bit processors.
User Avatar
Member
1002 posts
Joined: July 2005
Offline
In theory, the image should not be affected, as long as your displacement shaders are fully deterministic. The default value of -M is 1024 (# of grids), which maps to a cache size of roughly 10Mb, which can sometimes lead to thrashing on large scenes.

Andrew
User Avatar
Member
246 posts
Joined: July 2005
Offline
That's a good tip Andrew - it worked, thank you. It took a little longer (as expected) but it finished without me having to tile it.

And thanks to e.d.w.a.r.d. for bringing this thread to Andrew's attention.
  • Quick Links