On 07.11.2016 10:32, Sergey Sharybin wrote: > Hi, > > Afraid the reply to #843425 was only delivered to the BTS and not easily > visible to you guys. > > Here's the full reply, same as [1]. Just so you know :) > > [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=843425#10 > > > ---------- Forwarded message ---------- > From: Sergey Sharybin <ser...@blender.org> > Date: Mon, Nov 7, 2016 at 9:50 AM > Subject: Bug#843425: blender doesn't optimize for amd64 defaults > To: 843...@bugs.debian.org > > > 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.
well, the GCC issue was opened with a RC severity, so I assumed that everything was built using these flags. The assumption of amd64 having SSE2 enabled by defaults is valid. > 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). For Debian it is not ok to assume SSE2 on the i386 architecture. Matthias