Blender 2.6x versions on SSE1 or MMX instructions

I’m unable to find any system requirements of the older versions online, but I do remember 2.6x versions being identical to the current versions.

Anyways, I was curious about migrating SSE1 based machines to operating systems such as Lunix, and if this would allow them to run the 2.6x versions of Blender. I don’t like the older Blender versions at all.

Basically I’m trying to make my main animation workstation a 566Mhz celeron based machine or a Pentium iii machine, and perhaps have a render farm of newer machines to speed up rendering nearby.

Do any of you know how I could go about perhaps porting Blender 2.69 (preferably) to older machines? If I remember correctly last time I launched a newer Blender version on an SSE1 based machine an error message displayed that SSE2 instructions were required to run Blender 2.6x. I would like to learn Python myself and port Blender to that but programming is an incredibly tedious thing for me and it’s very difficult to get me to rarely study C++ for my games as is.


Apologies if this topic doesn’t belong here.

You will need to build Blender yourself, using different compiler flags. That is going to involve modifying the CMAKE configuration or the CMAKE scripts themselves. It may also be the case that some of the source code requires SSE2 (without fallback), in which case you’d need to somehow get rid of that code.

I don’t have a build setup for Blender anymore, so I have no idea if it’s a simple compiler flag switch, or if the required changes go deeper. Building C/C++ software is one of my least favorite things in the world, so even if I did have a setup, I would not give support for it. You can try finding support on #blendercoders on IRC (freenet).

I don’t know your personal situation leading you to run Blender on ancient hardware, but this undertaking could be a huge time sink during which you will learn things that are probably useless, going forward. There should be a more valuable use for your time.

Yay, a reply! I was not expecting a reply since this was a heavy, oddball topic.

I will look into “building Blender” later. I doubt instruction sets are as easy as some compiler flags since the Blender versions before 2.6x’s are almost completely different in how they work, but under the hood they have the same basic principles.

My personal situation leading me to run Blender on ancient hardware is a preference option, I personally enjoy using older systems and the idea of having a workstation from the 90’s and using it natively over 20 years later is such a neat idea for me. Whenever I get the game I’m making into a working state, I will lug my 50 pound 1995 Gateway 2000 P5-120 into a public gaming place and play the game there, perhaps pick up some friends/fans. On top of that if I got the 2.6x versions of Blender running on older hardware I could do what I stated previously except work on animations and stuff.

I decided to try running Blender in high priority via task manager on my 2001 Gateway machine which features a 1.50Ghz Willamette Pentium 4, which as you may know is significantly slower than the previous generation Pentium iii, and the result was surprising. No performance issues. The workflow was fast and fluid. So, with this information I can gather that the 2.6x version of Blender would run fantastic on the Pentium iii family, and likewise on the Pentium ii and 1. The fastest Pentium ii’s probably showing identical performance to the slowest Willamette Pentium 4’s or Willamette Celerons. Though this is just my speculation, since I’m in belief that Blender 2.6x+ versions were designed specifically around SSE2 instructions, though I could be wrong and like you said it could simply be a compiler flag which would be a life saver.

I would very much take the time to port Blender 2.6x+ versions to older instruction sets as again, I have a passion for vintage hardware. Though the question comes up if I should simply make my own in house development software both for my game and as an animation software, but that’s a much, much bigger and more time consuming goal then just simply porting Blender to more basic instruction sets.

I will give #blendercoders on IRC a try as well and see where I can get with that.

Thanks for the reply. : )

Also due to your Homer profile picture I can’t help but to read everything you post in Homer’s voice, it’s funny. : )

If the C/C++ code doesn’t use these instructions explicitly, then it really is just a compiler flag (e.g. -msse2). The compiler generates actual CPU instructions from the high-level code - that’s kind of the whole point behind a compiler.

Even if the code makes use of SSE instructions explicitly (which is usually needed for best performance), it’s common to provide a fallback and segregate that code out using preprocessor directives (#ifdef).

Either cases are going to be configured by the build system (CMAKE).

Now that I think of it, somebody on these forums has been able to compile both Blender and Cycles successfully for a Raspberry PI (ARM architecture) which obviously doesn’t have SSE (though it has similar thing called NEON). I’d guess it must be possible to compile without SSE just by changing the build config.

My personal situation leading me to run Blender on ancient hardware is a preference option, I personally enjoy using older systems and the idea of having a workstation from the 90’s and using it natively over 20 years later is such a neat idea for me.

That’s a fairly odd hobby to have. However, if you’re really going down that rabbit hole, maybe you could become a maintainer for legacy systems, which I’d assume are still in use in some parts of the world.

I can gather that the 2.6x version of Blender would run fantastic on the Pentium iii family, and likewise on the Pentium ii and 1.

I wouldn’t necessarily push it that far. You’ll likely run out of memory, at which point nothing will run.

The fastest Pentium ii’s probably showing identical performance to the slowest Willamette Pentium 4’s or Willamette Celerons. Though this is just my speculation, since I’m in belief that Blender 2.6x+ versions were designed specifically around SSE2 instructions, though I could be wrong and like you said it could simply be a compiler flag which would be a life saver.

I doubt Blender uses SSE explicitly in many places. SSE/SIMD code is a pain to write and to maintain. It’s definitely not “designed around SSE2”.

Though the question comes up if I should simply make my own in house development software both for my game and as an animation software, but that’s a much, much bigger and more time consuming goal then just simply porting Blender to more basic instruction sets.

I’d say that would be much more pleasant and rewarding.

Going forward, Blender will raise the requirements even further, especially in the GPU area. Having said that, I’m sure a legacy maintainer (really any sort of maintainer) would be very welcome to the project.

Hah, that’s awesome!

I definitely should. : )

As long as enough RAM is included, memory will not run out. I should also mention that the Willamette Pentium 4’s come with 256KB of cache, which I have extensively tested and run brilliantly. Pentium iii’s have twice as much L2 cache (512MB) so the performance will be over twice the amount due to the double cache and more efficient processing architecture. Pentium ii’s also have 512MB of L2 cache, making them also have a lot of room to stretch. The lowest amount of memory I have ever tried the older versions of Blender with was 32MB paired with Windows 2000, which also ran fine.

Due to Adobe Photoshop CS5’s requirements, the lowest I can probably go memory wise on this workstation of mine is 128MB of RAM. With the memory hog Service Pack 3 of Windows XP, 128MB of RAM in Adobe Photoshop CS5 has some freezing issues. 256MB runs just fine. But again, this is due to the OS wanting 256MB of RAM by default. So when you have exactly that, the OS can grant about 65% of that, and when you go down to 128, then things get sticky and the OS only grants about 64MB.

I will try to get a small IDE hard drive and install Windows XP service pack 1 and 2 and see how their memory management is.

Yeah probably.

Indeed!^ I hope to find all of the Pentium 4 users, as those were the most widespread CPU in the world.

It’s also very good that this software is so flexible that simple compiler flags are what allows support for different systems.

Obviously, I was rather talking about the Pentium II/Pentium systems, which IIRC would have maybe 64MB of RAM.

A 2.69 build (32-bit) requires about 50MB of RAM for the default cube.

Also, keep in mind that you need an OpenGL-capable graphics card in such a system.

Mhm, I have that solved by my lovely PCI GeForce 6200, 256MB.

Depends on the motherboard, but my 1995 Gateway 2000 P5-120 (with a 120Mhz IA-32 Pentium 1) supports 128MB of RAM.

My Pentium ii 233Mhz system supports 512MB. So these are definitely perfect. : )

I would probably use render farms to render stuff I make on the Pentium 1 system though.