5 years agoCycles: Fix wrong allocator used for spatial builder
Sergey Sharybin [Thu, 18 Aug 2016 18:47:14 +0000 (20:47 +0200)]
Cycles: Fix wrong allocator used for spatial builder

5 years agoCleanup: some bad sizeof() usages.
Bastien Montagne [Thu, 18 Aug 2016 14:18:58 +0000 (16:18 +0200)]
Cleanup: some bad sizeof() usages.

5 years agoCleanup/security fix: do not use strcpy (at least in new code).
Bastien Montagne [Thu, 18 Aug 2016 13:45:20 +0000 (15:45 +0200)]
Cleanup/security fix: do not use strcpy (at least in new code).

This function is only really secure in a very limited amount of cases,
and can especially bite you later if you change some buffer sizes...
So not worth bothering with it, just always use BLI_strncpy instead.

5 years agoCleanup for previous commit (nasty IDE replacing tads with spaces, tsst)
Bastien Montagne [Thu, 18 Aug 2016 13:21:53 +0000 (15:21 +0200)]
Cleanup for previous commit (nasty IDE replacing tads with spaces, tsst)

Sorry for the noise :|

5 years agoTwo fixes for optional ndof & fix bplayer for that...
Bastien Montagne [Thu, 18 Aug 2016 13:13:58 +0000 (15:13 +0200)]
Two fixes for optional ndof & fix bplayer for that...

Seriuosly, guys... Please always check that kind of changes with and without affected option, and in full build case.

5 years agoFreestyle: fix wrong arg order, and cleanup confusing loop (both reported by coverity).
Bastien Montagne [Thu, 18 Aug 2016 10:53:33 +0000 (12:53 +0200)]
Freestyle: fix wrong arg order, and cleanup confusing loop (both reported by coverity).

Error: `origin` and `edge` args were swapped in final `FindOccludee()` call of `ViewMapBuilder::ComputeRayCastingVisibility()`

Cleanup: main for loop in `Strip::createStrip()` was really confusing (though correct),
generated a false positive in coverity scan, now should be cleaner how it loops over its vprev/v/v2
triplet of consecutive items.

5 years agoFinal UI messages fixes (for this session...).
Bastien Montagne [Wed, 17 Aug 2016 19:46:38 +0000 (21:46 +0200)]
Final UI messages fixes (for this session...).

5 years agoFix bplayer (c) after NDOF changes from merwin
Thomas Beck [Thu, 18 Aug 2016 09:28:41 +0000 (11:28 +0200)]
Fix bplayer (c) after NDOF changes from merwin

5 years agoCleanup: ifdef function which is only used from ifdef-ed code
Sergey Sharybin [Thu, 18 Aug 2016 08:36:06 +0000 (10:36 +0200)]
Cleanup: ifdef function which is only used from ifdef-ed code

5 years agoNDOF: compile 3D mouse code only if WITH_INPUT_NDOF
Mike Erwin [Thu, 18 Aug 2016 04:21:55 +0000 (00:21 -0400)]
NDOF: compile 3D mouse code only if WITH_INPUT_NDOF

When WITH_INPUT_NDOF is disabled, 3D mouse handling code is removed

- GHOST (was mostly done, finished the job)
- window manager
- various editors
- keymaps

The input tab of user prefs does not show 3D mouse settings. Key map
editor does not show NDOF mappings.

DNA does not change.

On my Mac the compiled binary is 42KB smaller after this change. It
runs fine WITH_INPUT_NDOF on or off.

5 years agoNDOF: suppress buttons debug log
Mike Erwin [Wed, 17 Aug 2016 04:12:28 +0000 (00:12 -0400)]
NDOF: suppress buttons debug log

Accidentally left this in the 3D mouse code. Mac only.

5 years agoFix compiler warning after fix for T48913.
Brecht Van Lommel [Thu, 18 Aug 2016 00:18:39 +0000 (02:18 +0200)]
Fix compiler warning after fix for T48913.

5 years agoCode cleanup to use rather than &array[0]
Brecht Van Lommel [Wed, 17 Aug 2016 21:49:55 +0000 (23:49 +0200)]
Code cleanup to use rather than &array[0]

(Now without the build errors)

5 years agoRevert "Code cleanup to use rather than &array[0]."
Mai Lavelle [Wed, 17 Aug 2016 22:49:18 +0000 (18:49 -0400)]
Revert "Code cleanup to use rather than &array[0]."

This reverts commit 40b367479c6fe23d6f2b6d822f2d5266485619f3.

Didn't build or solve any known issue. Please don't push changes without
testing them first.

5 years agoCode cleanup to use rather than &array[0].
Brecht Van Lommel [Wed, 17 Aug 2016 21:49:55 +0000 (23:49 +0200)]
Code cleanup to use rather than &array[0].

These latter can cause MSVC debug asserts if the array is empty. With C++11
we'll be able to do this for std::vector later. This hopefully fixes an assert
in the Cycles subdivision code.

5 years agoFix T48913: cycles viewport render stuck in loop due to non-unique dupli ID.
Brecht Van Lommel [Sun, 14 Aug 2016 13:33:21 +0000 (15:33 +0200)]
Fix T48913: cycles viewport render stuck in loop due to non-unique dupli ID.

5 years agoFix T49104: normal problem in imported Alembic objects
Kévin Dietrich [Wed, 17 Aug 2016 21:03:34 +0000 (23:03 +0200)]
Fix T49104: normal problem in imported Alembic objects

Recompute the normals if the normals are supposed to be varying (e.g. in
the ISchema).

5 years agoAlembic import: fix scene min/max time computation to take objects with
Kévin Dietrich [Wed, 17 Aug 2016 20:20:15 +0000 (22:20 +0200)]
Alembic import: fix scene min/max time computation to take objects with
transform animations into account.

5 years agoFix T49081: Alembic sampling times are not taking start frame into
Kévin Dietrich [Wed, 17 Aug 2016 20:06:05 +0000 (22:06 +0200)]
Fix T49081: Alembic sampling times are not taking start frame into

This resulted in animations always starting at frame 0.

5 years agoFix/add some tooltips to 'Object Align' operator options.
Aaron Carlisle [Wed, 17 Aug 2016 19:24:13 +0000 (21:24 +0200)]
Fix/add some tooltips to 'Object Align' operator options.

5 years agoFix Bevel crashes T49088 and T48858.
Howard Trickey [Wed, 17 Aug 2016 15:23:11 +0000 (11:23 -0400)]
Fix Bevel crashes T49088 and T48858.

Was calling the fast path for finding edge order in cases
where it should not have been called.

5 years agoCycles: Fix regression where smoke wouldn't show in renders
Mai Lavelle [Wed, 17 Aug 2016 14:33:28 +0000 (10:33 -0400)]
Cycles: Fix regression where smoke wouldn't show in renders

5 years agoFix T49102: Angle option of new GP brush settings is too restricted in value
Antonioya [Wed, 17 Aug 2016 14:23:05 +0000 (16:23 +0200)]
Fix T49102: Angle option of new GP brush settings is too restricted in value

Now the range is between -90 to 90 degrees to give more customization

5 years agoFix T49086: UV Along Stroke can be set as vector input for environment texture
Sergey Sharybin [Wed, 17 Aug 2016 12:51:25 +0000 (14:51 +0200)]
Fix T49086: UV Along Stroke can be set as vector input for environment texture

5 years agoCMake: Move main platform checks to separate files
Sergey Sharybin [Tue, 9 Aug 2016 13:19:11 +0000 (15:19 +0200)]
CMake: Move main platform checks to separate files

Basically title says it all.

The goal is to make platform maintenance easier, so you don't have
to constantly scroll back and forth looking for if() branches to
check which exact platform you're currently working on.

Ideally we also would move option defaults to a platform files,
but that i'm not sure how to implement in a nice way yet.

Reviewers: mont29

Reviewed By: mont29

Differential Revision:

5 years agoMore UI messages fixes and cleanup.
Bastien Montagne [Wed, 17 Aug 2016 10:53:03 +0000 (12:53 +0200)]
More UI messages fixes and cleanup.

5 years ago2D stabilizer: Cover rotation tracks label with enabled flag
Sergey Sharybin [Wed, 17 Aug 2016 08:55:41 +0000 (10:55 +0200)]
2D stabilizer: Cover rotation tracks label with enabled flag

5 years ago2D stabilizer: Use exact getter instead of regular one followed with frame check
Sergey Sharybin [Wed, 17 Aug 2016 08:49:42 +0000 (10:49 +0200)]
2D stabilizer: Use exact getter instead of regular one followed with frame check

5 years ago2D stabilizer: Remove check for markers count in the track
Sergey Sharybin [Wed, 17 Aug 2016 08:47:05 +0000 (10:47 +0200)]
2D stabilizer: Remove check for markers count in the track

This would be a real disaster if track has no markers, which we should
not masquerade and detect such weird cases as soon as possible.

5 years ago2D stabilizer: Remove redundant rows from the interface
Sergey Sharybin [Wed, 17 Aug 2016 08:45:52 +0000 (10:45 +0200)]
2D stabilizer: Remove redundant rows from the interface

5 years ago2D stabilizer: One more occurrence of len() in the drawing code
Sergey Sharybin [Wed, 17 Aug 2016 08:40:34 +0000 (10:40 +0200)]
2D stabilizer: One more occurrence of len() in the drawing code

5 years ago2D Stabilizer: Use more consistent RNA naming for properties
Sergey Sharybin [Wed, 17 Aug 2016 08:36:38 +0000 (10:36 +0200)]
2D Stabilizer: Use more consistent RNA naming for properties

Annoying i did not notice this originally, but for RNA we need to keep
things as much consistent as possible.

5 years ago2D Stabilzier: Don't use len() for checking whether something is enabled or not
Sergey Sharybin [Wed, 17 Aug 2016 08:33:54 +0000 (10:33 +0200)]
2D Stabilzier: Don't use len() for checking whether something is enabled or not

This code runs on every redraw and iterates the whole tracks list, which
is something we should avoid.

5 years agoFix T49100: Replace old tooltip for GPencil brush iterations
Antonioya [Wed, 17 Aug 2016 07:11:58 +0000 (09:11 +0200)]
Fix T49100: Replace old tooltip for GPencil brush iterations

5 years agoGPencil: Change ruler line thickness to make it thicker
Antonioya [Wed, 17 Aug 2016 07:04:50 +0000 (09:04 +0200)]
GPencil: Change ruler line thickness to make it thicker

5 years agoFirst set of UI/i18n messages fixes (mostly new GP code).
Bastien Montagne [Tue, 16 Aug 2016 20:36:26 +0000 (22:36 +0200)]
First set of UI/i18n messages fixes (mostly new GP code).

5 years agoFix T49097: GP ruler data reinstances GP_Palette Color
Antonioya [Tue, 16 Aug 2016 20:28:34 +0000 (22:28 +0200)]
Fix T49097: GP ruler data reinstances GP_Palette Color

If the ruler is saved, a new color was created for each ruler. With the
change, a color is created for the first instance, and it reused in the
following instances. The default color is the current default color for

5 years agoCleanup unused return value (was making coverity sad).
Bastien Montagne [Tue, 16 Aug 2016 16:22:03 +0000 (18:22 +0200)]
Cleanup unused return value (was making coverity sad).

5 years agoMore fixes from coverity report.
Bastien Montagne [Tue, 16 Aug 2016 16:19:52 +0000 (18:19 +0200)]
More fixes from coverity report.

5 years agoFix two memleaks found by coverity.
Bastien Montagne [Tue, 16 Aug 2016 14:15:55 +0000 (16:15 +0200)]
Fix two memleaks found by coverity.

5 years agoFix release build after recent fix for debug one
Sergey Sharybin [Tue, 16 Aug 2016 12:57:56 +0000 (14:57 +0200)]
Fix release build after recent fix for debug one

It's becoming annoying to have public API dependent on build type
and everything. Let's just always have API defined and do stubs
in the function implementation instead.

5 years agoFix depsgraph to compute more accurate links for collision & force.
Alexander Gavrilov [Fri, 12 Aug 2016 15:23:29 +0000 (18:23 +0300)]
Fix depsgraph to compute more accurate links for collision & force.

Current implementation more or less indiscriminately links physics
objects to colliders and forces, ignoring precise details of layer
checks and collider groups. The new depsgraph seemed to lack some
such links at all. The relevant code in modifiers suffers from a
lot of duplication.

Different physics simulations use independent implementations of
collision and similar things, which results in a lot of variance:

* Cloth collides with objects on same or visible layer with dupli.
* Softbody collides with objects on same layer without dupli.
* Non-hair particles collide on same layer with dupli.
* Smoke uses same code as cloth, but needs different modifier.
* Dynamic paint "collides" with brushes on any layer without dupli.

Force fields with absorption also imply dependency on colliders:

* For most systems, colliders are selected from same layer as field.
* For non-hair particles, it uses the same exact set as the particles.

As a special quirk, smoke ignores smoke flow force fields; on the other
hand dependency on such field implies dependency on the smoke domain.

This introduces two utility functions each for old and new depsgraph
that are flexible enough to handle all these variations, and uses them
to handle particles, cloth, smoke, softbody and dynpaint.

One thing to watch out for is that depsgraph code shouldn't rely on
any properties that don't cause a graph rebuild when changed. This
was violated in the original code that was building force field links,
while taking zero field weights into account.

This change may cause new dependency cycles in cases where necessary
dependencies were missing, but may also remove cycles in situations
where unnecessary links were previously created. It's also now possible
to solve some cycles by switching to explicit groups, since they are
now properly taken into account for dependencies.

Differential Revision:

5 years agoFix redundant declarations after recent changes in GPU debug
Sergey Sharybin [Tue, 16 Aug 2016 12:40:23 +0000 (14:40 +0200)]
Fix redundant declarations after recent changes in GPU debug

5 years ago2D stabilizer: Revert majority of UI change
Sergey Sharybin [Tue, 16 Aug 2016 12:25:55 +0000 (14:25 +0200)]
2D stabilizer: Revert majority of UI change

For now simply reshuffle option so they keep proper dependency flow.


- Has an ability to hide tracks lists to work with other sliders around.
  Could be really handy to quickly get rid of lenghty lists.

- From a feedback seems to be fitting workflow better.

Things to doublecheck on:

- Feels a bit misordered: first you define whether one want to have
  rotation stabilized, then have tracks, then scale options.

  While this follows dependency flow (which is really good and which
  we should not violate) it has weird feeling on whether things are
  really where they have to be.

- Autoscale controls visibility of max-scale, can we just make it
  active/inactive instead?

- Autoscale replaces slider with label. Can it be disabled slider
  instead to reduce visual jumping (disabled slider prevents user

Hopefully we'll still want to have collapsable box after re-iterating
over this points, so we don't waste bits in DNA.

5 years ago2D stabilizer: Fix compilation error in debug mode
Sergey Sharybin [Tue, 16 Aug 2016 12:24:06 +0000 (14:24 +0200)]
2D stabilizer: Fix compilation error in debug mode

5 years agoCorrect previous commit, need to indent verisoning code
Sergey Sharybin [Tue, 16 Aug 2016 11:53:29 +0000 (13:53 +0200)]
Correct previous commit, need to indent verisoning code

5 years ago2D stabilization: Modify interface so dependency goes strictly from top to bottom
Sergey Sharybin [Tue, 16 Aug 2016 11:30:47 +0000 (13:30 +0200)]
2D stabilization: Modify interface so dependency goes strictly from top to bottom

5 years agoRework 2D stabilizator
Ichthyostega [Tue, 16 Aug 2016 08:32:55 +0000 (10:32 +0200)]
Rework 2D stabilizator

See this page for motivation and description of concepts:

See this video for UI explanation and demonstration of usage

This proposal attempts to improve usability of Blender's image stabilization
feature for real-world footage esp. with moving and panning camera. It builds
upon the feature tracking to get a measurement of 2D image movement.

  - Use a weighted average of movement contributions (instead of a median).
  - Allow for rotation compensation and zoom (image scale) compensation.
  - Allow to pick a different set of tracks for translation and for
  - Treat translation / rotation / zoom contributions systematically in a
    similar way.
  - Improve handling of partial tracking data with gaps and varying
    start / end points.
  - Have a user definable anchor frame and interpolate / extrapolate data to
    avoid jumping back to "neutral" position when no tracking data is available.
  - Support for travelling and panning shots by including an //intended//
    position/rotation/zoom ("target position"). The idea is for these parameters
    to be //animated// by the user, in order to supply an smooth, intended
    camera movement. This way, we can keep the image content roughly in frame
    even when moving completely away from the initial view.

A known shortcoming is that the pivot point for rotation compensation is set to
the translation compensated image center. This can produce spurious rotation on
travelling shots, which needs to be compensated manually (by animating the
target rotation parameter). There are several possible ways to address that
problem, yet all of them are considered beyond the scope of this improvement
proposal for now.

Own modifications:

- Restrict line length, it's really handy for split-view editing
- In motion tracking we prefer fully human-readable comments, meaning we
  don't use doxygen with it's weird markup and comments are supposed to
  start with capital and end with a full stop,
- Add explicit comparison of pointer to NULL.

Reviewers: sergey

Subscribers: kusi, kdawg, forest-house, mardy, Samoth, plasmasolutions, willolis, sebastian_k, hype, enetheru, sunboy, jta, leon_cheung

Maniphest Tasks: T49036

Differential Revision:

5 years agoOpenGL: ignore deprecated API warnings
Mike Erwin [Mon, 15 Aug 2016 18:55:09 +0000 (14:55 -0400)]
OpenGL: ignore deprecated API warnings

Reduces noise from --debug-gpu so we can spot serious errors.

Blender 2.7x uses OpenGL 2.1, we don't care if features are deprecated.

I'll re-enable these warnings for blender2.8 after next merge.

5 years agoCycles microdisplacement: Allow kernels to be built without patch evaluation
Mai Lavelle [Mon, 15 Aug 2016 13:08:38 +0000 (09:08 -0400)]
Cycles microdisplacement: Allow kernels to be built without patch evaluation

Kernels can now be built without patch evaluation when not needed by the
scene (Catmull-Clark subdivision not in use), giving a performance boost
for some devices.

5 years agoFix Cycles OpenCL textures after recent CUDA fix.
Brecht Van Lommel [Mon, 15 Aug 2016 14:17:47 +0000 (16:17 +0200)]
Fix Cycles OpenCL textures after recent CUDA fix.

kernel_textures.h is included in device_opencl.cpp, so we can't check
__KERNEL_OPENCL__ there.

5 years agoFix OpenGL backtrace build errors, without disabling warnings.
Brecht Van Lommel [Mon, 15 Aug 2016 13:34:41 +0000 (15:34 +0200)]
Fix OpenGL backtrace build errors, without disabling warnings.

5 years agoTentative compile fix after recent gpu debug changes
Jens Verwiebe [Mon, 15 Aug 2016 11:46:38 +0000 (13:46 +0200)]
Tentative compile fix after recent gpu debug changes

5 years agoOpenGL: debug context on Windows
Mike Erwin [Mon, 15 Aug 2016 08:49:07 +0000 (04:49 -0400)]
OpenGL: debug context on Windows

Enable based on --debug-gpu at the command line. Linux already works
this way.

This commit in master (2.78 timeframe) is the smallest change that gets
the desired result. I did a similar commit in blender2.8. Most ongoing
GL debug work will go into 2.8, not 2.7x.

In support of T49089

5 years agoOpenGL: backtrace on errors (--debug-gpu)
Mike Erwin [Mon, 15 Aug 2016 08:00:59 +0000 (04:00 -0400)]
OpenGL: backtrace on errors (--debug-gpu)

Backtrace so we can pinpoint where the GL error came from. Then fflush
on severe errors in case it's severe enough to crash Blender.

5 years agoOpenGL: enhance debug output
Mike Erwin [Tue, 9 Aug 2016 05:29:58 +0000 (01:29 -0400)]
OpenGL: enhance debug output

When running blender --debug-gpu

Display which debug facilities are available. One of these, in order of preference:
- OpenGL 4.3
- KHR_debug
- ARB_debug_output
- AMD_debug_output

All messages are logged now, not just errors. Will probably turn some of these off later.

GL_DEBUG_OUTPUT_SYNCHRONOUS lets us break on errors and backtrace to the exact trouble spot.

Callers of GPU_string_marker no longer pass in a message length, just the message itself (null terminated).

Apple provides no GL debug logging features.

5 years agoRevert "Cycles: Use half storage for 16bit files (e.g. 16bit pngs) as well."
Thomas Dinges [Sun, 14 Aug 2016 23:01:43 +0000 (01:01 +0200)]
Revert "Cycles: Use half storage for 16bit files (e.g. 16bit pngs) as well."

After discussion in IRC, 16bit int should not be converted to half, too much precision loss.

5 years agoFix CUDA compilation after OpenCL changes.
Thomas Dinges [Sun, 14 Aug 2016 22:04:19 +0000 (00:04 +0200)]
Fix CUDA compilation after OpenCL changes.

5 years agoCycles: Use half storage for 16bit files (e.g. 16bit pngs) as well.
Thomas Dinges [Sun, 14 Aug 2016 20:22:21 +0000 (22:22 +0200)]
Cycles: Use half storage for 16bit files (e.g. 16bit pngs) as well.

Note: This only works for textures loaded from disk via OIIO, not packed textures. That's still a ToDo.

5 years agoCycles microdisplacement: Move call to tessellate() from addon to Cycles
Mai Lavelle [Sun, 14 Aug 2016 16:41:45 +0000 (12:41 -0400)]
Cycles microdisplacement: Move call to tessellate() from addon to Cycles

By calling `tessellate()` from the mesh manager in Cycles we can do pre/post
processing or even threaded tessellation without concerning client side code
with the details.

5 years agoCycles: Add single channel texture support for OpenCL.
Thomas Dinges [Sun, 14 Aug 2016 18:21:08 +0000 (20:21 +0200)]
Cycles: Add single channel texture support for OpenCL.

This way OpenCL devices can also benefit from a smaller memory footprint, when using e.g. bumpmaps (greyscale, 1 channel).

Additional target for my GSoC 2016.

5 years agoPrevent max stiffness values from going under normal stiffness values in cloth stiffn...
Luca Rood [Sat, 13 Aug 2016 16:40:22 +0000 (19:40 +0300)]
Prevent max stiffness values from going under normal stiffness values in cloth stiffness scaling.

When updating the max values under stiffness scaling, they clip at the normal stiffness values
as expected, however when updating stiffness values, you could set them higher than the max
values, and the max values weren't updated accordingly. As the stiffness scaling computes using
the absolute difference between the max values and the stiffness values, you got higher
stiffnesses in scaled areas even though your max is actually lower than the normal stiffness.

This diff fixes that behaviour, by updating the max values to be equal to the stiffness whenever
you set a higher stiffness than the max value.

Also, I have initialized the max values to the same as the stiffnesses, as they were previously
just set to zero, and caused the same problem described above.

Reviewers: lukastoenne

Reviewed By: lukastoenne

Tags: #physics

Differential Revision:

5 years agoGPencil: Cleanup code
Antonioya [Sat, 13 Aug 2016 14:59:53 +0000 (16:59 +0200)]
GPencil: Cleanup code

5 years agoFix T49082: Intermediate update call when making links can change group socket layout.
Lukas Tönne [Sat, 13 Aug 2016 14:31:46 +0000 (16:31 +0200)]
Fix T49082: Intermediate update call when making links can change group socket layout.

Node tree update calls in the middle of a socket loop are dangerous, they can change sockets
on group nodes and link instances in particular. Updates should only happen after the operator
has finished.

Simply removed the extra convenience check for validity now. Worst case an invalid (red) link
is created which can be removed by the user as well and should simply be ignored by node systems.

The update system in nodes needs a complete rewrite to handle complex cases like this, where an
operator may need to react to changes during its execution.

5 years agoAdd DNA_struct_find (useful for version patching)
Julian Eisel [Fri, 12 Aug 2016 23:40:19 +0000 (01:40 +0200)]
Add DNA_struct_find (useful for version patching)

5 years agoFix error in GPencil V2 version patching
Julian Eisel [Fri, 12 Aug 2016 23:29:17 +0000 (01:29 +0200)]
Fix error in GPencil V2 version patching

GPencil conversion would just always run for file version 2.77.3. This wasn't an issue in master, but possibly for other branches that used the 2.77.3 block.

Wasn't aware that you have to add the asterisk for pointers either, this is kinda weird. Anyway, it's running correctly now.

5 years agoDepsgraph: tag relations for update when aterial slots changes
Sergey Sharybin [Fri, 12 Aug 2016 12:59:11 +0000 (14:59 +0200)]
Depsgraph: tag relations for update when aterial slots changes

New dependency graph puts materials to the graph in order to deal with animation
assigned to them and things like that. This leads us to a requirement to update
relations when slots changes.

This fixes: T49075 Assignment of a keyframed material using the frame_change_pre handler
                   doesn't update the keyframe using the new dependency graph

5 years agoDepsgraph: Tag relations for update when making datablocks single user
Sergey Sharybin [Fri, 12 Aug 2016 11:58:48 +0000 (13:58 +0200)]
Depsgraph: Tag relations for update when making datablocks single user

This is mainly required for the new dependency graph where non-object
datablocks are a part of dependency graph.

This solves issue when making mesh shared by multiple objects a single
user one.

5 years agoFix T49045: splash not working correctly on OS X, after recent bugfix.
Brecht Van Lommel [Thu, 11 Aug 2016 23:19:22 +0000 (01:19 +0200)]
Fix T49045: splash not working correctly on OS X, after recent bugfix.

5 years agoFix T49071: Cycles OSL build problem with oslc compilers that can't find their own...
Brecht Van Lommel [Thu, 11 Aug 2016 23:01:09 +0000 (01:01 +0200)]
Fix T49071: Cycles OSL build problem with oslc compilers that can't find their own stdosl.h.

5 years agoCycles: Enable half float support (4 channels and 1 channel) on CUDA.
Thomas Dinges [Thu, 11 Aug 2016 20:47:53 +0000 (22:47 +0200)]
Cycles: Enable half float support (4 channels and 1 channel) on CUDA.

Atm OpenEXR half files benefit from this and will use only 1/2 of the memory now. More space for HDRs!

Part of my GSoC 2016.

5 years agoCycles: Change code order for Image Data Types.
Thomas Dinges [Thu, 11 Aug 2016 20:30:03 +0000 (22:30 +0200)]
Cycles: Change code order for Image Data Types.

Now we have the 4 component ones first (float4, byte4, half4) followed by the 1 component ones (float, byte, half).
Makes code a bit more consistent and also reduces code a bit when enabling half support on GPU in next commit.

This also exposed a typo in half CPU images for 3D textures, which wasn't used yet, but good to have that one fixed anyway.

5 years agoCycles: Fix change of sign warning
Mai Lavelle [Thu, 11 Aug 2016 19:09:58 +0000 (15:09 -0400)]
Cycles: Fix change of sign warning

5 years agoCycles: Remove odd definition from CMake file
Mai Lavelle [Thu, 11 Aug 2016 18:35:43 +0000 (14:35 -0400)]
Cycles: Remove odd definition from CMake file

This was causing Cycles standalone to fail to build from Blender repo.
Hopefully nothing breaks from removing this.

5 years agoFix T49004 and motion blur of cloth, softbody, etc past the end frame.
Alexander Gavrilov [Thu, 11 Aug 2016 10:36:29 +0000 (13:36 +0300)]
Fix T49004 and motion blur of cloth, softbody, etc past the end frame.

Point cache read code contains checks designed to prevent it reading
stale data when the relevant simulation code should instead compute
the next frame from the previous one. However in some situations like
motion blur subframes the simulation can't possibly do it and just
exits. This causes completely incorrect motion blur at or after the
last cached frame.

To fix, add a parameter that tells the cache code whether it should
apply the checks and exit, or read what it can even if stale (true
means exactly same as old behavior).

Doing this in cache rather than clamping the frame number better in
the caller lets it handle the case of incomplete cache that stops
before the official last frame.

Reviewed By: mont29, lukastoenne

Maniphest Tasks: T49004

Differential Revision:

5 years agoCycles: Use static assert to control structures alignment
Sergey Sharybin [Thu, 11 Aug 2016 07:52:39 +0000 (09:52 +0200)]
Cycles: Use static assert to control structures alignment

5 years agoRevert "Cycles Tests: Add test for correct 16 byte alignment of KernelData structs"
Sergey Sharybin [Thu, 11 Aug 2016 08:08:23 +0000 (10:08 +0200)]
Revert "Cycles Tests: Add test for correct 16 byte alignment of KernelData structs"

Using unit tests is a wrong way to control static behavior of the
application. They should only be used for checking dynamic behavior,
all the rest is easily controllable at compile time.

Doing tests at ocmpile time are actually more robust approach since
we don't have strict policy of runnign unit tests before accepting
any change.

Proper alignment control is coming shortly.

This reverts commit 7c3a06c34918567e6b0ab67bded60725ff63073b.

5 years agoCycles Tests: Add test for correct 16 byte alignment of KernelData structs
Lukas Stockner [Wed, 10 Aug 2016 18:48:35 +0000 (20:48 +0200)]
Cycles Tests: Add test for correct 16 byte alignment of KernelData structs

5 years agoCycles Standalone: Fix building after microdisp changes
Mai Lavelle [Wed, 10 Aug 2016 18:06:43 +0000 (14:06 -0400)]
Cycles Standalone: Fix building after microdisp changes

5 years agoCycles: Fix KernelIntegrator padding to 16-byte boundary
Lukas Stockner [Wed, 10 Aug 2016 18:02:08 +0000 (20:02 +0200)]
Cycles: Fix KernelIntegrator padding to 16-byte boundary

5 years agoUpdated to OSD 3.0.5 (and switch from git repo to download archive...
Bastien Montagne [Wed, 10 Aug 2016 17:18:53 +0000 (19:18 +0200)]
Updated to OSD 3.0.5 (and switch from git repo to download archive of sources).

5 years agoCycles Standalone: Add option to set the tile size from the command line
Lukas Stockner [Mon, 8 Aug 2016 19:09:12 +0000 (21:09 +0200)]
Cycles Standalone: Add option to set the tile size from the command line

Since the optimal values depend on the device used, this option doesn't make much sense in the XML.
Therefore, it's now specified via the command line, just like the device itself.

5 years agoCycles: Correct maximum number of textures on pre-Kepler CUDA cards
Lukas Stockner [Wed, 10 Aug 2016 15:17:46 +0000 (17:17 +0200)]
Cycles: Correct maximum number of textures on pre-Kepler CUDA cards

Commit c96ae81160ad added three data textures and therefore removed three image texture slots, but the value in util_textures.h wasn't updated.

5 years agoGPencil: Avoid segment fault if new stroke function is called without colorname
Antonioya [Wed, 10 Aug 2016 13:51:40 +0000 (15:51 +0200)]
GPencil: Avoid segment fault if new stroke function is called without colorname

5 years agoGPencil: Rename color name property to keep consistency in naming
Antonioya [Wed, 10 Aug 2016 10:20:02 +0000 (12:20 +0200)]
GPencil: Rename color name property to keep consistency in naming

5 years agoFix crash in id remapping of Graph editor.
Bastien Montagne [Tue, 9 Aug 2016 18:00:53 +0000 (20:00 +0200)]
Fix crash in id remapping of Graph editor.

dopsheet data pointer is not guaranteed to be set it seems...

5 years agoCycles: Use proper property getter
Sergey Sharybin [Tue, 9 Aug 2016 14:37:40 +0000 (16:37 +0200)]
Cycles: Use proper property getter

5 years agoAttempt to fix previous commit for non-c++11 builds
Sergey Sharybin [Tue, 9 Aug 2016 13:47:51 +0000 (15:47 +0200)]
Attempt to fix previous commit for non-c++11 builds

5 years agoFix for isfinite breaking builds when WITH_CXX11 is enabled.
Lukas Tönne [Tue, 9 Aug 2016 13:32:58 +0000 (15:32 +0200)]
Fix for isfinite breaking builds when WITH_CXX11 is enabled.

This happens when cmath.h is included after math.h in cpp code.
Kudos to Sergey for pointing this out.

5 years agoFix T48916: Proxy Custom File is broken
Sergey Sharybin [Tue, 9 Aug 2016 12:58:34 +0000 (14:58 +0200)]
Fix T48916: Proxy Custom File is broken

5 years agoFix T49027: Sequence uses too much memory when rendering scene with lots of movie...
Sergey Sharybin [Tue, 9 Aug 2016 12:33:00 +0000 (14:33 +0200)]
Fix T49027: Sequence uses too much memory when rendering scene with lots of movie strips

Now we free sequencer cache and close all unneeded FFmpeg handles when rendering.
This is the same logic as image sequence memory freeding.

5 years agoCMake: Once again, don't use find_package to get hardcoded libraries
Sergey Sharybin [Tue, 9 Aug 2016 10:37:25 +0000 (12:37 +0200)]
CMake: Once again, don't use find_package to get hardcoded libraries

5 years agoCMake: Remove hardcoded DIR_ROOT for alembic and MinGW
Sergey Sharybin [Tue, 9 Aug 2016 10:35:00 +0000 (12:35 +0200)]
CMake: Remove hardcoded DIR_ROOT for alembic and MinGW

Do it for until precompiled libraries are there so we can allow
MinGW users to compile their own library and pass it via ROOT_DIR.

5 years agoCMake: Use proper way to define debug/release libraries for alembic
Sergey Sharybin [Tue, 9 Aug 2016 10:29:59 +0000 (12:29 +0200)]
CMake: Use proper way to define debug/release libraries for alembic

Please do not spread platform+library specific code all over the CMake file,
we already have sections dedicated to that.

5 years agoCMake: Do not force set root folder for Alembic
Sergey Sharybin [Tue, 9 Aug 2016 10:27:17 +0000 (12:27 +0200)]
CMake: Do not force set root folder for Alembic

it is incorrect to set ROOT_DIR and then call find_package.

If something is expected to be in a given location use hardcoded
locations (for the precompiled libraries). Otherwise just use
find_package() and let users to set ROOT_DIT when it is required.

5 years agoCycles: avoid making NaNs in Vector Math node by normalizing zero vectors.
Alexander Gavrilov [Tue, 9 Aug 2016 10:20:08 +0000 (13:20 +0300)]
Cycles: avoid making NaNs in Vector Math node by normalizing zero vectors.

Since inputs are user controlled, the node can't assume they aren't zero.

5 years agoCUDA: We don't support Toolkits < 7.5, update error message.
Thomas Dinges [Tue, 9 Aug 2016 09:41:25 +0000 (11:41 +0200)]
CUDA: We don't support Toolkits < 7.5, update error message.

5 years agoBugfix. glDisable with bad enum argument in GPU_texture_unbind
Alexander Romanov [Tue, 9 Aug 2016 09:29:14 +0000 (12:29 +0300)]
Bugfix. glDisable with bad enum argument in GPU_texture_unbind

Reported by @panzergame in D1414.

`glDisable` calls with bad enum argument `GL_TEXTURE_2D_MULTISAMPLE` that came from this line:
`tex->target = (n == 1) ? GL_TEXTURE_1D : (samples ? GL_TEXTURE_2D_MULTISAMPLE : GL_TEXTURE_2D);`

Reviewers: brecht

Reviewed By: brecht

Subscribers: AlexKowel, yurikovelenov, panzergame

Differential Revision:

5 years agoCycles: Fix crash in empty scenes
Julian Eisel [Tue, 9 Aug 2016 02:32:38 +0000 (04:32 +0200)]
Cycles: Fix crash in empty scenes

To recreate, just delete default cube and render.

Simple fix, but @maiself or @sergey may want to double-check ;)

5 years agoFix Cycles CUDA adaptive kernel not working correctly after recent closure changes.
Brecht Van Lommel [Mon, 8 Aug 2016 23:00:57 +0000 (01:00 +0200)]
Fix Cycles CUDA adaptive kernel not working correctly after recent closure changes.