Crashes during Render build. Use more memory with 32-bit Win

System info:
CPU = Intel Core i5 750 @ 2.67GHz
RAM = 3GB (upgraded to 6GB, see later posts)
GPU = GEForce GTX760 with 4GB
Windows 7 Home Premium / 32bit

When I render large models Blender crashes: no warning no screens, just out of Blender.
The crash happens as during building calculations, once tiles start on screen it will finish without problem
I am used to it and by now save my work most times before F12.
When I re-open Blender, the same setup renders usually ok. Command line always works.

Re-opening Blender seems to purge memory and give full access to Render and this results (?) in troubleless render build.

Any experience with same? Work-arounds?

You can turn off global undo or change the memory limit for it.



But a better solution would be to buy RAM for your computer, 8GB DDR3 kits are really cheap these days.

Ty, yes I was shocked how little RAM when I looked it up to post this.
Still is it RAM you think? It’s a GPU render. Is it the system or GPU memory that’s relative during render build?

PS: Note that Blender does not crash under any other conditions… Trying hard to think of problems, any systematic crash problems aside from the above, say during modelling, mapping, editing… None, none enough to remember

For the most part anything that’s stored on VRAM needs to also exist in system memory, Blender is pretty good at memory management but 3GB of RAM is just too small amount for big scenes even if they are rendered on the GPU.

Is that Windows 7 Home Premium 64bit? If not, you might have even less RAM at your disposal: AFAIK any 32bit Windows version can only assign as much as 2 GB RAM to any software process. So, even if you have 3 GB system RAM, Blender will max out at 2 GB and most likely crash.

Thanks Ikari

It is 32-bit
Really?? then 32-bit is almost useless. Having 64-bit OS is such an important requirement then!

Hi, you can activate your 3 GB until you update your system to 64 bit/more RAM.

https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/How-to-enable-a-3GB-switch-on-Windows-Vista-Windows-7-or-Windows-X

You can activate a Windows 7 64 with your 32 bit key, download iso, create DVD, kick your Win 32. :slight_smile:
Search for Windows 7 iso.

Cheers, mib

That link isn’t working, unfortunately.
Activating a 64 release with a 32 bit key is one way. I think this is what you are talking about?
I am reading about a kernel change (with hex editor) and alt-boot. Booting with the modified kernel will let one use the extra memory.

It might be easier to just set up a dual-boot system with a current version of Linux 64bit:
Linux is free (in any sense of the word), will offer 64bit support and even be a bit faster than Windows (better compilers). And because of the dual-boot you don’t have to fiddle with your Windows working system.

https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjbkamKxpjKAhXkvnIKHSvRBs0QFggiMAA&url=http%3A%2F%2Fknowledge.autodesk.com%2Fsupport%2Fautocad%2Ftroubleshooting%2Fcaas%2Fsfdcarticles%2Fsfdcarticles%2FHow-to-enable-a-3GB-switch-on-Windows-Vista-Windows-7-or-Windows-XP-s.html&usg=AFQjCNHkG2i8MY_TFUM5QKBAte1h8mj4AQ

Ha, copy paste error, mib

I’m not convinced it’s exclusively a H/W issue. I think there’s a memory leak. I have an 8 Gig system + 2 Gig video RAM. I almost always render on the GPU (so 2 Gig render limit), and I watch the memory in use. I can render a scene that tops out at 650 Mb or so, and if I render repeatedly, at some point I’ll get the (ungraceful) crash out of Blender.

restarting, and rendering is sweet again. This is on 64 Bit Linux, but it sure as hell behaves and sounds like a leak to me.

Hi Rioken, if ou have a file you can reproduce the crash you can make a bug report.
Link to bugtracker is in the Blender Help menu.
I often render files 10-15 times and never got a crash, specs in signature

Cheers, mib

I upgraded my PC from 3GB to 6GB.
As already mentioned in previous posts, this alone is not enough. Windows 7/32 only uses up to 4GB, and there is a ridiculous amount set aside for system hardware use. See ResMon.exe output below (they gray in the memory bar)


Even worse, the memory addition may help running many processes (programs) concurrently, but I soon found that the reason Blender crashes building a render of a large scene is the 2GB per process limit, which is still there after adding memory. When I press F12 I would quickly switch to Resmon, as soon as the memory used by Blender past 1.950+ GB it would crash out

The solution to 32-bit problems is in the following steps :

  • turning on PAE will allow access to more total memory. This is a bootload configuration option
  • in combination with PAE enable, patching the kernel will get rid of the system hardware reserved memory. Steps 1&2 will give you full 6GB usable memory! (in my case all the physical RAM), I hear it works for 8GB and I don’t know what happens with even more…
  • You must roll-back your NVidia driver to version 332.21 (2013) the last version compliant with PAE, later on NVidia stopped supporting PAE
  • Last step: use the boot configuration options to allow more mem per process. BCDEdit /set increaseuserva 3072

Now take a look at Resmon with Blender running and using more than 2GB! Note how all memory is usable!!


Gray bar, system hardware used: 9MB only! (compare with above)
Green bar: memory in use 3278MB. Notice Box and Dropbox are running and later I added Firefox plus others, no problem)
Blue bar: memory on hold 2259MB (varies widely and quickly on demand, like free)
Light Blue: free memory 480MB, totally unused as yet
Overall 6144MB

It works smooth!

That sounds like an awful lot of hackwork just to get an outdated (32bit) OS to run properly. Is there a special reason to not update to 64bit?

It was some work yes. The research was the most work, with a step-by-step guide it is should last about 15 minutes. I researched and experimented for about 8 hours. Once completed every other setting/program on my computer, was as before, no learning/ adjustment phase, expense.

Reasons:

  • A full OS system change with all apps running and tested and all preferences set to what you already like for each one can easily fully take up a whole weekend with repercussions to be seen later.
  • Dual booting, with both OS’s is tiring when not all apps are running in both, you end up rebooting all the time. Not a universally flexible option
  • It was suggested that the product key for Win7/32 would work with Win7/64. I believe this is not true for Windows OEM, like mine. I know there are ways to stall authentication or even trick-authenticate, but I am not willing to expose my office to legal, copyright issues.

I have 3 workstations in my architectural office, all legal software, mostly Open Source or freeware. I have added dual boot to my personal computer (laptop, not the one discussed above) Win7/32 + Ubuntu 14/64. Blender certainly flies in Linux ! with all 64bit memory functionality. But you see I have to flip OS’s to do other work and I can’t ask of employees to learn 2 operating systems, it’s counter-productive. Unfortunately because of drivers to devices and some programs I cannot do away with Windows.

Of course I would buy any new computer with 64bit OS

For an outline of what you will be doing check post #13 above.
You could apply the necessary boot-loading parameters to your current Windows setup, but I recommend against it.
In order not to modify your normal boot procedure, kernel, etc, it is best that you create a separate boot loader entry.
That way if the procedure does not result in a successful boot, restarting the computer will offer you the boot selection menu, where you can select your original “normal” boot.
DISCLAIMER: Nevertheless I believe you must be computer proficient before you try this, not necessarily by proffesion (i’m an amateur in computers). You will be modifying basic OS parameters. In particular, the patch is low level modification with hex editor (my first time), but you will be modifying a kernel copy, keeping the original for a separate boot selection.

If you Google keyphrases like : “Windows 32bit memory kernel patch” you will find several guidelines online.
Since I read many before I decided how-to and finally succeeded I will relate my own steps.

STEP 1. Copy the Windows Kernel from \Windows\System32 to a separate folder. You will be making changes in this folder only not the original (near the end you will copy the modified kernel, renamed, back into System32). You can name the folder and the kernel copy anyway you like, it does not matter.
This link details this step. (this and the following two links are in German, I used Google-translate to English, and understood them just fine)Note I used the suggested HEX editor TinyHexer, you will find a link for that in the webpage above. Be careful TinyHexer deletes two characters (Word = pair of Bytes) with every delete keystrike, but writing a Word is typing 2 hexadecimal characters, make sure that the file words before and after the changed part remain unaltered!

Also note that there exist ready-modified kernels for this patch, but I would be reluctant to use one, because they are often considered to contain viruses, which may or may not be true and because there are several releases of the kernel for each Windows version.

STEP 2. Certify and sign the modified kernel. If you have Windows Software Development Kit SDK or Visual studio you have the two tools needed if not This link tells you how to get them. (next step also in the above, same webpage guide)
Use the commands makecert and signtool as detailed here (next step also in the above, same webpage guide) and copy the modified renamed file back to System32 folder

STEP 3. Open a command line with adminstrator privileges. bcdedit is the command that edits boot menu configurations. Without parameters it shows the existing configuration. Make a copy of the current (your “normal”) configuration as follows :bcdedit /copy {current} /d “Windows 7-32bit with Xtended Memory”

Next you will modifying this copy, adding your patched kernel, enabling PAE and increasing memory available to applications. So make sure your original boot configuration doesn’t already support PAE and increased memory (it won’t if you and yours have not edited before, it doesn’t by default).Note after you copy the {current} boot entry the name of the boot entry you will be modifying is a long alphanumerical identifier and is unique to your stystem, copy it carefully, and substitue between the curly brackets
bcdedit /set {…} kernel YourPatchedKernelNameHere.exe
bcdedit /set {…} testsigning on
bcdedit /set {…} pae ForceEnable

These boot options however are not enough to get the full benefits for Blender, to give Blender more than 2GB add the following line to the bootmenu: bcdedit /set {…} increaseuserva 3072
will give you 3GB (the maximum)

STEP 4. Your boot menu was completed above but do not reboot yet. You have added pae enable to the alternative boot. Though PAE compatiblity is generally and widely followed there are drivers that will not work with it! Among the most complicated and memory demanding are of course those for graphics cards. So when you do eventually boot first try entry 1 the standard boot sequence, make sure all works as usual, then reboot and try your new boot entry.
Many of us Blender users use NVidia. Nvidia drivers have stopped PAE support after release version 332.21 (2014).
Download that from NVidia page here
Make sure your graphics card is listed under the “Supported” tag (I have a GTX 760, but this driver is for many-many more).
Run the download to roll back your video driver.

STEP 5. Now reboot, enter menu option 1 your pre-existing “normal” boot. Check everything is as expected. Check your NVidia driver.
Reboot and this time select the new extended memory boot configuration you just added. In case you are wondering, without the graphics driver rollback your screen will be garbage, since the video driver confuses memory during the Windows User Selection screen (been there… just force a restart and choose the original boot when the menu shows up again. Do not allow startup repair or it will delete the kernel patch and the boot menu you just made)

I have used this boot configuration sucessfully. My crashes, that were regularly reproduceable in large scenes are FINISHED, NO MORE CRASHES!
If you have a different experience or if other drivers suddenly cause problems, I suggest you post in this thread to let other know too.

15.01.2016 Now installed in two computers for a few days. Rock solid steady

I kept building up my model and I managed to go way past the capabilities of Blender on standard 32-bit Win7 with the memory tweak. In the end I also wanted to boost output quality for still images of about 3000x3000 pixels, whereas I had been working with about 2000X2000 during project development.

Then things started to fall apart especially if I would leave say an extra layer on. It may also be that high resolutions need to reserve consecutive memory space in an array - and the extra mem assigned from 2GB to 3GB, is not consecutive, I think.

I installed Ubuntu 14.04 x64bit, double boot. Wow (I’ve used it on my laptop, much lower spec, just to speed up basic modelling - but on a tower with a GTX760, rendering is very fast and the memory handling is a level above).
Basic steps :

  • In Windows use DiskManagement utility, diskmgmt.msc, take some space from Windows and leave it free (not assigned, not formatted Ubuntu installation will take care of it). To do this you must have “reasonable” space in a contiguous disk space available, before you start. You won’t need to defrag first if you have an empty contiguous portion DiskMgmt will know, if you don’t again it will know, it won’t mess up space used by Windows. I allotted 40 out of about 400GB. Reboot after the disk management before you install Ubuntu, to make sure Windows is settled with the new partitions sizing.
  • Use a downloaded install Ubuntu X64 from CD/DVD or USB. Ubuntu will take care of itself, installing by default settings in the empty space. When it is done you can mount your Windows disk just by clicking on it from Nautilus and share all your data there. No need to keep double data.
  • Install NVIDIA latest drivers : Ubuntu installs with Unity video drivers, so download the latest from the native NVIDIA site. Software Center does not have nearly the latest. Seek the instructions to leave the gui and down the X-server to replace the Unity graphics. The install script will add to your configuration folder and reboot to replace the drivers completely. Just follow the instructions, it worked for me
  • Download and install Blender. By moving the Blender folder to /usr/local it is in a more sheltered (from accidental deletion) location along with other program installations. Adding a link in the /usr/local/bin folder will enable Blender to be run as an internal program without a full path and will allow you to pin a link to Nautilus launcher. (So if you batch render you can change to your blender files directory and run Blender )

So, come to worse I have Dual boot, Linux not Windows. Oh-well at least I do this only for heavy files and for final renders and share the same disk space for data (on the Windows partition). Dual boot goes through the Ubuntu boot loader first, then if you choose Windows goes to the Windows boot loader options with the memory advantage tweak. You can arrange defaults and timeouts for options in both menus, even make defaults variable according to your previous boot.

Told ya…:wink: