|
|
Issue discussed first in the newsgroup thread:
https://news.povray.org/povray.general/thread/%3C663cdc51%241%40news.povray.org%3E/
At some point a few years ago, the default gnu unix/linux builds for
v3.8+ versions of POV-Ray stopped correctly detecting x86 CPU features
necessary to use the hand coded optimizations which work on my old i3
CPU. The build problem is likely more general, but to an extent unknown.
The g++ compiler is in-lining an __asm__ coded function despite source
code attributes indicating it should not. The in-lining comes with
side-effects.
If compiling on an x86 AMD or Intel CPU (or equivalent VM) and you are
getting a generic optimization over a hand coded one, you can try a
build using +O0 while configuring which prevents all in-lining of code.
The resulting build will be slow, but if you then get a dynamic
optimization, you too are seeing the issue.
Because the issue results in hand optimizations not being used, it's
harmless with respect to end result. Some scenes will render a little
more slowly than they might otherwise.
See the upcoming yuqk release (R15) for one possible patch. Specifically
changes to the file <code install dir>/platform/x86/cpuid.cpp.
--
Note! Clang++ (emulating gnu gcc/g++) builds were OK, with or without
the suggested patch on my i3. See yuqk's INSTALL.txt for a suggested
configuration for a clang++ based build.
--
Related: There is a github pull request with a hand coded avx512
implementation for the v3.8 POV-Ray branch:
https://github.com/POV-Ray/povray/pull/452
I've not myself tried the pull request with my yuqk fork. I don't have
the AMD and Intel hardware on which to test it.
Bill P.
Post a reply to this message
|
|