Commit Graph

1097 Commits

Author SHA1 Message Date
Martijn Berger
cebf728250 Add sqlite3 dll's on windows.
Fix T41144
2014-08-31 09:08:07 +02:00
Sergey Sharybin
526ae635d1 Fix T41629: Won't open blend files with non-Latin charasters in the name 2014-08-29 23:06:11 +06:00
Sergey Sharybin
5c1e958d90 Fix T41524: Won't open blend file with "space" symbol in the name 2014-08-25 18:50:46 +06:00
Sergey Sharybin
57c4871146 Tweaks to the recent wrapper on windows
- Forgot to handle command line arguments

- Because of the fact we need to be able to
  use stdout and stderr we need to use regular
  console application for the wrapper.

- Because of using regular application for the
  wrapper we need to check forparent PID in the
  isStartedFromCommandPrompt().

I really hope it's not gonna to become any more
complicated.
2014-08-08 00:22:57 +06:00
Sergey Sharybin
0e9c677343 Add blender launcher application when building with MSVC
Main idea of this change is to make a small executable which
will set OMP_WAIT_POLICY environment variable and then will
launch blender itself.

This is a teporary solution for the time being we'll have a
more clear solution to high CPU usage with OpenMP when building
with MSVC.

Reviewers: campbellbarton, juicyfruit

Reviewed By: juicyfruit

Differential Revision: https://developer.blender.org/D717
2014-08-07 21:45:24 +06:00
Jens Verwiebe
7ae187c5e4 OSX/cmake: allow for llvm dynamic builds too, but prefer static 2014-08-06 12:48:06 +02:00
Jens Verwiebe
3e607f61b5 OSX/cmake: adapt bundle structure according scons 2014-08-01 01:23:31 +02:00
Martijn Berger
bcbbed0ccf Use dynamically linked SDL 1.2.15 on windows x64 2014-07-31 16:43:02 +02:00
Sergey Sharybin
435d19f772 Fix bundling of requests on debian-like systems
Couple of issues:

- Debian systems doesn't use site-packages but uses
  dist-packages instead.

- Requetss from ubuntu repository depends on urlllib3
  and chardet, which also implies six. copy those libs
  as well.

I know it's all rather annoying, but no that much
choise is in here..
2014-07-28 23:16:39 +06:00
Sergey Sharybin
c85265b455 Make requests python package to be detected in the same way as numpy
This solves missing requests package reported on the systems where it's
located in dist-packages rather than in site-packages.

To do this there's now a helper macros which handles both requests and
numpy now and could be used for more packages in the future.

Reviewers: campbellbarton

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D686
2014-07-28 20:53:02 +06:00
Jens Verwiebe
9a904a3857 OSX: adaptions needed for renewed osl/oiio/llvm 2014-07-25 10:27:30 +02:00
Nicholas Bishop
48b7c983da Fix parallel CMake builds failing due to missing buildinfo.h
Reviewed in #blendercoders by ideasman42
2014-06-26 14:09:45 -04:00
Campbell Barton
a4d9c8f579 Code cleanup: casts, dead assignment & arg order. 2014-06-26 15:46:42 +10:00
Sergey Sharybin
cc0c94d535 Switch allocator to thread-safe when rendering from the command line
This is needed because render threads would do some allocations like
part buffer allocation and so. This is likely harmless with the lock
free allocator (not on Windows tho), but when using guarded allocator
we need to be sure access to the list of MemHead is safe.
2014-06-24 14:15:21 +06:00
Bastien Montagne
414c70435d T39690: Modifications to Blender's 'temp dir' system.
Current temporary data of Blender suffers one major issue - default 'temp' dir on Windows is never
automatically cleaned up, and can end being quite big when used by Blender, especially when we have
to store per-process data (using getpid() in file names).

To address this, this patch:
* Divides tempdir paths in two, one for 'base' temp dir (the same as previous unique tempdir path),
  the other is a mkdtemp-generated sub-dir, specific to each Blender instance.
* Only uses base tempdir when we need some shallow persistance accross Blender sessions - and we always
  reuse the same filename (quit.blend...) or generate small file (crash reports...).
* Uses temp sub-dir for heavy files like pointcache or renderEXRs (Save Buffer option).
* Erases temp sub-dir on quit or crash.

To get this working it also adds a working 'recursive delete' to BLI_delete() under Windows.

Note that, as in current code, the 'recover render result' hack-feature that was possible
with SaveBuffer option is still removed. A real renderresult cache feature will be added
soon, though.

Reviewers: campbellbarton, brecht, sergey

Reviewed By: campbellbarton, sergey

CC: sergey

Differential Revision: https://developer.blender.org/D531
2014-06-23 13:42:54 +02:00
Howard Trickey
eaac6cbcd9 Add a bmesh_core_test, a start at testing bmesh functionality.
Needed to make the blender link libraries a global property
now that tests are parallel to source directory.
Current sort order for blender link libraries doesn't work
for tests that start with few defined symbols. Doubling the
lib list works, but a TODO to find a better way (probably
using CMake's own mechanism for tracking dependencies).
2014-06-19 11:53:55 -04:00
Sergey Sharybin
306cbb82ec GTest unit testing framework
Currently covers only small set of functionality.
2014-06-19 02:09:16 +10:00
Campbell Barton
cb7915fc60 Automatically generate blender.1 man page during build process
Patch T40418 by Lawrence D'Oliveiro
2014-06-14 01:19:58 +10:00
Campbell Barton
b252915b68 CMake/SCons: finish removing MSVC2012 references 2014-05-15 16:16:25 +10:00
Campbell Barton
4ca67869cc Code cleanup: remove unused includes
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-05-01 04:47:51 +10:00
Bastien Montagne
35747ee3d5 Rename "BLI_cpu.h" to "BLI_system.h" and add to it BLI_getpid() helper.
There is not much sense to have a whole BLI file just to check SSE2 on CPUs...
So idea is to rename it to more generic "BLI_system", and add to it more system-related
utils, like e.g. an include helper for getpid(), which allows to hide unix/windows
internals from rest of the code...

Reviewers: campbellbarton

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D439
2014-04-02 11:59:43 +02:00
Campbell Barton
617557b08e Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT define 2014-04-01 15:22:28 +11:00
Campbell Barton
905c816834 Doxy comment for main() 2014-03-30 20:14:57 +11:00
Antony Riakiotakis
7571f2707a Fix MinGW64 compilation until we update the libraries. 2014-03-29 22:12:52 +02:00
Sergey Sharybin
d3a73d0845 Windows: Upgrade FFmpeg from 0.10 to 2.1.4
Fixes T39423: Blender crashes on iv41 encoded videos in thumbnail display mode

Libraries are still being committed to the svn, so compilation might be broken
for a while. Sorry for this, but can't really be avoided.

Also, some typos in scons are possible.
2014-03-27 16:52:59 +06:00
Campbell Barton
37dd7360d6 Code cleanup: naming conventions 2014-03-16 22:11:14 +11:00
Lukas Tönne
08444518e6 Removing ParticleSystem->frand arrays to avoid memory corruption issues
in threaded depgraph updates and effector list construction.

Gathering effectors during depgraph updates will call the
psys_check_enabled function. This in turn contained a DNA alloc call
for the psys->frand RNG arrays, which is really bad because data must be
immutable during these effector constructions.

To avoid such allocs the frand array is now global for all particle
systems. To avoid correlation of pseudo-random numbers the psys->seed
value is complemented with random offset and multiplier for the actual
float array. This is not ideal, but work sufficiently well (given that
random numbers were already really limited and show repetition quite
easily for particle counts > PSYS_FRAND_COUNT).
2014-03-07 11:20:45 +01:00
Campbell Barton
40a276368d Edit to last commit, use the version veriable 2014-03-05 06:45:29 +11:00
Jens Verwiebe
ac7fba322d OSX/cmake: copy release/site-packages for OSX ( static py for now ) 2014-03-04 20:31:20 +01:00
Campbell Barton
7cb8b6f538 Build system: add cmake option to install requests 2014-03-05 05:40:47 +11:00
Campbell Barton
2c4c4a56b8 Build system copy release/site-packages for windows 2014-03-05 04:13:35 +11:00
Campbell Barton
c436c78de1 Build system support for numpy on ms-windows 2014-03-05 00:22:51 +11:00
Sergey Sharybin
7929970bf9 BSP was still hanging around in CMake 2014-02-19 16:07:49 +06:00
Campbell Barton
e3f4037075 Fix T38715: Setting object mode fails from command line
also run load pre/post callbacks
2014-02-19 14:04:35 +11:00
Jens Verwiebe
ad4c12fe01 OSX/CMAKE: make linking and bundling of clang omp lib work,
Cmake will still not find -fopenmp working, so the user must set
WITH_OPENMP and flags manually
2014-02-18 23:38:56 +01:00
Campbell Barton
a397009181 Fix T38541: sys.exit fails when blender is built as a py-module 2014-02-13 06:58:06 +11:00
Campbell Barton
b3afbcab8f ListBase API: add utility api funcs for clearing and checking empty 2014-02-08 06:24:05 +11:00
Lawrence D'Oliveiro
959da7477d Fix missing $BLENDER_USER_DATAFILES in command line help text.
Reviewed By: brecht

Differential Revision: https://developer.blender.org/D249
2014-02-04 18:51:05 +01:00
Lawrence D'Oliveiro
17b6143244 Correct help: -b/--background does not take a file argument
The documentation for the -b/--background option incorrectly states that it
takes a <file>, however it can run also without a file with e.g. a script.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D250
2014-02-04 18:51:05 +01:00
Sergey Sharybin
5c750b76f2 Move depsgraph debug print under --debug-depsgraph command line argument 2014-01-29 17:48:07 +06:00
Lawrence D'Oliveiro
3b32507b41 Blender docs: Correct upper limit, shown for missing -t option value.
Differential Revision: https://developer.blender.org/D248
2014-01-25 12:29:37 +01:00
Sergey Sharybin
709041ed0b Threaded object update and EvaluationContext
Summary:
Made objects update happening from multiple threads. It is a task-based
scheduling system which uses current dependency graph for spawning new
tasks. This means threading happens on object level, but the system is
flexible enough for higher granularity.

Technical details:

- Uses task scheduler which was recently committed to trunk
  (that one which Brecht ported from Cycles).

- Added two utility functions to dependency graph:
  * DAG_threaded_update_begin, which is called to  initialize threaded
    objects update. It will also schedule root DAG node to the queue,
    hence starting evaluation process.

    Initialization will calculate how much parents are to be evaluation
    before current DAG node can be scheduled. This value is used by task
    threads for faster detecting which nodes might be scheduled.

  * DAG_threaded_update_handle_node_updated which is  called from task
    thread function when node was fully handled.

	This function decreases num_pending_parents of node children and
	schedules children with zero valency.

    As it might have become clear, task thread receives DAG nodes and
    decides which callback to call for it.

    Currently only BKE_object_handle_update is called for object nodes.

    In the future it'll call node->callback() from Ali's new DAG.

- This required adding some workarounds to the render pipeline.
  Mainly to stop using get_object_dm() from modifiers' apply callback.
  Such a call was only a workaround for dependency graph glitch when
  rendering scene with, say, boolean modifiers before displaying
  this scene.

  Such change moves workaround from one place to another, so overall
  hackentropy remains the same.

- Added paradigm of EvaluaitonContext. Currently it's more like just a
  more reliable replacement for G.is_rendering which fails in some
  circumstances.

  Future idea of this context is to also store all the local data needed
  for objects evaluation such as local time, Copy-on-Write data and so.

  There're two types of EvaluationContext:

  * Context used for viewport updated and owned by Main. In the future
    this context might be easily moved to Window or Screen to allo
    per-window/per-screen local time.

  * Context used by render engines to evaluate objects for render purposes.
    Render engine is an owner of this context.

  This context is passed to all object update routines.

Reviewers: brecht, campbellbarton

Reviewed By: brecht

CC: lukastoenne

Differential Revision: https://developer.blender.org/D94
2013-12-26 17:24:42 +06:00
Campbell Barton
2a2c27b175 Fix for crash when no args where given with -o, -x command line args
Patch D123 from djnz (Masakazu Ito)
2013-12-23 13:08:32 +11:00
522f17daa1 Fix T37713: proxy not updated for first frame in background render.
The problem is that the animation curves are first before object updates,
where BKE_pose_rebuild and proxy synchronize will undo the animation when the
proxy is evaluted for the first time after loading.

This is somewhat of a workaround but it's also useful to have the scene updated
once when opening in background mode, and it makes rendering from the UI and
background more similar and so more predictable to give the same result.
2013-12-10 19:54:42 +01:00
Campbell Barton
2b4c68b902 CMake Build: option to compile without opennl/superlu. 2013-11-25 15:36:19 +11:00
Antony Riakiotakis
7cdfe18385 Fix compile error on MinGW64, time.h is required for gmtime. 2013-11-20 23:47:05 +02:00
Campbell Barton
84c30edbdf fix for crash with new buildinfo, when gmtime() returns NULL 2013-11-18 02:41:28 +11:00
Sergey Sharybin
891a037e9b Skip .git files from submodules for install targets
Also removed .svn checks when it's not longer needed.
Some further tweaks (probably for OSX bundler) are
likely needed.
2013-11-17 00:18:21 +06:00
Sergey Sharybin
9c3586d9f9 Remove check for whether po folder exist
It was just a temp thing to not break stuff
before final git migration.
2013-11-17 00:09:03 +06:00
Sergey Sharybin
927dea436e Further tweaks to buildinfo
Summary:
Old idea with changes since previous release tag
didn't work good enough. In most of the cases tag
was done in a branch hence not actually reachable
from the master branch.

Now change since release is gone, and date of
the latest commit is used instead.

The date is displayed in format YYYY-MM-DD HH:mm
in the splash.

New bpy.app fields:

- build_commit_timestamp is an unix timestamp of
  the commit blender was build from.
- build_commit_date is a date of that commit.
- build_commit_time is a time of that commit.

Reviewers: campbellbarton

Differential Revision: http://developer.blender.org/D5
2013-11-15 18:05:27 +06:00