20 months agoFix T53678: Smart Project UV margin ignores units
Campbell Barton [Wed, 3 Jan 2018 05:10:41 +0000 (16:10 +1100)]
Fix T53678: Smart Project UV margin ignores units

20 months agoCycles: CUDA support for rendering scenes that don't fit on GPU.
Brecht Van Lommel [Fri, 3 Nov 2017 23:33:38 +0000 (00:33 +0100)]
Cycles: CUDA support for rendering scenes that don't fit on GPU.

In that case it can now fall back to CPU memory, at the cost of reduced
performance. For scenes that fit in GPU memory, this commit should not
cause any noticeable slowdowns.

We don't use all physical system RAM, since that can cause OS instability.
We leave at least half of system RAM or 4GB to other software, whichever
is smaller.

For image textures in host memory, performance was maybe 20-30% slower
in our tests (although this is highly hardware and scene dependent). Once
other type of data doesn't fit on the GPU, performance can be e.g. 10x
slower, and at that point it's probably better to just render on the CPU.

Differential Revision:

20 months agoCycles: make CUDA code a bit more robust to host/device alloc failures.
Brecht Van Lommel [Tue, 2 Jan 2018 21:56:07 +0000 (22:56 +0100)]
Cycles: make CUDA code a bit more robust to host/device alloc failures.

Fixes a few corner cases found while stress testing host mapped memory.

20 months agonstall_deps: llvm downloads new website location
Bastien Montagne [Tue, 2 Jan 2018 14:21:21 +0000 (15:21 +0100)]
nstall_deps: llvm downloads new website location

Patch by Lucas Walter (@lucasw), thanks.

Reviewers: mont29

Reviewed By: mont29

Subscribers: mont29

Differential Revision:

20 months agofix T53230: avoid Nullpointer problems in Collada Exporter
Gaia Clary [Mon, 1 Jan 2018 14:02:26 +0000 (15:02 +0100)]
fix T53230: avoid Nullpointer problems in Collada Exporter

20 months agoBuild: fix make deps TBB on Linux, older versions don't support GCC 7.
Brecht Van Lommel [Tue, 8 Aug 2017 00:46:19 +0000 (02:46 +0200)]
Build: fix make deps TBB on Linux, older versions don't support GCC 7.

20 months agoBuild: fix make deps OpenSubdiv build on Linux.
Brecht Van Lommel [Fri, 29 Dec 2017 17:11:46 +0000 (18:11 +0100)]
Build: fix make deps OpenSubdiv build on Linux.

20 months agoFix T53513: Particle size showing in multiple places
Dalai Felinto [Fri, 29 Dec 2017 15:03:26 +0000 (13:03 -0200)]
Fix T53513: Particle size showing in multiple places

Technically this was introduced in 01b547f9931970050e when
exposing size and randomness for particles.

This "fixes" makes sure particle size and size randomness is always in the
Render panel when it affects the particle system (i.e., always unless using
advanced hair or hair that is not rendering groups/objects).

20 months agoFix T53639: text sequence strips no stamped into render.
Philipp Oeser [Thu, 28 Dec 2017 23:10:27 +0000 (00:10 +0100)]
Fix T53639: text sequence strips no stamped into render.

Differential Revision:

20 months agoFix mistake in previous fix for T53600, shows we really need a smarter solution.
Brecht Van Lommel [Thu, 28 Dec 2017 23:07:49 +0000 (00:07 +0100)]
Fix mistake in previous fix for T53600, shows we really need a smarter solution.

20 months agoFix T53630: Effect strips not displaying Input data.
Bastien Montagne [Thu, 28 Dec 2017 16:57:18 +0000 (17:57 +0100)]
Fix T53630: Effect strips not displaying Input data.
Fix T52977: Parent bone name disappeared in the UI in pose mode.

Regression caused by own rBc57636f060018. So instead of changing widget
type, just flag it as disabled.

Note that core of the issue is elsewhere though - there is absolutely no
reasons to have a search widget for pointers we cannot change nor
search! But fixing this is not really top priority, one of the many
glitches of our UI code, so think we can live with current code.

To be backported to 2.79a.

20 months agoFix T53600: Cycles shader mixing issue with principled BSDF and zero weights.
Brecht Van Lommel [Mon, 25 Dec 2017 22:43:55 +0000 (23:43 +0100)]
Fix T53600: Cycles shader mixing issue with principled BSDF and zero weights.

SVM nodes need to read all data to get the right offset for the following node.
This is quite weak, a more generic solution would be good in the future.

20 months agoFix T53607: Cycles normal map baking problem when there is no bump.
Brecht Van Lommel [Mon, 25 Dec 2017 22:04:51 +0000 (23:04 +0100)]
Fix T53607: Cycles normal map baking problem when there is no bump.

20 months agoCleanup - Various style/typo fixes
Joshua Leung [Sat, 23 Dec 2017 10:54:05 +0000 (23:54 +1300)]
Cleanup - Various style/typo fixes

20 months agoFix scalability issue in threaded code of Mesh normals computation.
Bastien Montagne [Fri, 22 Dec 2017 21:12:23 +0000 (22:12 +0100)]
Fix scalability issue in threaded code of Mesh normals computation.

We tried to do as much as possible in a single threaded callback, which
lead to using some nasty tricks like fake atomic-based spinlocks to
perform some operations (like float addition, which has no atomic

While OK with 'standard' low number of working threads (8-16), because
collision were rather rare and implied memory barrier not *that* much
overhead, this performed poorly with more powerful systems reaching the
100 of threads and beyond (like workstations or render farm hardware).

There, both memory barrier overhead and more frequent collisions would
have significant impact on performances.

This was addressed by splitting further the process, we now have three
loops, one over polys, loops and vertices, and we added an intermediate
storage for weighted loop normals. This allows to avoid completely any
atomic operation in body of threaded loops, which should fix scalability
issues. This costs us slightly higher temp memory usage (something like
50Mb per million of polygons on average), but looks like acceptable

Further more, tests showed that we could gain an additional ~7% of speed
in computing normals of heavy meshes, by also parallelizing the last two
loops (might be 1 or 2% on overall mesh update at best...).

Note that further tweaking in this code should be possible once Sergey
adds the 'minimum batch size' option to threaded foreach API, since very
light loops like the one on loops (mere v3 addition) require much bigger
batches than heavier code (like the one on polys) to keep optimal

20 months agoTask scheduler: Clarify why do we need an atomic add of 0
Sergey Sharybin [Fri, 22 Dec 2017 15:37:25 +0000 (16:37 +0100)]
Task scheduler: Clarify why do we need an atomic add of 0

20 months agoSubsurf: Avoid possible use of partially initialized edge hash
Sergey Sharybin [Fri, 22 Dec 2017 11:50:06 +0000 (12:50 +0100)]
Subsurf: Avoid possible use of partially initialized edge hash

20 months agoSubsurf: Avoid global lock for loops and orig index layers
Sergey Sharybin [Fri, 22 Dec 2017 11:45:06 +0000 (12:45 +0100)]
Subsurf: Avoid global lock for loops and orig index layers

This is a bit annoying to have per-DM locking, but it's way better (as in, up to
4 times better) for playback speed when having lots of subsurf objects,

20 months agoTask scheduler: Start with suspended pool to avoid threading overhead on push
Sergey Sharybin [Fri, 22 Dec 2017 11:25:11 +0000 (12:25 +0100)]
Task scheduler: Start with suspended pool to avoid threading overhead on push

The idea is to avoid any threading overhead when we start pushing tasks in a
loop. Similarly to how we do it from the new dependency graph. Gives couple of
percent of speedup here, but also improves scalability.

20 months agoDepsgraph: Sort and clam number of statistics entries
Sergey Sharybin [Thu, 21 Dec 2017 16:16:18 +0000 (17:16 +0100)]
Depsgraph: Sort and clam number of statistics entries

Makes log easier to read.

20 months agoDepsgraph: Bring timing statistics to the new dependency graph
Sergey Sharybin [Thu, 21 Dec 2017 15:14:15 +0000 (16:14 +0100)]
Depsgraph: Bring timing statistics to the new dependency graph

This statistics is only collected when debug_value is different from 0.

Stored in depsgraph node itself, so we can always have access to average data
and other stats which requires persistent storage. This way we also don't waste
time trying to find stats from a separately stored hash map.

20 months agoDepsgraph: Make it more clear that we dump relations into graphviz
Sergey Sharybin [Thu, 21 Dec 2017 11:56:44 +0000 (12:56 +0100)]
Depsgraph: Make it more clear that we dump relations into graphviz

We might implement other things to dump into graphviz, so better to
start having explicit names.

20 months agoDepsgraph: Simplify some functions in evaluaiton
Sergey Sharybin [Thu, 21 Dec 2017 11:32:32 +0000 (12:32 +0100)]
Depsgraph: Simplify some functions in evaluaiton

20 months agoDepsgraph: Simplify evaluation function
Sergey Sharybin [Thu, 21 Dec 2017 11:24:51 +0000 (12:24 +0100)]
Depsgraph: Simplify evaluation function

20 months agoFix T53567: Negative pixel values causing artifacts with denoising
Lukas Stockner [Thu, 21 Dec 2017 13:24:23 +0000 (14:24 +0100)]
Fix T53567: Negative pixel values causing artifacts with denoising

Now negative color values are clamped to zero before the actual denoising.

20 months agoDepsgraph: Fix mistake in previous commit
Sergey Sharybin [Thu, 21 Dec 2017 11:16:12 +0000 (12:16 +0100)]
Depsgraph: Fix mistake in previous commit

20 months agoDepsgraph: Remove confusing declaration of node method
Sergey Sharybin [Thu, 21 Dec 2017 10:58:48 +0000 (11:58 +0100)]
Depsgraph: Remove confusing declaration of node method

it is only to be implemented for operation node.

20 months agoDepsgraph: Remove one of temporary tags in the node
Sergey Sharybin [Thu, 21 Dec 2017 10:47:34 +0000 (11:47 +0100)]
Depsgraph: Remove one of temporary tags in the node

No real reason to have that, better to free up space for something much more

20 months agoDepsgraph: Cleanup, move implementation away from header
Sergey Sharybin [Thu, 21 Dec 2017 10:33:50 +0000 (11:33 +0100)]
Depsgraph: Cleanup, move implementation away from header

20 months agoDepsgraph: Remove evaluation priority completely
Sergey Sharybin [Thu, 21 Dec 2017 10:15:21 +0000 (11:15 +0100)]
Depsgraph: Remove evaluation priority completely

20 months agoDepsgraph: Remove eval priority from debugger
Sergey Sharybin [Thu, 21 Dec 2017 10:13:22 +0000 (11:13 +0100)]
Depsgraph: Remove eval priority from debugger

This needs to be redone anyway, to correspond to possibly new priorities
calculated for evaluaiton.

20 months agoDepsgraph: Remove unused component context functions
Sergey Sharybin [Thu, 21 Dec 2017 09:37:00 +0000 (10:37 +0100)]
Depsgraph: Remove unused component context functions

20 months agoDepsgraph: Remove node class stored in both type info and node
Sergey Sharybin [Wed, 20 Dec 2017 16:54:52 +0000 (17:54 +0100)]
Depsgraph: Remove node class stored in both type info and node

This is something deliver form node type, there is no reason to try cache it
anywhere, especially since it's not used in any performance critical code.

Lighter weight dependency graph is what we want.

20 months agoCycles: Cleanup, indentation
Sergey Sharybin [Wed, 20 Dec 2017 16:42:50 +0000 (17:42 +0100)]
Cycles: Cleanup, indentation

20 months agoDepsgraph: Remove unused incldues
Sergey Sharybin [Wed, 20 Dec 2017 15:45:10 +0000 (16:45 +0100)]
Depsgraph: Remove unused incldues

20 months agoDepsgraph: Move ID node to own file
Sergey Sharybin [Wed, 20 Dec 2017 15:35:48 +0000 (16:35 +0100)]
Depsgraph: Move ID node to own file

20 months agoDepsgraph: Move time source node to own file
Sergey Sharybin [Wed, 20 Dec 2017 15:27:08 +0000 (16:27 +0100)]
Depsgraph: Move time source node to own file

20 months agoDepsgraph: Print some statistics about transitive reduction
Sergey Sharybin [Wed, 20 Dec 2017 15:19:40 +0000 (16:19 +0100)]
Depsgraph: Print some statistics about transitive reduction

20 months agoDepsgraph: Make transitive reduction to work
Sergey Sharybin [Wed, 20 Dec 2017 15:16:28 +0000 (16:16 +0100)]
Depsgraph: Make transitive reduction to work

20 months agoDepsgraph: Add utility function to unlink relation from graph
Sergey Sharybin [Wed, 20 Dec 2017 15:15:55 +0000 (16:15 +0100)]
Depsgraph: Add utility function to unlink relation from graph

20 months agoDepsgraph: Remove unused priority calculator
Sergey Sharybin [Wed, 20 Dec 2017 14:51:59 +0000 (15:51 +0100)]
Depsgraph: Remove unused priority calculator

While it sounds useful, in practice it was rather causing
extra overhead and was slowing things down.

20 months agoDepsgraph: Remove remaining parts of old removed debugger
Sergey Sharybin [Wed, 20 Dec 2017 14:50:22 +0000 (15:50 +0100)]
Depsgraph: Remove remaining parts of old removed debugger

20 months agoFix T53572: Alembic imports UV maps incorrectly
Martin Felke [Wed, 20 Dec 2017 09:30:39 +0000 (10:30 +0100)]
Fix T53572: Alembic imports UV maps incorrectly

Since in Alembic the loop order seems to be reversed when exporting and
importing, and this was the only place where it was not, I was thinking
to match this to the convention of reversing the loop order as well.

Reviewers: sybren, kevindietrich

Tags: #alembic

Differential Revision:

20 months agoFix MSVSC2017 error
Antonio Vazquez [Wed, 20 Dec 2017 09:23:12 +0000 (10:23 +0100)]
Fix MSVSC2017 error

The last compiler version needs this include

20 months agoCleanup: remove unnecessary tooltip line limit
Campbell Barton [Wed, 20 Dec 2017 06:20:33 +0000 (17:20 +1100)]
Cleanup: remove unnecessary tooltip line limit

Also add TODO for possible future changes.

20 months agoUI: move tooltip API to public header
Campbell Barton [Wed, 20 Dec 2017 03:50:39 +0000 (14:50 +1100)]
UI: move tooltip API to public header

20 months agoFix crash in RNA when accessing empty property_tags list
Julian Eisel [Tue, 19 Dec 2017 19:53:19 +0000 (20:53 +0100)]
Fix crash in RNA when accessing empty property_tags list

E.g. running `` in the
console would crash.

Thanks @lijenstina for reporting!

20 months agobpy_extras: add missing colorband keymap to
Ray Molenkamp [Tue, 19 Dec 2017 15:04:17 +0000 (08:04 -0700)]
bpy_extras: add missing colorband keymap to

fixes failing ctest script_load_keymap

20 months agoFont objects: Support proper auto-space
Sergey Sharybin [Tue, 19 Dec 2017 14:08:29 +0000 (15:08 +0100)]
Font objects: Support proper auto-space

Annoyingly, need to convert vfont to nurbs, do minmax and toss nurbs away.
This is likely to be fine, since this function is not intended to be used
a lot, and this is the only way to get more meaningful result.

However, it's not very clear what to do with font on curve.

This fixes rendering of font object with auto texture space in Cycles
introduced in c34f3c7.

It is probably possible to introduce new mode to vfont_to_curve which
will do boundbox without extra allocations, but that's more like an

Reviewers: campbellbarton, mano-wii

Reviewed By: campbellbarton

Subscribers: zeauro

Differential Revision:

20 months agoCycles: Fix crash opening user preferences after adding extra GPU
Sergey Sharybin [Tue, 19 Dec 2017 14:51:28 +0000 (15:51 +0100)]
Cycles: Fix crash opening user preferences after adding extra GPU

We can not store pointers to elements of collection property in the
case we modify that collection. This is like storing pointers to
elements of array before calling realloc().

20 months agoTracking: Add missing animation path fix after renaming tracks
Sergey Sharybin [Tue, 19 Dec 2017 12:39:37 +0000 (13:39 +0100)]
Tracking: Add missing animation path fix after renaming tracks

20 months agoTracking: Add utility function to get RNA path prefix for given track
Sergey Sharybin [Tue, 19 Dec 2017 12:09:39 +0000 (13:09 +0100)]
Tracking: Add utility function to get RNA path prefix for given track

Some code could be de-duplicated with the full path case, but that's
for another rainy day i guess.

20 months agoTracking: Disable animation of auto-keyframe option
Sergey Sharybin [Tue, 19 Dec 2017 11:59:52 +0000 (12:59 +0100)]
Tracking: Disable animation of auto-keyframe option

20 months agoTracking: Add missing animation fix when deleting plane track
Sergey Sharybin [Tue, 19 Dec 2017 11:58:42 +0000 (12:58 +0100)]
Tracking: Add missing animation fix when deleting plane track

20 months agoTracking: Fix possible numerical overflow
Sergey Sharybin [Tue, 19 Dec 2017 11:52:20 +0000 (12:52 +0100)]
Tracking: Fix possible numerical overflow

20 months agoFix T53523: Keyframes for Marker weight stay, even if the track itself is deleted
Sergey Sharybin [Tue, 19 Dec 2017 11:51:45 +0000 (12:51 +0100)]
Fix T53523: Keyframes for Marker weight stay, even if the track itself is deleted

Was using wrong prefix for the RNA path fix.

20 months agoTracking: Use new RNA path utility functions
Sergey Sharybin [Tue, 19 Dec 2017 11:48:53 +0000 (12:48 +0100)]
Tracking: Use new RNA path utility functions

20 months agoTracking: Add utility function to get RNA path for given track
Sergey Sharybin [Tue, 19 Dec 2017 11:45:23 +0000 (12:45 +0100)]
Tracking: Add utility function to get RNA path for given track

20 months agoTracking: Remove duplicated functions
Sergey Sharybin [Tue, 19 Dec 2017 11:22:34 +0000 (12:22 +0100)]
Tracking: Remove duplicated functions

20 months agoTracking: Add plane tracks equivalents to previous commit
Sergey Sharybin [Tue, 19 Dec 2017 11:18:52 +0000 (12:18 +0100)]
Tracking: Add plane tracks equivalents to previous commit

20 months agoTracking: Add utility function to get tracks list for given track
Sergey Sharybin [Tue, 19 Dec 2017 11:14:26 +0000 (12:14 +0100)]
Tracking: Add utility function to get tracks list for given track

20 months agoTracking: Add utility function to find tracking object from a given track
Sergey Sharybin [Tue, 19 Dec 2017 11:10:42 +0000 (12:10 +0100)]
Tracking: Add utility function to find tracking object from a given track

20 months agoCleanup: Don't use camel case for variable names
Sergey Sharybin [Tue, 19 Dec 2017 10:53:11 +0000 (11:53 +0100)]
Cleanup: Don't use camel case for variable names

20 months agoFix T53559: Auto texture space for text and font is wrong in Cycles
Sergey Sharybin [Tue, 19 Dec 2017 09:01:00 +0000 (10:01 +0100)]
Fix T53559: Auto texture space for text and font is wrong in Cycles

The issue actually goes a bit deeper, converting curve to mesh will
change texture space just because font and bezier curves are using CV
to calculate texture space.

So now when those objects are converted to mesh, we disable auto
texture space and copy evaluated space over.

20 months agoCycles tests: Enable texture space tests
Sergey Sharybin [Tue, 19 Dec 2017 08:50:55 +0000 (09:50 +0100)]
Cycles tests: Enable texture space tests

20 months agoUI: split out button checks from tooltip creation
Campbell Barton [Tue, 19 Dec 2017 08:30:05 +0000 (19:30 +1100)]
UI: split out button checks from tooltip creation

Allows to make tooltips from other kinds of data.

20 months agoFix T53547 for real now
Sergey Sharybin [Tue, 19 Dec 2017 07:56:11 +0000 (08:56 +0100)]
Fix T53547 for real now

Original fix was assuming that particle init operation is updated on every
frame, which is wrong behavior and that was fixed in previous commit to the
original bugfix.

20 months ago3D View: use shortest angle between quaternions
Campbell Barton [Tue, 19 Dec 2017 03:05:54 +0000 (14:05 +1100)]
3D View: use shortest angle between quaternions

Gave incorrect smoothview speed changing between some axis and
axis locking.

20 months agoMath Lib: signed versions of quaternion angle
Campbell Barton [Tue, 19 Dec 2017 02:59:18 +0000 (13:59 +1100)]
Math Lib: signed versions of quaternion angle

There was no simple way to get the shortest quaternion angle.

20 months agoFix T53474, bevel glitchy with big objects.
Howard Trickey [Mon, 18 Dec 2017 17:24:42 +0000 (12:24 -0500)]
Fix T53474, bevel glitchy with big objects.

A comparison should have not just have been against an epsilon,
but relative to the edge length involved.
Thanks to mano-wii for patch on which this is based.

20 months agoDepsgraph: Add facilities to store what ID recalc flag component corresponds to
Sergey Sharybin [Mon, 18 Dec 2017 15:46:32 +0000 (16:46 +0100)]
Depsgraph: Add facilities to store what ID recalc flag component corresponds to

The idea is to de-duplicate logic in DEG_id_tag_update() and flushing where we
need to translate depsgraph tag or component type to ID level recalc flag.

Currently unused, but is required for Blender 2.8.

20 months agoAdd dedicated named constant for no ID recalc flag
Sergey Sharybin [Mon, 18 Dec 2017 15:40:18 +0000 (16:40 +0100)]
Add dedicated named constant for no ID recalc flag

20 months agoDepsgraph: Synchronize flushing with 2.8 branch
Sergey Sharybin [Mon, 18 Dec 2017 15:33:12 +0000 (16:33 +0100)]
Depsgraph: Synchronize flushing with 2.8 branch

Not only this helps merges form master to the branch, but also:

- Allows us to production-check changes as soon as possible.
- Avoids some unnecessary editors update about ID changes.
- Adds small optimization on queue size by always keeping one of the pointers
  outside of the queue.

20 months agoDepsgraph: Add query API to traverse all dependent IDs of the given ID
Sergey Sharybin [Fri, 1 Dec 2017 10:35:36 +0000 (11:35 +0100)]
Depsgraph: Add query API to traverse all dependent IDs of the given ID

20 months agoDepsgraph: Replace iteration over ghash with iteration over flat array
Sergey Sharybin [Wed, 8 Nov 2017 13:48:25 +0000 (14:48 +0100)]
Depsgraph: Replace iteration over ghash with iteration over flat array

20 months agoDepsgraph: Introduce flat list of ID nodes
Sergey Sharybin [Wed, 8 Nov 2017 13:29:58 +0000 (14:29 +0100)]
Depsgraph: Introduce flat list of ID nodes

The idea is to allow iterating over ID nodes in exact order of their
construction, and in order which will not change dependent on memory
pointers or anything.

20 months agoFix T53398: Surface deform modifier says that convex polygons are concave for big...
Sergey Sharybin [Mon, 18 Dec 2017 14:16:22 +0000 (15:16 +0100)]
Fix T53398: Surface deform modifier says that convex polygons are concave for big faces

Dot-product for angle check need either to be divided by vectors magnitude or be
calculated for normalized vectors.

20 months agoFix T53577: Rake sculpt/paint wrong on first step
Campbell Barton [Mon, 18 Dec 2017 03:35:15 +0000 (14:35 +1100)]
Fix T53577: Rake sculpt/paint wrong on first step

20 months agoCMake: bump minimum version to 3.5
Campbell Barton [Sat, 16 Dec 2017 14:04:05 +0000 (01:04 +1100)]
CMake: bump minimum version to 3.5

21 months agoDepsgraph: Cleanup, remove unused function
Sergey Sharybin [Fri, 15 Dec 2017 16:47:15 +0000 (17:47 +0100)]
Depsgraph: Cleanup, remove unused function

21 months agoDepsgraph: Cleanup, make naming more understandable
Sergey Sharybin [Fri, 15 Dec 2017 16:46:30 +0000 (17:46 +0100)]
Depsgraph: Cleanup, make naming more understandable

21 months agoDepsgraph: Use array instead of set for node factory
Sergey Sharybin [Fri, 15 Dec 2017 16:42:07 +0000 (17:42 +0100)]
Depsgraph: Use array instead of set for node factory

Avoids extra time spent on hashing and such.

Old comment is kind of weird, because types we can totally make a sequent
integer values.

21 months agoDepsgraph: Add named constant with number of node types
Sergey Sharybin [Fri, 15 Dec 2017 16:39:01 +0000 (17:39 +0100)]
Depsgraph: Add named constant with number of node types

21 months agoDepsgraph: Don't use negative enum value
Sergey Sharybin [Fri, 15 Dec 2017 16:38:12 +0000 (17:38 +0100)]
Depsgraph: Don't use negative enum value

Not sure why it sohuld be negative, we shouldn't be using any explicit value

21 months agomath utils: Add utilities to scan bit and clear it
Sergey Sharybin [Fri, 15 Dec 2017 15:41:31 +0000 (16:41 +0100)]
math utils: Add utilities to scan bit and clear it

21 months agoMath utils: Go away form naive code for highest_order_bit_uint
Sergey Sharybin [Fri, 15 Dec 2017 15:28:53 +0000 (16:28 +0100)]
Math utils: Go away form naive code for highest_order_bit_uint

21 months agoMath utils: Add bit scan operations
Sergey Sharybin [Fri, 15 Dec 2017 15:22:54 +0000 (16:22 +0100)]
Math utils: Add bit scan operations

21 months agoMath utils: Make it more clear what the functions are returning
Sergey Sharybin [Fri, 15 Dec 2017 15:17:37 +0000 (16:17 +0100)]
Math utils: Make it more clear what the functions are returning

21 months agoMath utils: Cleanup, use _uint suffix for function which operates on uint
Sergey Sharybin [Fri, 15 Dec 2017 15:16:22 +0000 (16:16 +0100)]
Math utils: Cleanup, use _uint suffix for function which operates on uint

21 months agoTracking: Cleanup, fix typo in variable name
Sebastian Koenig [Fri, 15 Dec 2017 12:53:44 +0000 (13:53 +0100)]
Tracking: Cleanup, fix typo in variable name

21 months agoTracking: Pass all markers to autotrack at once
Sergey Sharybin [Fri, 15 Dec 2017 11:51:53 +0000 (12:51 +0100)]
Tracking: Pass all markers to autotrack at once

This solves delay before tracking actually starts.

The issue is reported by Sebastian over IRC, thanks!

21 months agoLibmv: Add C-API function to set all markers within AutoTrack structure
Sergey Sharybin [Fri, 15 Dec 2017 11:51:17 +0000 (12:51 +0100)]
Libmv: Add C-API function to set all markers within AutoTrack structure

21 months agoTracking: Cleanup, make autotrack context creation code more granular
Sergey Sharybin [Fri, 15 Dec 2017 11:35:41 +0000 (12:35 +0100)]
Tracking: Cleanup, make autotrack context creation code more granular

21 months agoTracking: Cleanup, use more const qualifiers when appropriate
Sergey Sharybin [Fri, 15 Dec 2017 11:23:35 +0000 (12:23 +0100)]
Tracking: Cleanup, use more const qualifiers when appropriate

21 months agoMove ID recalc flags into dedicated field in ID
Sergey Sharybin [Fri, 15 Dec 2017 08:43:18 +0000 (09:43 +0100)]
Move ID recalc flags into dedicated field in ID

Currently this is a no-visible-changes change, but the idea is to use this
dedicated flag to tell which exact components of ID changed, make it more
granular than just OBJECT and OBJECT_DATA. Allow setting this field based
on what components new dependency graph flushed on evaluation.

21 months agoDNA: Add dedicated recalc flag to ID
Sergey Sharybin [Thu, 14 Dec 2017 14:12:05 +0000 (15:12 +0100)]
DNA: Add dedicated recalc flag to ID

Currently unused, but this is where LIB_TAG_ID_RECALC* flags will go.

Also modified other DNA to make pointer property being followed by pointer.
Makes it easier to keep track of alignment and extend nested structures without
ruining anything.

21 months agoFix missing update for particles w/ fluids
Campbell Barton [Thu, 14 Dec 2017 01:06:36 +0000 (12:06 +1100)]
Fix missing update for particles w/ fluids

D2955 by @GonVas

21 months agoFix T53322: Collada export crash w/ shape keys
Campbell Barton [Wed, 13 Dec 2017 23:41:39 +0000 (10:41 +1100)]
Fix T53322: Collada export crash w/ shape keys

D2958 by @cmbasnett

21 months agoFix T53550: E hotkey not working after the color-band picker commit
Ray Molenkamp [Wed, 13 Dec 2017 13:59:44 +0000 (06:59 -0700)]
Fix T53550: E hotkey not working after the color-band picker commit

Related to D2886, the color-band picker was lacking a poll function.

21 months agoDepsgraph: Cleanup, use less explicit checks of LIB_TAG_ID_RECALC_DATA
Sergey Sharybin [Wed, 13 Dec 2017 13:39:56 +0000 (14:39 +0100)]
Depsgraph: Cleanup, use less explicit checks of LIB_TAG_ID_RECALC_DATA

This is a part of ongoing work in Blender 2.8, where we need to replace

  `object->id.tag & LIB_TAG_ID_RECALC_DATA`


  `object->data->id.tag & LIB_TAG_ID_RECALC`

Should be no user measurable difference.