[Bf-committers] SSE/AVX in cloth simulator

Mariusz Pluciński plucinski.mariusz at gmail.com
Thu Dec 19 13:55:13 CET 2019

Hi Blender devs,

Recently, I was trying to improve performance of my build of Blender.
Basically, I'd like to be able to use higher quality settings in cloth
simulator without waiting for ages.

As far as I noticed, my (custom) build of Blender don't use vector
instructions (SSE/AVX) in cloth simulator. To be strict, the instructions
are used there, but merely to operate on single values and not on the
complete vectors at once (i.e. adding of two float[3] vectors is three
instructions instead of one). Thus my questions:

1. Is what I noticed correct? Does Blender not have support for SSE/AVX in
cloth simulator, or in general, in mathematical functions of blenlib?

2. I tried explicitly enabling auto vectorization in GCC, but it didn't
change much. Is that normal? If not, which flags should be used?

3. If there's no other way, I may be ready to try to rewrite critical parts
of the simulator for SSE/AVX. In such case, could you give me a guideline
on how to do it correctly (with ultimate merge into master in mind)? I
noticed Cycles code has #ifdefs for SSE support inside its mathematical
functions, would similar approach be useful here?

If this isn't correct place for these question, please direct me to a more
appropriate location.

Best Regards,
Mariusz Plucinski

More information about the Bf-committers mailing list