blender.git
4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Fri, 1 Sep 2017 09:17:14 +0000 (19:17 +1000)]
Merge branch 'master' into blender2.8

4 years agoRNA: demote non-strict class naming to warning
Campbell Barton [Fri, 1 Sep 2017 07:06:14 +0000 (17:06 +1000)]
RNA: demote non-strict class naming to warning

This stops a lot of add-ons from registering,
while this must be resolved but there no need to force error just now.

4 years agoCycles: follow strict class naming convention
Campbell Barton [Fri, 1 Sep 2017 06:08:25 +0000 (16:08 +1000)]
Cycles: follow strict class naming convention

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Thu, 31 Aug 2017 16:30:48 +0000 (02:30 +1000)]
Merge branch 'master' into blender2.8

4 years agoRNA: strict naming for types in bpy.types
Campbell Barton [Thu, 31 Aug 2017 14:58:18 +0000 (00:58 +1000)]
RNA: strict naming for types in bpy.types

Blender scripts already do this, some addons will need updating.

4 years agoCleanup: strict naming conventions
Campbell Barton [Thu, 31 Aug 2017 14:57:36 +0000 (00:57 +1000)]
Cleanup: strict naming conventions

4 years agoIncrease max/min frame range to over a million
Dalai Felinto [Thu, 31 Aug 2017 14:06:08 +0000 (16:06 +0200)]
Increase max/min frame range to over a million

For some specific pipelines (e.g., holographic rendering) you can easily
need over a million frames (1k * 1k view angles).

It seems a corner case, but there is no real reason not to allow users
doing that.

That said we do loose subframe precision in the highest frame range. Which can
affect motionblur. The current maximum sub-frame precision we have is 16.
While the previous limit of 500k frames has a precision of 32.

Thanks to Campbell Barton for the help here.

To be backported to 2.79

4 years agoRNA: Limit which classes struct-map contains
Campbell Barton [Thu, 31 Aug 2017 13:32:21 +0000 (23:32 +1000)]
RNA: Limit which classes struct-map contains

Only add subclasses of: Menu, Panel, Header, UIList, Operator

This helps avoid unnecessary naming collisions,

See T52599 for details

4 years agoCycles: Cleanup, indentation and trailing whitespace
Sergey Sharybin [Thu, 31 Aug 2017 12:47:49 +0000 (14:47 +0200)]
Cycles: Cleanup, indentation and trailing whitespace

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Thu, 31 Aug 2017 11:57:14 +0000 (21:57 +1000)]
Merge branch 'master' into blender2.8

4 years agoCycles: Fix typo in comment
Sergey Sharybin [Thu, 31 Aug 2017 11:24:32 +0000 (13:24 +0200)]
Cycles: Fix typo in comment

4 years agoCorrect last commit
Campbell Barton [Thu, 31 Aug 2017 09:12:45 +0000 (19:12 +1000)]
Correct last commit

4 years agoRNA: existing type check used wrong identifier
Campbell Barton [Thu, 31 Aug 2017 08:42:48 +0000 (18:42 +1000)]
RNA: existing type check used wrong identifier

Own error in recent type checks, in many cases the 'idname'
is used for the struct identifier, not the 'identifier'
which is the Python class name in this context.

4 years agoFix T52591: OpenColorIO not working correct with OpenGL core profile on macOS.
Brecht Van Lommel [Wed, 30 Aug 2017 16:28:33 +0000 (18:28 +0200)]
Fix T52591: OpenColorIO not working correct with OpenGL core profile on macOS.

Also remove textureSize() replacement code, is always supported now.

4 years agoOCIO: use modern GLSL texture functions
Mike Erwin [Wed, 30 Aug 2017 17:19:59 +0000 (13:19 -0400)]
OCIO: use modern GLSL texture functions

small part of ongoing OpenGL upgrade

4 years agoManipulator: correct pivot w/ non 1:1 aspect
Campbell Barton [Wed, 30 Aug 2017 17:07:05 +0000 (03:07 +1000)]
Manipulator: correct pivot w/ non 1:1 aspect

4 years agoManipulator: empty image manipulator, use aspect
Campbell Barton [Wed, 30 Aug 2017 16:36:47 +0000 (02:36 +1000)]
Manipulator: empty image manipulator, use aspect

4 years agoManipulator: replace old cage2d manipulator
Campbell Barton [Wed, 30 Aug 2017 15:38:51 +0000 (01:38 +1000)]
Manipulator: replace old cage2d manipulator

Mostly internal changes, keeping both manipulators
could have worked but there was no point long term.

There are still some glitches to resolve, will work on those next.

4 years agoManipulator: rename callback type
Campbell Barton [Wed, 30 Aug 2017 08:39:07 +0000 (18:39 +1000)]
Manipulator: rename callback type

4 years agoCycles: Add tangent attribute tests
Sergey Sharybin [Wed, 30 Aug 2017 15:42:00 +0000 (17:42 +0200)]
Cycles: Add tangent attribute tests

4 years agoFix T52588: Shape key value driver variables of duplicated object sets refer to old...
Bastien Montagne [Wed, 30 Aug 2017 15:24:06 +0000 (17:24 +0200)]
Fix T52588: Shape key value driver variables of duplicated object sets refer to old objects.

Regression since 2.78, to be backported to 2.79.

4 years agoEevee: Fix conditional statement depending on unitialized value
Dalai Felinto [Wed, 30 Aug 2017 09:09:07 +0000 (11:09 +0200)]
Eevee: Fix conditional statement depending on unitialized value

Basically since g_data was malloc'ed (instead of calloc'ed)
g_data->minzbuffer was never initialized.

So when running DRW_framebuffer_init after EEVEE_effects_init, the test
to *g_data->minzbuffer would lead to unpredictable results.

This was caught by valgrind, reported by Sergey Sharybin.

4 years agoRefactor 'split faces' mesh code.
Bastien Montagne [Wed, 30 Aug 2017 14:42:53 +0000 (16:42 +0200)]
Refactor 'split faces' mesh code.

Previous version was trying to do a quick and simple process in the case
we were only considering smooth/flat status of faces.

Thing is, even then, the algorithm was not actually working in all
possible situations, e.g. two smooth faces having a single vertex in
common, but no common edges, would not have split that vertex, leading
to incorrect shading etc.

So now, tweaked slightly our split normals code to be able to generate
lnor spaces even when autosmooth is disabled, and we always go that way
when splitting faces.

Using smooth fans from clnor spaces is not only the only way to get 100%
correct results, it also makes face split code simpler.

4 years agoAttempt to fix OpenColorIO issues on Mac
Dalai Felinto [Wed, 30 Aug 2017 13:06:53 +0000 (15:06 +0200)]
Attempt to fix OpenColorIO issues on Mac

We cannot have version130 there (should use version 330 instead).
Patch suggested by Brecht Van Lommel

4 years agoFixing T52477 - switching from custom ray/triangle intersection code to the one from...
Stefan Werner [Wed, 30 Aug 2017 09:47:33 +0000 (11:47 +0200)]
Fixing T52477 - switching from custom ray/triangle intersection code to the one from util_intersection.h. This fixes the bug and makes the code more readable and maintainable.

4 years agoDepsgraph: Copy-on-write component does not depend on itself
Sergey Sharybin [Tue, 29 Aug 2017 15:16:05 +0000 (17:16 +0200)]
Depsgraph: Copy-on-write component does not depend on itself

4 years agoManipulator: remove inline matrix calculation
Campbell Barton [Wed, 30 Aug 2017 08:13:25 +0000 (18:13 +1000)]
Manipulator: remove inline matrix calculation

4 years agoManipulator: run callback when calculating the final matrix
Campbell Barton [Wed, 30 Aug 2017 07:53:32 +0000 (17:53 +1000)]
Manipulator: run callback when calculating the final matrix

4 years agoCycles: Fix build with networking enabled
Mai Lavelle [Wed, 30 Aug 2017 04:19:44 +0000 (00:19 -0400)]
Cycles: Fix build with networking enabled

4 years agoFix Cycles Windows render errors with BVH2 CPU rendering.
Brecht Van Lommel [Tue, 29 Aug 2017 19:11:47 +0000 (21:11 +0200)]
Fix Cycles Windows render errors with BVH2 CPU rendering.

One problem is that it was always using __mm_blendv_ps emulation even if the
instruction was supported. The other that the emulation function was wrong.

Thanks a lot to Ray Molenkamp for tracking this one down.

4 years agoDepsgraph: Fix crash when ungrouping node group
Sergey Sharybin [Tue, 29 Aug 2017 15:12:43 +0000 (17:12 +0200)]
Depsgraph: Fix crash when ungrouping node group

We shouldn't tag both COW and shading parameters ocmponents for update at
the same time.

4 years agoDepsgraph: Fix missing material update when driving property in a group
Sergey Sharybin [Tue, 29 Aug 2017 15:03:07 +0000 (17:03 +0200)]
Depsgraph: Fix missing material update when driving property in a group

4 years agoAlembic: Fix T52579: crash when replacing slightly different alembic files
Sybren A. Stüvel [Tue, 29 Aug 2017 14:58:13 +0000 (16:58 +0200)]
Alembic: Fix T52579: crash when replacing slightly different alembic files

Apparently with Maya in a certain configuration, it's possible to have an
Alembic object without schema in the Alembic file. This is now handled
properly, instead of crashing on a null pointer.

4 years agoFix possibly missing flushes back to copy-on-write operation
Sergey Sharybin [Tue, 29 Aug 2017 14:28:06 +0000 (16:28 +0200)]
Fix possibly missing flushes back to copy-on-write operation

Could have happened if multiple tags per object happens.

4 years agoFix T48079: Maintain Volume constraint overcompensates.
Alexander Gavrilov [Tue, 29 Aug 2017 12:23:47 +0000 (15:23 +0300)]
Fix T48079: Maintain Volume constraint overcompensates.

The coefficient has been wrong since introduction for some reason.

Not backwards compatible, should not be merged to 2.7*.

4 years agoSupport Copy To Selected and Alt-Click for F-Curves in the curve editor.
Alexander Gavrilov [Sat, 19 Aug 2017 16:58:39 +0000 (19:58 +0300)]
Support Copy To Selected and Alt-Click for F-Curves in the curve editor.

This affects the curve display color setting, but is really intended
for future per-curve options.

The id_data reference in the created rna pointers refers to the object
even if the curve is actually owned by its action, which is somewhat
inconsistent, but the same problem can be found in existing code.
Fixing it requires changes in animdata filter API.

4 years agoDepsgraph: Fix missing updates when tweaking node tree parameters
Sergey Sharybin [Tue, 29 Aug 2017 10:51:56 +0000 (12:51 +0200)]
Depsgraph: Fix missing updates when tweaking node tree parameters

The is following: split copy on write update for node trees, and if we are only
tagging for uniform buffer update we skip whole datablock copy and only invoke
copy default_values form original nodetree to a copied one.

Thing which i'm not sure is: whether we need to use different branches in graph
itself to control such a conditional behavior, or whether we need to store tag
somewhere in the dependency graph. There are obviously cons and pros in both
approaches, and need to think about this. Maybe with more examples it becomes
more obvious which way is better.

This only fixes manual tweaks for now, animation support is coming.

4 years agoAdd utility function to copy default values from one tree to another
Sergey Sharybin [Tue, 29 Aug 2017 10:20:55 +0000 (12:20 +0200)]
Add utility function to copy default values from one tree to another

The trees should match in nodes layout completely.

4 years agoManipulator: use cage2d_rotate in UV view
Campbell Barton [Tue, 29 Aug 2017 09:29:27 +0000 (19:29 +1000)]
Manipulator: use cage2d_rotate in UV view

Use when selection bounds isn't a single point.

4 years agoManipulator: new cage2d manipulator
Campbell Barton [Tue, 29 Aug 2017 09:15:36 +0000 (19:15 +1000)]
Manipulator: new cage2d manipulator

Adding alongside the existing one for now,
but it should eventually replace it.

Uses a matrix instead of (position + scale),
written so rotation can be done more easily.

Currently has a primitive handle for rotation, supports corner scaling.

4 years agoView2D: function to get view to region matrix
Campbell Barton [Tue, 29 Aug 2017 09:36:06 +0000 (19:36 +1000)]
View2D: function to get view to region matrix

4 years agoDepsgraph: Fix missing updates when changing node tree topology
Sergey Sharybin [Tue, 29 Aug 2017 09:26:57 +0000 (11:26 +0200)]
Depsgraph: Fix missing updates when changing node tree topology

There were two issues here:

1. material_update did not do anything, because DEG_id_tag_update was storing
   update tags in original IDs, which had nothing evaluated. Even more, material
   update should have been called with evaluated version of material, Solved
   this by copying update tag from original ID to a copied one.

   However, perhaps DEG_id_tag_update should tag both original and copied ID,
   so updates are never gets lots if some depsgraph is not visible.

2. Tagging material for update should ensure it's copied version of node tree is
   up to date, otherwise material will still use old node tree.

This solves missing material updates when changing topology. Tweaking values is
still broken, because of GPUMaterial using pointer to original node's socket
value, which gets broken after copy-on-write of the node tree (pointers of nodes
are changing).

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Tue, 29 Aug 2017 09:38:01 +0000 (19:38 +1000)]
Merge branch 'master' into blender2.8

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Tue, 29 Aug 2017 06:06:26 +0000 (16:06 +1000)]
Merge branch 'master' into blender2.8

4 years agoTransform: scale center override by aspect
Campbell Barton [Tue, 29 Aug 2017 06:01:16 +0000 (16:01 +1000)]
Transform: scale center override by aspect

Needed for image space.

4 years agoCleanup: naming (RECT -> CAGE2D)
Campbell Barton [Tue, 29 Aug 2017 02:51:44 +0000 (12:51 +1000)]
Cleanup: naming (RECT -> CAGE2D)

Make cage2d 'part' defines public (needed to assign operator actions).

4 years agoDepsgraph: Don't case ID_Type to short
Sergey Sharybin [Mon, 28 Aug 2017 09:51:53 +0000 (11:51 +0200)]
Depsgraph: Don't case ID_Type to short

4 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Mon, 28 Aug 2017 09:44:39 +0000 (11:44 +0200)]
Merge branch 'master' into blender2.8

4 years agoDepsgraph: Don't cast ID_Type to short
Sergey Sharybin [Mon, 28 Aug 2017 09:43:36 +0000 (11:43 +0200)]
Depsgraph: Don't cast ID_Type to short

4 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Mon, 28 Aug 2017 09:27:50 +0000 (11:27 +0200)]
Merge branch 'master' into blender2.8

4 years agoMake GS macro return proper IDType type
Sergey Sharybin [Mon, 28 Aug 2017 09:19:58 +0000 (11:19 +0200)]
Make GS macro return proper IDType type

Previously it was returning short, which was really easy to (a) compare against
non-ID type value (b) forget to handle some specific value in switch statement.

Both issues happened in the nearest past, so it's time to tighten some nuts
here.

Most of the change related on silencing strict compiler warning now, but there
is also one tricky aspect: ID_NLA is not in the IDType enum. So there is still
cast to short to handle that switch. If someone has better ideas how to deal
with this please go ahead :)

4 years agoAtomics: Use system headers directly, without bad level dependency to BLI
Sergey Sharybin [Mon, 28 Aug 2017 09:06:15 +0000 (11:06 +0200)]
Atomics: Use system headers directly, without bad level dependency to BLI

This will make it easier to re-use library as-is in other projects,
such as Cycles standalone repo for example.

4 years agoDepsgraph: Pass copy-on-write pointer to material update
Sergey Sharybin [Mon, 28 Aug 2017 09:00:42 +0000 (11:00 +0200)]
Depsgraph: Pass copy-on-write pointer to material update

Unfortunately, there is something else wrong going on here, which makes objects
black after tweaking material settings.

4 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Mon, 28 Aug 2017 08:33:29 +0000 (10:33 +0200)]
Merge branch 'master' into blender2.8

4 years agoBuildbot: Tweak nightly schedule of builds
Sergey Sharybin [Mon, 28 Aug 2017 07:12:53 +0000 (09:12 +0200)]
Buildbot: Tweak nightly schedule of builds

Basically, schedule linux 64 earlier on, so builds are ready for nightly benchmarks.

4 years agoMissing from last commit (missed manually resolving)
Campbell Barton [Mon, 28 Aug 2017 06:28:50 +0000 (16:28 +1000)]
Missing from last commit (missed manually resolving)

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Mon, 28 Aug 2017 06:04:42 +0000 (16:04 +1000)]
Merge branch 'master' into blender2.8

4 years agoTransform: center override
Campbell Barton [Mon, 28 Aug 2017 06:00:28 +0000 (16:00 +1000)]
Transform: center override

Hidden option to override transform center.
Needed for manipulators that define their own center.

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Mon, 28 Aug 2017 04:25:10 +0000 (14:25 +1000)]
Merge branch 'master' into blender2.8

4 years agoEditMesh: set edge-rin subdiv minimum to 1
Campbell Barton [Mon, 28 Aug 2017 03:01:11 +0000 (13:01 +1000)]
EditMesh: set edge-rin subdiv minimum to 1

This only made sense for bridge tool.

D2785 by @mbjorkegren

4 years agoDocs: BMesh.from_mesh behavior w/ multiple calls
Campbell Barton [Mon, 28 Aug 2017 02:40:36 +0000 (12:40 +1000)]
Docs: BMesh.from_mesh behavior w/ multiple calls

4 years agoFix T51400: Pasting hex code fails
Campbell Barton [Mon, 28 Aug 2017 02:18:39 +0000 (12:18 +1000)]
Fix T51400: Pasting hex code fails

The # prefix is supported,
the button didn't give enough space to paste it.

D2812 by @candreacchio

4 years agoFix T52498: Deleting force field doesn't remove "Surface" from modifier stack.
Bastien Montagne [Sun, 27 Aug 2017 10:20:21 +0000 (12:20 +0200)]
Fix T52498: Deleting force field doesn't remove "Surface" from modifier stack.

Logic in `ED_object_check_force_modifiers` was inconsistent between add
and remove modifier cases.

Should be safe enough for 2.79.

4 years agoEditMesh: set edge-rin subdiv minimum to 1
Campbell Barton [Mon, 28 Aug 2017 03:01:11 +0000 (13:01 +1000)]
EditMesh: set edge-rin subdiv minimum to 1

This only made sense for bridge tool.

D2785 by @mbjorkegren

4 years agoDocs: BMesh.from_mesh behavior w/ multiple calls
Campbell Barton [Mon, 28 Aug 2017 02:40:36 +0000 (12:40 +1000)]
Docs: BMesh.from_mesh behavior w/ multiple calls

4 years agoFix T51400: Pasting hex code fails
Campbell Barton [Mon, 28 Aug 2017 02:18:39 +0000 (12:18 +1000)]
Fix T51400: Pasting hex code fails

The # prefix is supported,
the button didn't give enough space to paste it.

D2812 by @candreacchio

4 years agoFix blenderplayer compilation
Julian Eisel [Mon, 28 Aug 2017 00:08:47 +0000 (02:08 +0200)]
Fix blenderplayer compilation

4 years agoManipulator: support operator per-part
Campbell Barton [Sun, 27 Aug 2017 14:48:43 +0000 (00:48 +1000)]
Manipulator: support operator per-part

A single manipulator could only assign a single operator to each part.
Now each part can have it's own.

Also modify 2D selection callback, 2D started at 1, 3D at 0.
Now use -1 for unset value, start both at 0.

4 years agoFix T52498: Deleting force field doesn't remove "Surface" from modifier stack.
Bastien Montagne [Sun, 27 Aug 2017 10:20:21 +0000 (12:20 +0200)]
Fix T52498: Deleting force field doesn't remove "Surface" from modifier stack.

Logic in `ED_object_check_force_modifiers` was inconsistent between add
and remove modifier cases.

Should be safe enough for 2.79.

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Sun, 27 Aug 2017 06:35:51 +0000 (16:35 +1000)]
Merge branch 'master' into blender2.8

4 years agoBLI_rect: Function to calculate a matrix from 2 rctf's
Campbell Barton [Sun, 27 Aug 2017 06:01:06 +0000 (16:01 +1000)]
BLI_rect: Function to calculate a matrix from 2 rctf's

4 years agoMissing from last commit
Campbell Barton [Sun, 27 Aug 2017 05:24:41 +0000 (15:24 +1000)]
Missing from last commit

4 years agoCleanup: use stubs for eigen gtest
Campbell Barton [Sun, 27 Aug 2017 05:19:25 +0000 (15:19 +1000)]
Cleanup: use stubs for eigen gtest

4 years agoCorrect matrix stack assert
Campbell Barton [Sun, 27 Aug 2017 01:22:31 +0000 (11:22 +1000)]
Correct matrix stack assert

4 years agoMissed last commit
Campbell Barton [Sat, 26 Aug 2017 17:48:18 +0000 (03:48 +1000)]
Missed last commit

4 years agoFix T52515: Crash on BMesh.to_mesh()
Campbell Barton [Sat, 26 Aug 2017 16:38:19 +0000 (02:38 +1000)]
Fix T52515: Crash on BMesh.to_mesh()

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Sat, 26 Aug 2017 14:51:54 +0000 (00:51 +1000)]
Merge branch 'master' into blender2.8

4 years agoWM: move theme check out of ED_view3d_draw_select_loop
Campbell Barton [Sat, 26 Aug 2017 14:48:52 +0000 (00:48 +1000)]
WM: move theme check out of ED_view3d_draw_select_loop

In 2.8x this needs to be in view3d_opengl_select,
so simplest to make in master too.

4 years agoFix minor Mesh -> BMesh conversion issues
Campbell Barton [Sat, 26 Aug 2017 11:59:54 +0000 (21:59 +1000)]
Fix minor Mesh -> BMesh conversion issues

- Vertex only meshes never restored their selection history.
- Select history was cleared on the source instead of the target.

Simple Optimizations:
- Avoid O(n^2) linked list looping that checked the entire list before
  adding elements (NULL values in the source array to prevent dupes).
- Re-use vert & edge lookup tables instead of allocating new ones.

4 years agoFix T52478: Error report "Shrinkwrap: out of memory" on invisible target.
Bastien Montagne [Sat, 26 Aug 2017 12:46:59 +0000 (14:46 +0200)]
Fix T52478: Error report "Shrinkwrap: out of memory" on invisible target.

Shrinkwrap must check it does have valid target data.

Safe for 2.79 release.

4 years agoFix T52538: Outliner crash when displaying groups and using Show Active on editmode...
Bastien Montagne [Sat, 26 Aug 2017 10:27:37 +0000 (12:27 +0200)]
Fix T52538: Outliner crash when displaying groups and using Show Active on editmode bone not in any groups

There's no guaranty that given ID is found in current outliner tree...

Safe for 2.79, though not a regression.

4 years ago[cycles/ctest] fix failing tests when output folder doesn't exist yet.
Ray Molenkamp [Fri, 25 Aug 2017 23:17:49 +0000 (17:17 -0600)]
[cycles/ctest] fix failing tests when output folder doesn't exist yet.

4 years agoFix for fix (tm): Residue of the debug code
Sergey Sharybin [Fri, 25 Aug 2017 19:33:44 +0000 (21:33 +0200)]
Fix for fix (tm): Residue of the debug code

4 years agoFix mistake in previous tangent space optimization
Sergey Sharybin [Fri, 25 Aug 2017 19:29:59 +0000 (21:29 +0200)]
Fix mistake in previous tangent space optimization

4 years agoCycles: Cleanup, naming of variable
Sergey Sharybin [Fri, 25 Aug 2017 19:03:50 +0000 (21:03 +0200)]
Cycles: Cleanup, naming of variable

Always use b_ prefix for C++ RNA data.

4 years agoCycles: Add assert to catch possibly wrong logic
Sergey Sharybin [Fri, 25 Aug 2017 19:02:27 +0000 (21:02 +0200)]
Cycles: Add assert to catch possibly wrong logic

4 years agoCycles: Mark pixels with negative values as outliers
Lukas Stockner [Thu, 24 Aug 2017 21:15:30 +0000 (23:15 +0200)]
Cycles: Mark pixels with negative values as outliers

If a pixel has negative components, something already went wrong, so the best option is to just ignore it.

Should be good for 2.79.

4 years agoFix T52481: After making all local, local proxies of linked data get broken after...
Bastien Montagne [Fri, 25 Aug 2017 14:11:35 +0000 (16:11 +0200)]
Fix T52481: After making all local, local proxies of linked data get broken after file save and reload.

Issue was nasty hidden one, the dual status (mix of local and linked)
of proxies striking again.

Here, remapping process was considering obdata pointer of proxies as
indirect usage, hence clearing the 'LIB_TAG_EXTERN' of obdata pointer.
That would make savetoblend code not store any 'lib placeholder' for
obdata data-block, which was hence lost on next file read.

Another (probably better) solution here would be to actually consider
obdata of proxies are fully indirect usage, and simply reassign proxies
from their linked object's obdata on file read...

However, that change shall be safer for now, probably good for 2.79 too.

4 years agoRevert "material Glsl: Fix tangent with new orco."
Dalai Felinto [Fri, 25 Aug 2017 13:37:27 +0000 (15:37 +0200)]
Revert "material Glsl: Fix tangent with new orco."

This reverts commit 3888227a7bfdb6b3867680ea237152d2929e1bc5.

This "Fix" was made while ORCO was broken. Now that orco itself is fixed
this is no longer required, otherwise Tangent node produces different
results in Cycles and Eevee.

4 years agoAnother optimization of tangent space calculation
Sergey Sharybin [Fri, 25 Aug 2017 12:54:44 +0000 (14:54 +0200)]
Another optimization of tangent space calculation

Don't use quick sort for small arrays, bubble sort works way faster for small
arrays due to cache coherency. This is what qsort() from libc is doing actually.
We can also experiment unrolling some extra small arrays, for example 3 and 4
element arrays.

This reduces tangent space calculation for dragon from 3.1sec to 2.9sec.

4 years agoCleanup: missing break (harmless for now)
Campbell Barton [Fri, 25 Aug 2017 12:53:37 +0000 (22:53 +1000)]
Cleanup: missing break (harmless for now)

4 years agoOptimize tangent space calculation by inlining functions
Sergey Sharybin [Fri, 25 Aug 2017 12:50:04 +0000 (14:50 +0200)]
Optimize tangent space calculation by inlining functions

Brings tangent space calculation from 4.6sec to 3.1sec for dragon model in BI.
Cycles is also somewhat faster, but it has other bottlenecks.

Funny thing, using simple `static inline` already gives a lot of speedup here.
That's just answering question whether it's OK to leave decision on what to
inline up to a compiler..

4 years agoCycles: Add utility function to query current value of scoped timer
Sergey Sharybin [Fri, 25 Aug 2017 12:15:51 +0000 (14:15 +0200)]
Cycles: Add utility function to query current value of scoped timer

4 years agoCycles: Correct logging of sued CPU intrisics
Sergey Sharybin [Fri, 25 Aug 2017 12:11:45 +0000 (14:11 +0200)]
Cycles: Correct logging of sued CPU intrisics

4 years agoCycles: Fix stack overflow during traversal caused by floating overflow
Sergey Sharybin [Fri, 25 Aug 2017 12:00:33 +0000 (14:00 +0200)]
Cycles: Fix stack overflow during traversal caused by floating overflow

Would be nice to be able to catch this with assert as well, will see what would
be the best way to do this/.\

Need to verify with Mai that this solves crash for her and maybe consider
porting this to 2.79.

4 years agoFix T52528: generated texture mismatch between Cycles and Eevee
Dalai Felinto [Fri, 25 Aug 2017 12:19:27 +0000 (14:19 +0200)]
Fix T52528: generated texture mismatch between Cycles and Eevee

Finally orco should be working 100% on Eevee now. Thanks for Sergey
Sharybin for reporting this.

4 years agoRevert "Eevee: Fix generated coordinates when no texture coordinates connected"
Dalai Felinto [Fri, 25 Aug 2017 12:16:47 +0000 (14:16 +0200)]
Revert "Eevee: Fix generated coordinates when no texture coordinates connected"

This reverts commit 0e29a97813d2a2df77afe64d49d1683687ed37ab.

4 years agoFix ORCO never used for draw manager (Eevee)
Dalai Felinto [Fri, 25 Aug 2017 12:16:31 +0000 (14:16 +0200)]
Fix ORCO never used for draw manager (Eevee)

Related to T52528.

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Fri, 25 Aug 2017 12:22:50 +0000 (22:22 +1000)]
Merge branch 'master' into blender2.8

4 years agoWM: ensure 3D view theme is used in select-loop
Campbell Barton [Fri, 25 Aug 2017 12:10:27 +0000 (22:10 +1000)]
WM: ensure 3D view theme is used in select-loop

Yet another case where theme could be used uninitialized.