Commit Graph

57 Commits

Author SHA1 Message Date
Thomas Dinges
da523185fb Fix compilation of Cycles AVX kernel with cmake. 2014-01-16 18:32:54 +01:00
Thomas Dinges
de28a4d4b2 Cycles: Add an AVX kernel for CPU rendering.
* AVX is available on Intel Sandy Bridge and newer and AMD Bulldozer and newer.
* We don't use dedicated AVX intrinsics yet, but gcc auto vectorization gives a 3% performance improvement for Caminandes. Tested on an i5-3570, Linux x64.
* No change for Windows yet, MSVC 2008 does not support AVX.

Reviewed by: brecht
Differential Revision: https://developer.blender.org/D216
2014-01-16 17:04:11 +01:00
Thomas Dinges
9351ac0d85 Cycles: Skip the compilation of the dedicated SSE2 kernel on x86-64, we can assume SSE2 here, so just re-use the regular one. Saves 500kb in the blender binary.
Reviewed by: brecht
Differential Revision: https://developer.blender.org/D199
2014-01-14 20:39:54 +01:00
62bf24a5c3 Cycles: experimental OpenSubdiv code.
This code can't actually be enabled for building and is incomplete, but it's
here because we know we want to support this at some point and there's not much
reason to have it in a separate branch if a simple #ifdef can disable it.
2013-11-28 02:11:42 +01:00
89cfeefab5 Cycles: experimental OSL ptex reading code.
This code can't actually be enabled for building and is incomplete, but it's
here because we know we want to support this at some point and there's not much
reason to have it in a separate branch if a simple #ifdef can disable it.
2013-11-28 02:11:42 +01:00
Martijn Berger
e3a79258d1 Cycles: test code for sse 4.1 kernel and alignment for some vector types.
This is mostly work towards enabling the __KERNEL_SSE__ option to start using
SIMD operations for vector math operations. This 4.1 kernel performes about 8%
faster with that option but overall is still slower than without the option.

WITH_CYCLES_OPTIMIZED_KERNEL_SSE41 is the cmake flag for testing this kernel.

Alignment of int3, int4, float3, float4 to 16 bytes seems to give a slight 1-2%
speedup on tested systems with the current kernel already, so is enabled now.
2013-11-22 14:42:41 +01:00
Thomas Dinges
f4f4dac523 Cleanup:
* Silence /arch:SSE2 warning on msvc x64.
2013-08-31 03:18:55 +00:00
Thomas Dinges
ff4e018753 Cycles / Standalone:
* Rename test to standalone.

Note: New CMAKE flag is WITH_CYCLES_STANDALONE.
2013-08-27 02:37:48 +00:00
Brecht Van Lommel
28f893f23a Fix wrong cycles cmake + msvc build flags with relwithdebinfo and minsizerel.
Patch by Karsten Schwenk.
2013-08-05 12:02:43 +00:00
Sergey Sharybin
7d2030d233 Arrempt to fix Cycles compilation with Clang
Issue is caused by missing sse flags for Clang compilers,
this flags only was set for GNU C compilers.

Added if branch for Clang now, which contains the same
flags apart from -mfpmath=sse, This is because Clang was
claiming it's unused argument.

Probably OSX would need some further checks since it's
also using Clang. I've got no idea why it could have
worked for OSX before..
2013-07-07 18:29:57 +00:00
Brecht Van Lommel
f811e6e3ae Cycles: optimized SSE BVH traversal now also works with SSE2 CPUs, so all the
way back to Pentium 4, using a slightly less efficient instruction.

Also ensure /Ox is used for Visual Studio for RelWithDebInfo builds.
2013-06-19 17:54:26 +00:00
Jürgen Herrmann
a7416641e6 Fix for Debug build on MSVC2008 and MSVC2012 after Cycles Kernel optimization:
Compiler optimization was accidentally set to /Ox for debug build too.
Changed this to be /Od in Debug and /Ox in Release mode.
2013-06-19 17:17:51 +00:00
Brecht Van Lommel
484d765bd4 Cycles: attempt to fix internal compile error with some visual studio builds 2013-06-18 13:19:16 +00:00
Thomas Dinges
c194cdaedf Cycles / BVH:
* GCC needs -mssse3 compile flag too (4.7.2) to compile.
2013-06-18 10:05:47 +00:00
Brecht Van Lommel
7c9d993347 Fix cycles intersection issue with overlapping faces on windows 32 bit and CPU
without SSE3 support, due to 80 bit precision float register being used for one
bounding box but not the one next to it.
2013-02-04 16:12:37 +00:00
Brecht Van Lommel
b5c439db47 Fix cycles windows link errors when building with OSL master branch. 2013-01-30 21:58:47 +00:00
Sergey Sharybin
e5179bfefc Remove usage WITH_CYCLES_CUDA_BINARIES in code, use check for
precompiled cubins instead,

Logic here is following now:
- If there're precompiled cubins, assume CUDA compute is available,
  otherwise
- If cuda toolkit found, assume CUDA compute is available
- In all other cases CUDA compute is not available

For windows there're still check for only precompiled binaries,
no runtime compilation is allowed.

Ended up with such decision after discussion with Brecht. The thing
is, if we'll support runtime compilation on windows we'll end up
having lots of reports about different aspects of something doesn't
work (you need particular toolkit version, msvc installed, environment
variables set properly and so) and giving feedback on such reports
will waste time.
2013-01-14 17:30:33 +00:00
Brecht Van Lommel
e5b457dbc9 Cycles: merge some changes from a local branch to bring network rendering a bit
more up to date, still nowhere near working though, but might as well commit this
in case someone else is interested in working on it.
2012-12-21 11:13:46 +00:00
Daniel Genrich
d387dcd110 Fix compile error with clang.
Patch by sambler via irc
2012-11-29 12:22:07 +00:00
Jason Wilkins
f5d8cd34cd -fno-rtti is a gcc option which gives a warning when using MSVC 2012-11-26 13:48:48 +00:00
Thomas Dinges
46dd1a9167 Cycles / CMake:
* Removed PARTIO building code, partio code was removed already.
* Include "app" dir only when building with CYCLES_TEST enabled.
2012-11-09 18:31:04 +00:00
Brecht Van Lommel
3abef3a2e6 Cycles OSL: some build system tweaks to avoid global includes and definitions,
which ensures there is no conflict with other libraries, and avoids full rebuild
when toggling OSL on/off.
2012-10-20 12:17:45 +00:00
Sergey Sharybin
f45f229af2 Use ${OPENEXR_INCLUDE_DIR} instead of ${OPENEXR}/include
There's no CMake symbol names ${OPENEXR} which lead to using /include
as an include directory, which isn't correct.
2012-09-25 07:34:45 +00:00
Jens Verwiebe
87a8aea313 OSL/cmake: the non-intrusive parts, so other os-maintainers can take code over 2012-09-24 19:06:28 +00:00
Campbell Barton
b0c7c8756f code cleanup: cycles now uses system includes for boost/oiio.. etc, so we dont get warnings from system headers. 2012-09-20 09:04:43 +00:00
Lukas Toenne
99972cbfdc RTTI needs to be disabled in cycles for OSL. 2012-09-03 11:38:20 +00:00
Thomas Dinges
e410049a6a Cycles / Cmake:
* Removed last instance of "BLENDER_PLUGIN" define, removed in r39465 in the cycles branch.
2012-08-20 19:40:49 +00:00
Campbell Barton
07ce209c64 code cleanup: warnings 2012-06-01 14:59:06 +00:00
Campbell Barton
85a97f64a7 add UNLIKELY / LIKELY util defines to help optimize iterators that are called a lot, only defined for gcc at the moment.
also some cmake formatting edits.
2011-12-29 01:46:58 +00:00
Brecht Van Lommel
efe4ea284a Cycles:
* Fix broken compile of test app.
* Fix some warnings compiling with gcc for 32 bit.
* More tweaks to avoid extended precision issue from #29301.
2011-12-02 14:26:28 +00:00
Brecht Van Lommel
45de380771 Cycles
* Compile all of cycles with -ffast-math again
* Add scons compilation of cuda binaries, tested on mac/linux.
* Add UI option for supported/experimental features, to make it
  more clear what is supported, opencl/subdivision is experimental.
* Remove cycles xml exporter, was just for testing.
2011-12-01 16:33:21 +00:00
Brecht Van Lommel
92ec286752 Cycles: build flags tweaks to avoid errors with msvc debug build. 2011-11-23 16:30:50 +00:00
Brecht Van Lommel
c26c5f3852 UI: small tweak to tooltips for enum menus, it wasn't very clear which
description was for the property and which for the item.
2011-11-18 21:06:36 +00:00
Brecht Van Lommel
02ce6fd59c Cycles: try to avoid NaN pixels with oren nayar. Also small cmake code cleanup. 2011-11-18 15:39:40 +00:00
Brecht Van Lommel
db8024f4b5 Fix #29259: cycles issues on certain processors. Now two versions of the kernel
are compiled, one SSE optimized and the other not, and it will choose between
them at runtime.
2011-11-15 15:13:38 +00:00
Brecht Van Lommel
5b1a42cb17 Cycles:
* Fix excessive fireflies in Velvet BSDF (patch by David).
* Disable some unused SSE code
* Remove RTTI disabling flags for now, this is giving some compile issues and
  was only needed of OSL which we're not using yet.
2011-11-10 14:32:16 +00:00
Brecht Van Lommel
cf6a1320a8 Cycles: attempted fix for error building with sse/mtune optimization flags. 2011-11-10 14:13:32 +00:00
Brecht Van Lommel
c42772fc95 Cycles:
* Add back option to bundle CUDA kernel binaries with builds.
* Disable runtime CUDA kernel compilation on Windows, couldn't get this working,
  since it seems to depend on visual studio being installed, even though for
  this particular case it shouldn't be needed. CMake only at the moment.
* Runtime compilation on linux/mac should now work if nvcc is not installed in
  the default location, but available in PATH.
2011-11-10 12:52:17 +00:00
Brecht Van Lommel
262ac7340e Cycles: cmake tweaks for linux build, instructions on the wiki no longer worked. 2011-11-08 21:40:08 +00:00
Campbell Barton
33814e0093 edits to cycles cmake files so cmake_consistency_check.py can parse them. 2011-11-08 20:27:37 +00:00
Campbell Barton
76f77514d3 don't overwrite existing CMAKE_CXX_FLAGS for cycles (they may be important) 2011-11-08 19:08:56 +00:00
Brecht Van Lommel
24aebc444b Cycles Merge
Documentation:
http://wiki.blender.org/index.php/Dev:2.6/Source/Render/Cycles
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles

Cycles is available is an extra render engine from the top header. It's not
feature complete, consider this as a first preview release. Known bugs:
http://wiki.blender.org/index.php/Dev:2.6/Source/Render/Cycles/KnownIssues

Building currently only works with CMake, SCons support is being worked on
and should be available soon.

Also missing still is precompiled OpenImageIO and Boost for Linux, these will
be added later in lib/linux*, if you do not have these installed on your
system, Cycles will simply not be available.
2011-11-08 17:00:40 +00:00
Brecht Van Lommel
a56c6e18a8 Cycles:
* Disable precompiled cuda binaries, always do at run time
* Change preview samples default to 10
* Hide volume panels since they don't do anything yet
2011-11-08 14:10:33 +00:00
Campbell Barton
08d52fcc85 added FindOpenImageIO cmake module. 2011-09-18 04:55:22 +00:00
Brecht Van Lommel
089abdecf7 Cycles: attempted fixes for OS X preview render problem, and disable
kernel cache there now as well since it seems to give issues there.
2011-09-14 22:26:55 +00:00
Brecht Van Lommel
ebc653463d Cycles:
* Fix missing update when editing objects with emission materials.
* Fix preview pass rendering set to 1 not showing full resolution.
* Fix CUDA runtime compiling failing due to missing cache directory.
* Use settings from first render layer for visibility and material override.

And a bunch of incomplete and still disabled code mostly related to closure
sampling.
2011-09-12 13:13:56 +00:00
Brecht Van Lommel
cfbd6cf154 Cycles:
* OpenCL now only uses GPU/Accelerator devices, it's only confusing if CPU
  device is used, easy to enable in the code for debugging.
* OpenCL kernel binaries are now cached for faster startup after the first
  time compiling.
* CUDA kernels can now be compiled and cached at runtime if the CUDA toolkit
  is installed. This means that even if the build does not have CUDA enabled,
  it's still possible to use it as long as you install the toolkit.
2011-09-09 12:04:39 +00:00
Antony Riakiotakis
6edb09fe93 Compile fixes for MinGW, checked with basic initial setup, no CUDA, gcc 4.5.2.
OpenImageIO still gives link-time errors, will try to make a lib for MinGW, see if it is fixed.
2011-09-04 15:39:09 +00:00
Brecht Van Lommel
1135875ab1 Cycles:
* Fix crash in light path node
* Fix struct alignment issue for cuda
* Fix issue with instances taking up too much memory
* Fix issue with ray visibility working incorrect on some objects
* Enable OpenCL always and remove option, it has no dependencies so may as well
* Refuse to load kernel if OpenCL version < 1.1, recent drivers are needed
* Better error handling for OpenCL device
* 3D views with rendered draw mode will now revert to wireframe on file load
2011-09-02 14:55:06 +00:00
Brecht Van Lommel
27102bfec4 Cycles: OpenCL library is now dynamically loaded so that blender doesn't crash
if it's not installed on the system.

Code copied from clew.h/clew.c in CLCC:
http://clcc.sourceforge.net/
2011-09-01 19:00:23 +00:00