Commit Graph

162 Commits

Author SHA1 Message Date
3d36489672 OpenSubdiv: Commit of OpenSubdiv integration into Blender
This commit contains all the remained parts needed for initial integration of
OpenSubdiv into Blender's subdivision surface code. Includes both GPU and CPU
backends which works in the following way:

- When SubSurf modifier is the last in the modifiers stack then GPU pipeline
  of OpenSubdiv is used, making viewport performance as fast as possible.

  This also requires graphscard with GLSL 1.5 support. If this requirement is
  not met, then no GPU pipeline is used at all.

- If SubSurf is not a last modifier or if DerivesMesh is being evaluated for
  rendering then CPU limit evaluation API from OpenSubdiv is used. This only
  replaces the legacy evaluation code from CCGSubSurf_legacy, but keeps CCG
  structures exactly the same as they used to be for ages now.

This integration is fully covered with ifdef and not enabled by default
because there are several TODOs to be solved first:

- Face varying data interpolation is not really cleanly implemented for GPU
  in OpenSubdiv 3.0. It is also not implemented for limit evaluation API.

  This basically means we'll have really hard time supporting UVs.

- Limit evaluation only works with adaptivly subdivided meshes so far, which
  basically means all the points of CCG are pushed to the limit. This gives
  different result from old code.

- There are some serious optimizations possible on the topology refiner
  creation, which would speed up initial OpenSubdiv mesh creation.

- There are some hardcoded asumptions in the GPU and DerivedMesh areas which
  could be generalized.

  That's something where Antony and Campbell can help, making it so the code
  is structured in a way which is reusable by all planned viewport projects.

- There are also some workarounds in the dependency graph to make sure OpenGL
  buffers are only freed from the main thread.

Those who'll be wanting to make experiments with this code should grab dev
branch (NOT master) from

  https://github.com/Nazg-Gul/OpenSubdiv/tree/dev

There are some patches applied in there which we're working on on getting
into upstream.
2015-07-20 22:29:26 +02:00
1d6c025c42 SCons: Fix missing file in kernel when building on OSX 2015-06-19 21:26:47 +02:00
037181cf1c SCons: Another attempt to fix bundling on OSX 2015-06-19 19:52:47 +02:00
27eb2b1017 SCons: Fix wrong bunding of Cycles kernel on OSX platform 2015-06-19 19:38:51 +02:00
0187356613 python tar.gz changed structure due to python.exe being added. remove /lib/ from cmake as lib and bin are both in the tar.gz 2015-05-30 09:44:44 +02:00
ddb1a068e9 SCons: install Python executable when its bundled 2015-05-19 16:44:19 +10:00
bac7353801 Depsgraph: New dependency graph integration commit
This commit integrates the work done so far on the new dependency graph system,
where goal was to replace legacy depsgraph with the new one, supporting loads of
neat features like:

- More granular dependency relation nature, which solves issues with fake cycles
  in the dependencies.

- Move towards all-animatable, by better integration of drivers into the system.

- Lay down some basis for upcoming copy-on-write, overrides and so on.

The new system is living side-by-side with the previous one and disabled by
default, so nothing will become suddenly broken. The way to enable new depsgraph
is to pass `--new-depsgraph` command line argument.

It's a bit early to consider the system production-ready, there are some TODOs
and issues were discovered during the merge period, they'll be addressed ASAP.
But it's important to merge, because it's the only way to attract artists to
really start testing this system.

There are number of assorted documents related on the design of the new system:

* http://wiki.blender.org/index.php/User:Aligorith/GSoC2013_Depsgraph#Design_Documents
* http://wiki.blender.org/index.php/User:Nazg-gul/DependencyGraph

There are also some user-related information online:

* http://code.blender.org/2015/02/blender-dependency-graph-branch-for-users/
* http://code.blender.org/2015/03/more-dependency-graph-tricks/

Kudos to everyone who was involved into the project:

- Joshua "Aligorith" Leung -- design specification, initial code
- Lukas "lukas_t" Toenne -- integrating code into blender, with further fixes
- Sergey "Sergey" "Sharybin" -- some mocking around, trying to wrap up the
  project and so
- Bassam "slikdigit" Kurdali -- stressing the new system, reporting all the
  issues and recording/writing documentation.
- Everyone else who i forgot to mention here :)
2015-05-12 16:06:37 +05:00
615414fa36 SCons: Ignore .svn folder when installing site-packages 2015-04-29 14:30:37 +05:00
28e9058e7a OSX: add a license file for libiomp5 ( intel omp ) when compiled with 2015-04-06 19:12:23 +02:00
6f51df5384 SCons: Attempt to deal with branches without upstream configured 2015-03-20 14:03:54 +05:00
bd5154bb2c Fix Cycles OpenCL error with scons, util_math_fast.h was missing.ø 2015-02-18 22:44:17 +01:00
40f237675f Some tweaks to support upcoming OSL-1.6
Doesn't mean we're 100% ready for the transition, but need to start somewhere
anyway. Changes:

- OSL is no longer supporting cpp and requires usage of Boost Wave.
  So now Wave component of Boost is optionally demanded when looking for the
  Boost libraries if OSL is enabled.

  Only did this for Linux, MSVC seems already using Wave. Not sure about OSX.

- Because of the same reason OSL should be moved prior Boost for linker.

- Whole archive trick makes it so linking fails with duplicated symbols, so
  removed it for the new OSL. Didn't see issues with this so far.

- Added some code to check OSL version on Linux. Would need to move all that
  to FindOpenShadingLanguage.cmake which we can get from Cycles standalone
  repository.

  So in theory no affect on current stup would be made at all.

- Added some tweaks to buildbot files. It now seems to be happy with the new
  OSL libraries, but again, those tweaks are not in action yet.

All this was tested on Linux only. Win/OSX might still need some tweaks to
support new OSL.

P.S. This doesn't mean we're pushing OSL update yet, just making some
preliminary tweaks to avoid entropy of PITA when we'll actually want to
switch.
2015-02-06 14:57:32 +05:00
f80eb37e21 Remove executable flag from the build configuration files
They're not intended to be executed directly and seems mode change happened
by accident.

Setting -x for this files to avoid possible incidents by trying to run this
files in shell.
2014-12-31 14:05:53 +05:00
47788b5e68 Switch to numpy 1.9 for windows platform 2014-12-10 13:50:51 +05:00
627f27502f Cycles: Support logging when building with SCons
Basically, title says ti all, the option is called WITH_BF_CYCLES_LOGGING
2014-12-03 22:46:56 +05:00
80d1d624d3 Support dynamic loading of SDL libraries
This is mainly to address old issue when one need to have SDL library installed
in order to use our official builds. Some hip distros already installs SDL,
but it's not quite the same across all the variety of the distros.

We also now switching to SDL-2.0, most of the distros have it in repositories
already, so it shouldn't be huge deal to install it if needed.

Reviewers: campbellbarton

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D878
2014-11-17 17:43:18 +05:00
fa821a969e OSX/buildsystems: unify openmp handling by changing iomp5 id to @loader_path/../Resources/lib/libiomp5.dylib
This makes install_name_tool usage obsolete here and also assures cmake builds can be codesigned.
IMPORTANT: update lib (darwin-9.x.universal/openmp)
2014-11-16 17:03:44 +01:00
5e6d878318 Revert "Scons/funstuff: notify when the binaries are compiled"
This reverts commit cdf5370159.

Please always keep build-systems simple, boring & functional,
anyone who liked notification popups can write a simple build script.
2014-10-31 10:41:12 +01:00
cdf5370159 Scons/funstuff: notify when the binaries are compiled 2014-10-23 19:19:02 +02:00
feba2d3edf Attempt to fix compilation error on ubuntu linux 2014-09-08 14:29:34 +06:00
a4c287ed7d OSX/scons: Change Blender bundle datastructures + referennces to match the upcoming codesigning needs
- i used deprecated rules up to now which will break in OSX > 10.9.5 and 10.10 > dp4
- todo: adapt cmake due it will break with this commit
2014-08-01 00:57:17 +02:00
42615d88b6 Fix compilation error with scons when building from detached head 2014-07-10 16:23:48 +06:00
283abdf3b2 Fix compilation error with scons and older pythons 2014-06-26 16:03:52 +06:00
9b987103f6 Use specified exception mask for buildinfo
This way we only catch exceptions which we're intended to
and if something bad happens (like missing import due to
refactor or so) we'll see them instantly.
2014-06-23 15:46:41 +06:00
9b83ceb6f2 Fix scons building in case git is not available.
Not so nice to use try/except here, but simplest solution to avoid failing in case
git commands fail for some reason...
2014-06-20 18:13:20 +02:00
2dce13d213 Python: Remove deprecated uses of os.popen
T40415 by Lawrence D'Oliveiro
2014-06-20 02:00:46 +10:00
38d6841687 Need to consider blender-v* a release branch, not just blender-
This is because of blender-tiles branch we've got..
2014-06-16 15:16:18 +06:00
be553273b8 Make blender-* branches not being displayed on the splash 2014-06-16 14:58:56 +06:00
c590b2a4b3 OSX: Set Blender.app and Blenderplayer.app creation and modification date to compiletime, else we would always have the time from checkout here 2014-06-02 14:20:07 +02:00
d1009bdad5 Windows: Disable Numpy for now, we miss the libs for Python 3.4.
Also make the flag WITH_BF_PYTHON_INSTALL_NUMPY flag actually work on Windows.
2014-04-30 16:49:49 +02:00
8ff74bed9b Scons/cycles: fix header distribution for geom 2014-04-04 13:07:32 +02:00
43b5f0af2d tweaks to buildinfo
We wouldn't really have release branches, building will happen
from annotated tags.

Made it so building tag revision equals to a master branch.
2014-03-07 18:27:16 +06:00
4acff9d6f1 OSX/scons: according to last commit, , use the version variable 2014-03-04 21:08:49 +01:00
5d74cac463 Build system: option to copy 'requests' from scons. 2014-03-05 06:43:47 +11:00
976fd68082 OSX/scons: copy release/site-packages for OSX ( static py for now ) 2014-03-04 18:41:19 +01:00
add6384213 Build system: use lstrip with scons 2014-03-05 04:19:55 +11:00
2c4c4a56b8 Build system copy release/site-packages for windows 2014-03-05 04:13:35 +11:00
c436c78de1 Build system support for numpy on ms-windows 2014-03-05 00:22:51 +11:00
9e924c8ffe OSX/scons: cp needs the targetdir to be created ( ditto does it itself ),
changing the order of commands let us use cp again
2014-02-24 12:09:55 +01:00
056d86ec83 OSX/scons: Fix language menu not showing up in prefs:
The languages file was not installed to locale due it has
no extension, using ditto now
2014-02-23 23:17:30 +01:00
28f3cc3eb7 Fixes for buildinfo hash/branch detection
Branch name and hash didn't work properly when having disconnected
HEAD or when having current HEAD below upstream.
2014-02-20 21:43:30 +06:00
c987bcc416 OSX: more futurework for clang-openmp:
- moved assumed location of omp lib to blender libs
- prepared libiomp5 to link out of the box with cmake
- changed according in scons
- introduced a local var C_VENDOR, cause Apple clang 3.4 may not include omp support yet
- added a linklibs for msgfmt ( may not be needed for other than OSX )
2014-02-18 17:18:35 +01:00
a84bcea070 OSX/scons: allow for compiling with clang-openmp-3.4
See: http://clang-omp.github.io
+ fix a longstanding bad include in darwin-config
2014-02-09 18:03:13 +01:00
cb0a5adc56 SCons: cleaner determination of 32-bit/64-bit builds
Try not to be x86-centric, remove unneeded blenderdeps variable.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D240
2014-02-04 19:01:10 +01:00
74ae93d1cd Scons: Fix cycles OpenCL kernelcompile by distributing util_half.h 2014-01-17 00:33:32 +01:00
901ebbd94a Scons: as requested by Ideasman, make MACOSX_COMPILER -> C_COMPILER_ID,
leave env set for OSX exclusive for now”
2013-12-08 15:35:21 +01:00
c167d7b79a OSX/scons: Introduce a new env var 'MACOSX_COMPILER'
This is needed to resolve the real used compiler from the compatibility shim’S or symlinks.
Also set the real CCVERSION as scons CCVERSION would only read the default one, which
is not useful for OSX
2013-12-06 17:06:51 +01:00
df2f604af2 OSX/scons: fix misdesigned version detection of compiler ( todo: do with submodule ), fix a compiler warning with clang < 5” 2013-12-04 23:15:29 +01:00
6a6c7b10de Correction to previous commit
Better just use "strip", to be sure \r\n is also stripped.
This also corresponds to what happens with popen() results.
2013-11-29 22:41:01 +06:00
f359b931f9 Better removal of \n in hash with rstrip 2013-11-29 17:27:29 +01:00