Sybren A. Stüvel [Thu, 23 Feb 2017 09:16:37 +0000 (10:16 +0100)]
Alembic: don't call object.getFullName() multiple times.
Sybren A. Stüvel [Thu, 23 Feb 2017 09:12:34 +0000 (10:12 +0100)]
Alembic: Renamed parent_map to reader_map
It's a mapping from full path of an Alembic object to an AbcObjectReader*.
The fact that at some point it is used to construct parent-child relations
doesn't matter.
Sybren A. Stüvel [Tue, 21 Feb 2017 14:02:17 +0000 (15:02 +0100)]
Alembic: use typedefs to make it easier to handle maps/vectors
Sybren A. Stüvel [Tue, 21 Feb 2017 14:00:27 +0000 (15:00 +0100)]
Alembic: more const-ness
Sybren A. Stüvel [Wed, 15 Feb 2017 16:29:26 +0000 (17:29 +0100)]
Alembic: fixed importer
The importer was guessing whether an Alembic IXform object was part of a
child object, or should be represented as an Empty in Blender. By reversing
the order in which objects are visited, the children can now claim their
parent as part of the same object (so IPolyMesh claims its parent IXform
as part of the same Blender object). This results in much less guesswork.
I've also removed similar guesswork from the code that sets parent pointers,
by simply searching for the parent in a hierarchical way, instead of trying
to predict (again) which IXforms were turned into empties.
Also, visit_object() now actually visits the object -- previously it only
visited its children, and assumed the object it was called on was already
handled by a previous call.
Sybren A. Stüvel [Wed, 15 Feb 2017 14:22:49 +0000 (15:22 +0100)]
Alembic: prevent a couple of unnecessary multiplications
Sybren A. Stüvel [Wed, 15 Feb 2017 14:22:21 +0000 (15:22 +0100)]
Alembic: be more explicit in y-up versus z-up variables.
Sybren A. Stüvel [Wed, 15 Feb 2017 14:20:23 +0000 (15:20 +0100)]
Alembic: removed a lot of unnecessary & duplicate code from abc_util.cc
create_transform_matrix(float[4][4]) did mostly the same as
create_transform_matrix(Object *, float[4][4]), but more elegant.
However, the former has some inconsistencies with the latter (which
are now merged and made explicit, turned out one was for z-up→y-up
while the other was for y-up→z-up), and was renamed to
copy_m44_axis_swap(...) to convey its purpose more clearly.
Furthermore, "loc" has been renamed to "trans", as matrices don't
store locations but translations; and more variables now have a src_
or dst_ prefix to denote whether they contain a matrix/vector in the
source or destination axis orientation.
Sybren A. Stüvel [Wed, 15 Feb 2017 14:40:33 +0000 (15:40 +0100)]
Alembic: added note
Sybren A. Stüvel [Wed, 15 Feb 2017 14:13:24 +0000 (15:13 +0100)]
Alembic: allow copy_{z,y}up_from_{y,z}up() to be called with yup=zup
This allows in-place conversion between z-up and y-up, by passing the
same variable to both arguments.
Sybren A. Stüvel [Wed, 15 Feb 2017 14:32:15 +0000 (15:32 +0100)]
Alembic: import empties under their own name in Alembic, not their parent's
Before this commit something strange happened, as the m_data_name of
an inherit data-less object was used.
Sybren A. Stüvel [Wed, 15 Feb 2017 14:30:34 +0000 (15:30 +0100)]
Alembic: Don't compute world matrix when it's not necessary.
Sybren A. Stüvel [Wed, 15 Feb 2017 14:29:41 +0000 (15:29 +0100)]
Alembic: cleaned up hack in AbcObjectReader::read_matrix()
Sybren A. Stüvel [Wed, 15 Feb 2017 14:26:33 +0000 (15:26 +0100)]
Alembic: added some clarification
Sybren A. Stüvel [Wed, 15 Feb 2017 14:26:00 +0000 (15:26 +0100)]
Alembic: added some getter functions to help debug prints etc.
Sybren A. Stüvel [Thu, 6 Apr 2017 13:35:57 +0000 (15:35 +0200)]
Alembic: do not presume to predict the parent name
AbcExporter::createTransformWriter() tries to predict the parent Xform
name, but if it cannot be found has multiple ways of creating it, possibly
under a different name than originally searched for.
Sybren A. Stüvel [Tue, 14 Feb 2017 16:32:55 +0000 (17:32 +0100)]
Alembic: Removed AbcTransformWriter::m_parent
It was set, but never read anywhere.
Sergey Sharybin [Thu, 6 Apr 2017 09:39:06 +0000 (11:39 +0200)]
Buildbot: Correct previous release
Seems CMake is not happy about changing compiler from script.
Sergey Sharybin [Thu, 6 Apr 2017 09:21:07 +0000 (11:21 +0200)]
Buildbot: Force build environment to use latest GCC
Campbell Barton [Thu, 6 Apr 2017 02:23:39 +0000 (12:23 +1000)]
Cleanup: function naming for manipulator
Rename 'stats_*' to 'protectflag_to_drawflags_*' (was too vague).
Also remove NULL check from gimbal_axis
Campbell Barton [Thu, 6 Apr 2017 02:00:14 +0000 (12:00 +1000)]
Cleanup: minor changes to transform-manipulator
Match stats_editbone & stats_pchan behavior to avoid confusion.
lazydodo [Wed, 5 Apr 2017 16:59:29 +0000 (10:59 -0600)]
Fix alembic build error with MSVC
Sergey Sharybin [Wed, 5 Apr 2017 13:36:17 +0000 (15:36 +0200)]
Depsghraph: Remove unused function
Sergey Sharybin [Wed, 5 Apr 2017 12:57:54 +0000 (14:57 +0200)]
Cycles: Fix race condition in attributes creation during SVM compilation
Sergey Sharybin [Wed, 5 Apr 2017 12:57:34 +0000 (14:57 +0200)]
Cycles: Add utility class to simplify scoped spin locks
Sergey Sharybin [Wed, 5 Apr 2017 12:21:49 +0000 (14:21 +0200)]
Cycles: Guard global write access in SVM compilation code
Sergey Sharybin [Wed, 5 Apr 2017 09:25:58 +0000 (11:25 +0200)]
Locales: Some optimization work
Mainly visible for MSVC debug builds and gives about 2x speedup.
Bastien Montagne [Wed, 5 Apr 2017 07:26:41 +0000 (09:26 +0200)]
InstallDeps: Raise minimal & official version of OIIO to 1.7.13.
As requested by @sergey.
Kévin Dietrich [Wed, 5 Apr 2017 02:56:38 +0000 (04:56 +0200)]
Alembic: addition of a simple logging class.
The idea is to have a system where we properly log error messages and
let the users know that errors occured redirecting them to the console
for explanations. This is only implemented for the exporter since the
importer already has similar functionalities; however they shall
ultimately be unified in some way.
Reviewers: sybren, dfelinto
Differential Revision: https://developer.blender.org/D2541
Campbell Barton [Tue, 4 Apr 2017 14:55:51 +0000 (00:55 +1000)]
Cleanup: redundant casts
Bastien Montagne [Tue, 4 Apr 2017 13:57:45 +0000 (15:57 +0200)]
Fix missing protection of `RNA_pointer_as_string()` against NULL pointers.
Odd that issue was never reached before? Looks like it hit in
datablock_idprops branch though...
Sergey Sharybin [Tue, 4 Apr 2017 11:36:58 +0000 (13:36 +0200)]
Cycles: Tag shaders for update after the threading part is over
This avoids write access happening in non-atomic manner in
Shader::tag_update which modifies the global managers. Even
for 1 byte data types it's quite dangerous.
Sergey Sharybin [Tue, 4 Apr 2017 11:38:43 +0000 (13:38 +0200)]
Depsgraph: Use atomic operation to tag the changed ID
Sergey Sharybin [Tue, 4 Apr 2017 11:47:18 +0000 (13:47 +0200)]
Cycles: Fix uninitialized memory access when comparing curve mapping nodes
The issue is coming from the fact that float3 is actually 16 bytes aligned
data type and the "padding" was not initialized. This caused memcmp() to
access non-initialized memory.
Sybren A. Stüvel [Tue, 4 Apr 2017 12:50:36 +0000 (14:50 +0200)]
install_deps: removed leftover compile_HDF5 command
It was a leftover from when Alembic with HDF5 was still officially
supported.
Sybren A. Stüvel [Tue, 4 Apr 2017 10:55:38 +0000 (12:55 +0200)]
Bumped Alembic library version to 1.7.1
This provides us with a clearer API (so I don't have to use const_cast<>
in upcoming code). It also allows layering of different Alembic files,
so you can have a base file and load a separate file containing overrides.
Verbally approved by Dr. Sergey.
Sergey Sharybin [Tue, 4 Apr 2017 10:52:37 +0000 (12:52 +0200)]
Buildbot: Update master config
Sybren A. Stüvel [Thu, 16 Feb 2017 09:59:19 +0000 (10:59 +0100)]
Alembic: force ALEMBIC_LIB_USES_BOOST=ON when not using C++11
Alembic requires one of ALEMBIC_LIB_USES_BOOST, ALEMBIC_LIB_USES_TR1, or
C++11, and silently defaults to the latter if the former two are OFF.
Before this change, Alembic was only built without C++11 of OpenEXR
was built at the same time. This dependency was both unnecessary and
undocumented.
Sergey Sharybin [Tue, 4 Apr 2017 10:32:15 +0000 (12:32 +0200)]
Task: Remove non-atomic pool suspended flag assignment
This was done some lines above by atomic fetch and and.
Sergey Sharybin [Tue, 4 Apr 2017 10:15:35 +0000 (12:15 +0200)]
Buildbot: Update master config
Sergey Sharybin [Mon, 3 Apr 2017 13:51:31 +0000 (15:51 +0200)]
Buildbot: Some more twqeaks to master config
Sergey Sharybin [Mon, 3 Apr 2017 13:36:52 +0000 (15:36 +0200)]
Buildbot: Update bundled vetrsion of server configuration
Sergey Sharybin [Mon, 3 Apr 2017 13:04:16 +0000 (15:04 +0200)]
Buildbot: SPecial branch trickery for linux slaves
Sergey Sharybin [Mon, 3 Apr 2017 12:54:51 +0000 (14:54 +0200)]
Point all submodules to master branch
This way it should be safe to use `git submodule update --remote`.
Sergey Sharybin [Mon, 3 Apr 2017 12:49:07 +0000 (14:49 +0200)]
Buildbot: Some special tricks for Blender 2.8 slave
Sergey Sharybin [Mon, 3 Apr 2017 10:31:33 +0000 (12:31 +0200)]
Fix blender player
Sergey Sharybin [Mon, 3 Apr 2017 08:50:42 +0000 (10:50 +0200)]
Fix T51115: Bump node is broken when the displacement socket is used
Gaia Clary [Mon, 3 Apr 2017 08:48:00 +0000 (10:48 +0200)]
Collada - add flag to limit precision of exported data, mainly to simplify debugging
Gaia Clary [Mon, 3 Apr 2017 08:45:24 +0000 (10:45 +0200)]
fix: collada - do proper conversion from int to bool (as with other nearby parameters)
Gaia Clary [Sat, 1 Apr 2017 13:29:40 +0000 (15:29 +0200)]
fix: T50412 - collada: Replaced precision local limit function by blender's own implementation
Campbell Barton [Sat, 1 Apr 2017 01:09:17 +0000 (12:09 +1100)]
Cleanup: style
Sergey Sharybin [Fri, 31 Mar 2017 15:07:44 +0000 (17:07 +0200)]
Depsgraph: Correction for the previous local view commit
Need to flush layers from components back to ID node.
Sergey Sharybin [Fri, 31 Mar 2017 14:09:27 +0000 (16:09 +0200)]
Fix threading conflicts in multitex_ext_safe()
This function was modifying texture datablock, which makes the call
unsafe for call from multiple threads. Now we pass the argument that
we don't need nodes to the underlying functions.
There will be still race condition in noise texture, but that should
at least be free from crashes. Doesn't mean we shouldn't fix it tho.
Sergey Sharybin [Fri, 31 Mar 2017 13:29:20 +0000 (15:29 +0200)]
Cycles: Solve threading conflict in shader synchronization
Update tag might access links (when checking for attributes) and
the links might be in the middle of rebuild in simplification
logic.
Alexander Romanov [Fri, 31 Mar 2017 14:53:55 +0000 (17:53 +0300)]
Fix unreported bug in Blender Render: using unnormalized normal in normal map node in the same way as in baking
Campbell Barton [Fri, 31 Mar 2017 12:42:44 +0000 (23:42 +1100)]
WM: Previous commit broke common-case loading new file
Handle this in the operator
Campbell Barton [Fri, 31 Mar 2017 11:06:36 +0000 (22:06 +1100)]
Keep current app-template when selecting 'New File'
Bastien Montagne [Fri, 31 Mar 2017 10:13:34 +0000 (12:13 +0200)]
UI cleanup: simplify Icon handling of uiDefAutoButR for PROP_POINTER.
Comes from D113, but really not related to the patch's topic!
Mai Lavelle [Fri, 31 Mar 2017 08:12:13 +0000 (10:12 +0200)]
Cycles: More fixes after include changes
Germano Cavalcante [Fri, 31 Mar 2017 04:01:16 +0000 (01:01 -0300)]
Fix T51072: The reference of a pyobject may be being overwritten in `bm_mesh_remap_cd_update`
In this case the Pyobject gets lost from pybm, and bm.free() does not invalidate the PyElem.
This will cause the destructor of python to read invalid memory and crash.
The solution is to make a copy of the pyobjects pointers before overwriting.
Campbell Barton [Thu, 30 Mar 2017 22:45:25 +0000 (09:45 +1100)]
Correct string formatting (error in recent change)
Campbell Barton [Thu, 30 Mar 2017 22:48:38 +0000 (09:48 +1100)]
Cleanup: warnings
Bastien Montagne [Thu, 30 Mar 2017 20:52:12 +0000 (22:52 +0200)]
Cleanup/fix bad code in IDP_SetIndexArray()
Mainly, using index before checking for its validity...
raa [Thu, 30 Mar 2017 13:48:18 +0000 (16:48 +0300)]
Redraw parent popup when the child popup is closed
Sergey Sharybin [Thu, 30 Mar 2017 12:38:25 +0000 (14:38 +0200)]
Depsgraph: Fix missing updates when in local view
This area is a subject of reconsideration, so for now used simplest
way possible -- ensure depsgraph's nodes have proper layer flags
when going in and out of local mode.
Sergey Sharybin [Thu, 30 Mar 2017 09:42:23 +0000 (11:42 +0200)]
Cycles: Fix missing kernel re-compilation after recent changes
Reported by Mai in IRC, thanks!
Sergey Sharybin [Thu, 30 Mar 2017 09:23:26 +0000 (11:23 +0200)]
Fix T51051: Incorrect render on 32bit Linux
The issue was apparently caused by -fno-finite-math-only added to kernel.cpp
CFLAGS. For now just removed this flag from the kernel (we don't really want
it there at this point, and we don't have it for SSE/AVX optimized kernels).
But surely more investigation is needed here.
Sergey Sharybin [Tue, 28 Mar 2017 16:58:51 +0000 (18:58 +0200)]
Cycles: Cleanup, rename RegularBVH to BinaryBVH
Makes it more explicit what the structure is from it's name.
Campbell Barton [Thu, 30 Mar 2017 01:39:51 +0000 (12:39 +1100)]
Mirror Modifier: Add offsets for mirrored UVs
The mirror modifier now has two fields that specify a -1 to 1 offset for
the U and V axes when mirroring their coordinates.
D1844 by @circuitfox
Sergey Sharybin [Wed, 29 Mar 2017 14:53:46 +0000 (16:53 +0200)]
Cycles: Fix compilation error of app after the include directories change
Sergey Sharybin [Wed, 29 Mar 2017 14:22:51 +0000 (16:22 +0200)]
Cycles: Attempt to work around compilation errors of CUDA on sm_2x
Sergey Sharybin [Wed, 29 Mar 2017 13:41:56 +0000 (15:41 +0200)]
Cycles: Cleanup, indentation
Sergey Sharybin [Wed, 29 Mar 2017 13:07:53 +0000 (15:07 +0200)]
Cycles: Remove toolkit-specific workaround from kernel
Sergey Sharybin [Wed, 29 Mar 2017 13:06:47 +0000 (15:06 +0200)]
Cycles: Only use CUDA 8.0 as officially supported one
This deprecates CUDA 7.5.
Sergey Sharybin [Wed, 29 Mar 2017 12:30:39 +0000 (14:30 +0200)]
Cycles: Cleanup, don't use m_ prefix for public properties
Sergey Sharybin [Wed, 29 Mar 2017 12:28:45 +0000 (14:28 +0200)]
Cycles: Fix compilation error with visibility flag disabled
Sergey Sharybin [Tue, 28 Mar 2017 18:39:14 +0000 (20:39 +0200)]
Cycles: Make all #include statements relative to cycles source directory
The idea is to make include statements more explicit and obvious where the
file is coming from, additionally reducing chance of wrong header being
picked up.
For example, it was not obvious whether bvh.h was refferring to builder
or traversal, whenter node.h is a generic graph node or a shader node
and cases like that.
Surely this might look obvious for the active developers, but after some
time of not touching the code it becomes less obvious where file is coming
from.
This was briefly mentioned in T50824 and seems @brecht is fine with such
explicitness, but need to agree with all active developers before committing
this.
Please note that this patch is lacking changes related on GPU/OpenCL
support. This will be solved if/when we all agree this is a good idea to move
forward.
Reviewers: brecht, lukasstockner97, maiself, nirved, dingto, juicyfruit, swerner
Reviewed By: lukasstockner97, maiself, nirved, dingto
Subscribers: brecht
Differential Revision: https://developer.blender.org/D2586
Sergey Sharybin [Wed, 29 Mar 2017 09:49:50 +0000 (11:49 +0200)]
Cycles: Attempt to workaround compilation error on new CUDA toolkit and sm_2x
Campbell Barton [Wed, 29 Mar 2017 09:10:46 +0000 (20:10 +1100)]
Remove non-bmesh case from test
Campbell Barton [Wed, 29 Mar 2017 08:32:57 +0000 (19:32 +1100)]
Fix skin mark operator
Accessed custom-data layer offset before creating.
Campbell Barton [Wed, 29 Mar 2017 08:25:34 +0000 (19:25 +1100)]
Fix crash closing window in background mode
Campbell Barton [Wed, 29 Mar 2017 08:19:25 +0000 (19:19 +1100)]
Fix missing NULL check in gpencil poll
Also de-duplicate poll functions
Campbell Barton [Wed, 29 Mar 2017 08:18:09 +0000 (19:18 +1100)]
Use 'empty' option for clearing factory settings
Campbell Barton [Wed, 29 Mar 2017 08:07:21 +0000 (19:07 +1100)]
Option to load startup file with empty-data
Useful for batch conversion and tests.
Sergey Sharybin [Wed, 29 Mar 2017 08:46:53 +0000 (10:46 +0200)]
Buildbot: Revert previous change, older toolkit has same exact behavior
Sergey Sharybin [Wed, 29 Mar 2017 08:21:17 +0000 (10:21 +0200)]
Buildbot: Use older NVCC on 32bit linux
Newer toolkit has some weird issue with cross0-compiling 32bit kernels
from 64bit environment.
Sergey Sharybin [Wed, 29 Mar 2017 08:16:41 +0000 (10:16 +0200)]
Buildbot: Remove global hardcoded NVCC path
This was initially needed for heterogeneous setup of two toolkits which
we no longer need.
Sergey Sharybin [Wed, 29 Mar 2017 07:12:26 +0000 (09:12 +0200)]
Cycles: Bring back preview AA samples when using BPT
This was removed in
93426cb. Please be more accurate when
changing interface.
Campbell Barton [Wed, 29 Mar 2017 04:07:41 +0000 (15:07 +1100)]
PyAPI: minor path init simplification
Campbell Barton [Wed, 29 Mar 2017 03:29:18 +0000 (14:29 +1100)]
Fix 'bl_app_override' wrapping multiple times.
Calling `SomeClass.draw(self, context)` instead of `self.draw()`
would try to wrap the argument `self` multiple times, causing an error.
Campbell Barton [Wed, 29 Mar 2017 02:26:34 +0000 (13:26 +1100)]
Fix memory leak re-registering operators
Re-registering an operator used by the keymap would lead memory.
Reload scripts for eg leaked over ~1600 blocks.
Campbell Barton [Wed, 29 Mar 2017 01:35:00 +0000 (12:35 +1100)]
PyAPI: check modules are registered before unregister
Needed since templates may unregister classes.
Also replace old modules on reloading.
Aaron Carlisle [Tue, 28 Mar 2017 20:29:20 +0000 (16:29 -0400)]
Fix T51068: Place props in their own row
This allows the props to extend into the blank space that is to the right.
Sergey Sharybin [Mon, 27 Mar 2017 15:06:37 +0000 (17:06 +0200)]
Cycles: Switch to reformulated Pluecker ray/triangle intersection
The intention of this commit it to address issues mentioned in the
reports T43865,T50164 and T50452.
The code is based on Embree code with some extra vectorization
to speed up single ray to single triangle intersection.
Unfortunately, such a fix is not coming for free. There is some
slowdown for AVX2 processors, mainly due to different vectorization
code, which caused different number of instructions to be executed
and different instructions-per-cycle counters. But on another hand
this commit makes pre-AVX2 platforms such as AVX and SSE4.1 a bit
faster. The prerformance goes as following:
2.78c AVX2 2.78c AVX Patch AVX2 Patch AVX
BMW 05:21.09 06:05.34 05:32.97 (+3.5%) 05:34.97 (-8.5%)
Classroom 16:55.36 18:24.51 17:10.41 (+1.4%) 17:15.87 (-6.3%)
Fishy Cat 08:08.49 08:36.26 08:09.19 (+0.2%) 08:12.25 (-4.7%
Koro 11:22.54 11:45.24 11:13.25 (-1.5%) 11:43.81 (-0.3%)
Barcelone 14:18.32 16:09.46 14:15.20 (-0.4%) 14:25.15 (-10.8%)
On GPU the performance is about 1.5-2% slower in my tests on GTX1080
but afraid we can't do much as a part of this chaneg here and
consider it a price to pay for more proper intersection check.
Made in collaboration with Maxym Dmytrychenko, big thanks to him!
Reviewers: brecht, juicyfruit, lukasstockner97, dingto
Differential Revision: https://developer.blender.org/D1574
Bastien Montagne [Tue, 28 Mar 2017 12:37:18 +0000 (14:37 +0200)]
Forgot those IDP_LibLinkProperty call on node sockets IDProps in previous commit...
raa [Tue, 28 Mar 2017 10:44:02 +0000 (13:44 +0300)]
Fix: Icon offset for pie buttons
Sergey Sharybin [Tue, 28 Mar 2017 09:01:11 +0000 (11:01 +0200)]
Cycles: Pass m128 vectors by const reference
Bastien Montagne [Tue, 28 Mar 2017 08:15:52 +0000 (10:15 +0200)]
Fix lib_link_cachefile.
That one was:
* Resetting non-ID pointers (lib_link_xxx funcs should only affect ID
pointers, everything else shall be done in direct_link_xxx func).
* Even worse, always calling lib_link_animdata, even when
LIB_TAG_NEED_LINK tag was unset...
Bastien Montagne [Tue, 28 Mar 2017 08:10:15 +0000 (10:10 +0200)]
Bring back `lib_link_mesh()` in 'order' with other libdata liblink functions.
We do not need any special handling anymore for usercount of images used
by faces/polygons (tpage stuff), since we have the 'real_user' handling,
which will gracefully cope with all possible situations.
So better not keep that ugly confusing useless special case.
Bastien Montagne [Tue, 28 Mar 2017 08:03:59 +0000 (10:03 +0200)]
readfile.c: Cleanup lib_link code a bit.
Mainly:
* Add missing `IDP_LibLinkProperty()` calls for many ID types
(harmless currently, but better be consistent here!).
* Bring lib_link_xxx functions more in line with each other.
* Replace some long if/else by switch.