Bug#843425: blender doesn't optimize for amd64 defaults

Sergey Sharybin sergey at blender.org
Mon Nov 7 08:50:27 UTC 2016


Hi,

>From the report it's not fully clear what parts Blender those CFLAGS
are referencing to, but because it's all within a context of #843379 i
would guess we are talking about Cycles kernel here (Cycles is the
render engine we use in Blender).

In this case you're partially correct: we are mainly ignoring default
CFLAGS but we compile 6 different CPU kernels, optimized for various
microarchitectures ("native" - no SSE2 on i686 / SSE2 on amd64, forced
SSE2, SSE3, SSE4.1, AVX and AVX2). Then during runtime we detect
current CPU microarchitecture and invoke kernel with highest
capabilities allowed on the current processor.

This is the only way we can guarantee optimal render times on amd64.
Keep in mind, AVX2 can render similar scene like 2x faster than simple
SSE2. This is something we can not ignore for our users.

That being said, if you have some tricky setup where we do not detect
capabilities correctly and Cycles tries to use unsupported kernel and
runs into ILLEGAL INSTRUCTION i'll be happy to look into and solve
that from our end.

Now, about forcing microarchitecture in rest of Blender. We do require
SSE2 on amd64 and i686, but that should be all fine as far as i know
(amd64 always have SSE2, 32bit builds will disable SSE2 automatically
if current CPU does not support it).

-- 
With best regards, Sergey Sharybin



More information about the pkg-multimedia-maintainers mailing list