blender.git
2 years agoTests: split off render report test code from Cycles tests.
Brecht Van Lommel [Wed, 14 Feb 2018 16:33:06 +0000 (17:33 +0100)]
Tests: split off render report test code from Cycles tests.

This renames test environment variables from CYCLESTEST_* to BLENDER_TEST_*.

Differential Revision: https://developer.blender.org/D3064

2 years agoFix bplayer (c)
Bastien Montagne [Fri, 16 Feb 2018 09:42:43 +0000 (10:42 +0100)]
Fix bplayer (c)

2 years agoFix part II of T53977: Severe problem with multiple instances of a library (save...
Bastien Montagne [Fri, 16 Feb 2018 09:31:03 +0000 (10:31 +0100)]
Fix part II of T53977: Severe problem with multiple instances of a library (save and reload).

Once 'losing lib' issue is fixed (in previous commit), we have new issue
that this could lead to several copies of the same linked data-block in
.blend file. Which is not good. At all.

So had to add a GHash-based check in libraries reading code to ensure we
only load a same ID from a same lib once.

2 years agoFix part I of T53977: Severe problem with multiple instances of a library (save and...
Bastien Montagne [Tue, 13 Feb 2018 19:58:40 +0000 (20:58 +0100)]
Fix part I of T53977: Severe problem with multiple instances of a library (save and reload).

The issue was that when a same lib was found several times in loaded
.blend, we'd only keep the first occurence. But since Blender expects
next data-blocks to belong to last found library, we could actually
be adding data-blocks assigned to copies of the duplicated lib to
another, totally unrelated lib.

Those data-blocks were then obviously not found when actually loading
libs content, and lost.

Note that this only fix one part of the issue, current code can
generate several copies of same linked data-block now, will fix in
another commit.

2 years agoCode cleanup: simplify switch statement, ensure we catch missing enums.
Brecht Van Lommel [Thu, 15 Feb 2018 17:13:07 +0000 (18:13 +0100)]
Code cleanup: simplify switch statement, ensure we catch missing enums.

2 years agoFix T54073: crash and uninitialized memory in Cycles displacement hashing.
Brecht Van Lommel [Thu, 15 Feb 2018 14:28:34 +0000 (15:28 +0100)]
Fix T54073: crash and uninitialized memory in Cycles displacement hashing.

2 years agoFix crash reading deg_point_cache_transform.blend test, saved with 2.8.
Brecht Van Lommel [Thu, 15 Feb 2018 15:25:37 +0000 (16:25 +0100)]
Fix crash reading deg_point_cache_transform.blend test, saved with 2.8.

In general 2.8 files may not be readable in master, but might as well fix
this case so all the lib/tests can be opened still.

2 years agoCleanup: Remove debug-only code
Sergey Sharybin [Thu, 15 Feb 2018 16:57:44 +0000 (17:57 +0100)]
Cleanup: Remove debug-only code

2 years agoFix T54076: MCE in Graph mode - clip.graph_select_border does not work by header...
Sergey Sharybin [Thu, 15 Feb 2018 15:56:49 +0000 (16:56 +0100)]
Fix T54076: MCE in Graph mode - clip.graph_select_border does not work by header menu

While the script should be using INVOKE_PREVIEW for operators in clip view,
window manager was lacking some switch statements.

Thanks Brecht fore review!

2 years agoCleanup: rename BLI_thread.h API
Campbell Barton [Thu, 15 Feb 2018 14:13:46 +0000 (01:13 +1100)]
Cleanup: rename BLI_thread.h API

- Use BLI_threadpool_ prefix for (deprecated)
  thread/listbase API.
- Use BLI_thread as prefix for other functions.

See P614 to apply instead of manually resolving conflicts.

2 years agoCleanup: use '_len' instead of '_size' w/ BLI API
Campbell Barton [Thu, 15 Feb 2018 12:36:11 +0000 (23:36 +1100)]
Cleanup: use '_len' instead of '_size' w/ BLI API

- When returning the number of items in a collection use BLI_*_len()
- Keep _size() for size in bytes.
- Keep _count() for data structures that don't store length
  (hint this isn't a simple getter).

See P611 to apply instead of manually resolving conflicts.

2 years agoCleanup: Style, braces with macros
Sergey Sharybin [Thu, 15 Feb 2018 11:41:35 +0000 (12:41 +0100)]
Cleanup: Style, braces with macros

See https://wiki.blender.org/index.php/Dev:Doc/Code_Style#Braces_with_Macros

2 years agoCleanup: Remove BLI_ prefix from listbase macro
Sergey Sharybin [Thu, 15 Feb 2018 11:38:21 +0000 (12:38 +0100)]
Cleanup: Remove BLI_ prefix from listbase macro

This is kind of doesn't matter where macro itself is defined.

We should stick to the following:

- If some macro is actually more an inline function, follow regular
  function name conventions.
- If macro is a macro, type it in capitals. Use module prefix if that
  helps readability or it if helps avoiding accidents.

2 years agoSimple hair children: Make twist affected by texture
Sergey Sharybin [Thu, 15 Feb 2018 10:22:44 +0000 (11:22 +0100)]
Simple hair children: Make twist affected by texture

This completes twist feature, which is now possible to also control by
texture. Since textures can not easily contain negative values as well,
same trick with 0.5 neutral as vertex groups is used.

All in all, this twist features allows to do following things.

Original hair:

{F2287535}

Hair with scientifically calculated twist value of 0.5:

{F2287540}

And we can also twist braids in opposite directions dependent on left/right
side:

{F2287548}

2 years agoFix T54078: Adding subsurf prior to particle system breaks simple children vgroups...
Sergey Sharybin [Thu, 15 Feb 2018 09:27:39 +0000 (10:27 +0100)]
Fix T54078: Adding subsurf prior to particle system breaks simple children vgroups and textures

cpa->num points to a face index on BASE mesh, but get_child_modifier_parameters()
expects index on a FINAL dm. So wrong index was used here.

2 years agoSimple hair children: Make twist affected by vertex group
Sergey Sharybin [Wed, 14 Feb 2018 15:46:29 +0000 (16:46 +0100)]
Simple hair children: Make twist affected by vertex group

The idea is to give a control over direction of twist, and maybe amount of
twist as well. More concrete example: make braids on left and right side of
character head to be twisting opposite directions.

Now, tricky part: we need some negative values to flip direction, but weights
can not be negative. So we use same trick as displacement map and tangent normal
maps, where 0.5 is neutral, values below 0.5 are considered negative and values
above 0.5 are considered positive.

2 years agoSimple hair children: Initial implementation of twist control
Sergey Sharybin [Wed, 14 Feb 2018 13:33:53 +0000 (14:33 +0100)]
Simple hair children: Initial implementation of twist control

It allows to have children hair to be twisted around parent curve, which is
quite an essential feature when creating hair braids.

There are currently two controls:

- Number of turns around parent children.
- Influence curve, which allows to modify "twistness" along the strand.

2 years agoBlenlib: Assert when attempting to rotate point around vector and store result in...
Sergey Sharybin [Wed, 14 Feb 2018 13:29:37 +0000 (14:29 +0100)]
Blenlib: Assert when attempting to rotate point around vector and store result in the point

This isn't supported since there are subsequent reads to all point coordinates
after modification started.

Probably we need to create a temp copy of point, but that's like extra CPU
ticks.

2 years agoParticles: Wrap insane amount of arguments to child modifier evaluation
Sergey Sharybin [Wed, 14 Feb 2018 11:33:34 +0000 (12:33 +0100)]
Particles: Wrap insane amount of arguments to child modifier evaluation

Use single structure. It seems we will need to pass more information soon,
so better to do it via the structure.

2 years agoFix T54075: Align Objects fails w/ empty mesh
Campbell Barton [Thu, 15 Feb 2018 00:33:47 +0000 (11:33 +1100)]
Fix T54075: Align Objects fails w/ empty mesh

2 years agoCleanup: style
Campbell Barton [Thu, 15 Feb 2018 00:13:54 +0000 (11:13 +1100)]
Cleanup: style

2 years agoFix T54072: Crash splitting edges
Campbell Barton [Wed, 14 Feb 2018 23:48:12 +0000 (10:48 +1100)]
Fix T54072: Crash splitting edges

2 years agoCycles: restore Particle Info Index for now, keep it next to Random.
Brecht Van Lommel [Wed, 14 Feb 2018 16:02:28 +0000 (17:02 +0100)]
Cycles: restore Particle Info Index for now, keep it next to Random.

It seems to be useful still in cases where the particle are distributed in
a particular order or pattern, to colorize them along with that. This isn't
really well defined, but might as well avoid breaking backwards compatibility
for now.

2 years agoCycles: change Index output of Hair and Particle Info to Random, in 0..1 range.
Brecht Van Lommel [Wed, 14 Feb 2018 13:32:38 +0000 (14:32 +0100)]
Cycles: change Index output of Hair and Particle Info to Random, in 0..1 range.

These are used for randomization, so it's convenient if the index is already
hashed and consistent with the Object Info node.

2 years agoParticles: Avoid multiple function declarations in multiple places
Sergey Sharybin [Wed, 14 Feb 2018 10:52:58 +0000 (11:52 +0100)]
Particles: Avoid multiple function declarations in multiple places

This makes it really hard to spot errors when function signature changes.

2 years agoParticles: Cleanup, remove trailign whitespace
Sergey Sharybin [Wed, 14 Feb 2018 10:46:33 +0000 (11:46 +0100)]
Particles: Cleanup, remove trailign whitespace

2 years agoHair child: Use clamp function to clamp curve evaluation
Sergey Sharybin [Wed, 14 Feb 2018 10:36:46 +0000 (11:36 +0100)]
Hair child: Use clamp function to clamp curve evaluation

Avoids redundant calls to the curve evaluation.

2 years agoMath utils: Add clamping functions
Sergey Sharybin [Wed, 14 Feb 2018 10:21:27 +0000 (11:21 +0100)]
Math utils: Add clamping functions

2 years agoCMake: Expose Cycles devices support as CMake option
Sergey Sharybin [Wed, 14 Feb 2018 09:31:04 +0000 (10:31 +0100)]
CMake: Expose Cycles devices support as CMake option

Handy to disable GPU based devices when it's needed to run Valgrind.

2 years agoCMake: Fix cimpilation error when CUDA dynload is disabled but toolkit is not installed
Sergey Sharybin [Wed, 14 Feb 2018 09:20:26 +0000 (10:20 +0100)]
CMake: Fix cimpilation error when CUDA dynload is disabled but toolkit is not installed

2 years agoCleanup: use prefix for tests
Campbell Barton [Wed, 14 Feb 2018 05:02:21 +0000 (16:02 +1100)]
Cleanup: use prefix for tests

Allows for running all `bmesh_*` or `object_*` tests.

2 years agoAdd ED_object_editmode_exit_ex
Campbell Barton [Tue, 13 Feb 2018 13:38:13 +0000 (00:38 +1100)]
Add ED_object_editmode_exit_ex

Allow exiting editmode from non-active scene.

2 years agoCycles: Implement index output for hair node
Sergey Sharybin [Tue, 13 Feb 2018 13:20:47 +0000 (14:20 +0100)]
Cycles: Implement index output for hair node

This is like the only way to add variety to hair which is created
using simple children. Used here for the hair.

Maybe not ideal, but the time will show.

2 years ago(Nodes) Display image name if any in the Cycles Image and Environment Texture node...
Ines Almeida [Mon, 12 Feb 2018 23:58:26 +0000 (00:58 +0100)]
(Nodes) Display image name if any in the Cycles Image and Environment Texture node title

2 years agoFix random walk SSS issues with different base and subsurface color.
Brecht Van Lommel [Mon, 12 Feb 2018 20:08:59 +0000 (21:08 +0100)]
Fix random walk SSS issues with different base and subsurface color.

Burley SSS uses a bit of strange thing where the albedo and closure weight are
different, which makes the subsurface color act a bit like a subsurface radius
indirectly by the way the Burley SSS profile works.

This can't work for random walk SSS though, and it's not clear to me that this
is actually a good idea since it's really the subsurface radius that is supposed
to control this. For now I'll leave Burley SSS working the same to not break
backwards compatibility.

2 years agoFix part of T53080: don't use current scene world for icon previews.
Brecht Van Lommel [Mon, 12 Feb 2018 19:08:50 +0000 (20:08 +0100)]
Fix part of T53080: don't use current scene world for icon previews.

This can be very slow if it contains a big texture, and it's not
necessarily setup in a useful way anyway, and materials can be used
in multiple scenes.

2 years agoBuildbot: Remove usage of deprecated chroot
Sergey Sharybin [Mon, 12 Feb 2018 16:55:38 +0000 (17:55 +0100)]
Buildbot: Remove usage of deprecated chroot

2 years agoAdd boolean regression test.
Howard Trickey [Mon, 12 Feb 2018 12:23:23 +0000 (07:23 -0500)]
Add boolean regression test.

2 years agoError in last commit, disable cycles when not enabled
Campbell Barton [Mon, 12 Feb 2018 06:56:14 +0000 (17:56 +1100)]
Error in last commit, disable cycles when not enabled

Would only disable when loading old preferences.

2 years agoDisable cycles when WITH_CYCLES=OFF
Campbell Barton [Mon, 12 Feb 2018 06:37:39 +0000 (17:37 +1100)]
Disable cycles when WITH_CYCLES=OFF

2 years agoBKE_addon: new/free/ensure functions
Campbell Barton [Mon, 12 Feb 2018 06:24:18 +0000 (17:24 +1100)]
BKE_addon: new/free/ensure functions

2 years agoCycles: add random walk subsurface scattering to Principled BSDF.
Brecht Van Lommel [Thu, 8 Feb 2018 15:19:04 +0000 (16:19 +0100)]
Cycles: add random walk subsurface scattering to Principled BSDF.

Differential Revision: https://developer.blender.org/D3054

2 years agoCycles: random walk subsurface scattering.
Brecht Van Lommel [Sun, 21 Jan 2018 13:04:22 +0000 (14:04 +0100)]
Cycles: random walk subsurface scattering.

It is basically brute force volume scattering within the mesh, but part
of the SSS code for faster performance. The main difference with actual
volume scattering is that we assume the boundaries are diffuse and that
all lighting is coming through this boundary from outside the volume.

This gives much more accurate results for thin features and low density.
Some challenges remain however:

* Significantly more noisy than BSSRDF. Adding Dwivedi sampling may help
  here, but it's unclear still how much it helps in real world cases.
* Due to this being a volumetric method, geometry like eyes or mouth can
  darken the skin on the outside. We may be able to reduce this effect,
  or users can compensate for it by reducing the scattering radius in
  such areas.
* Sharp corners are quite bright. This matches actual volume rendering
  and results in some other renderers, but maybe not so much real world
  objects.

Differential Revision: https://developer.blender.org/D3054

2 years agoFix (unreported) error on freeing timers which customdata pointer shall not be freed.
Bastien Montagne [Fri, 9 Feb 2018 16:19:11 +0000 (17:19 +0100)]
Fix (unreported) error on freeing timers which customdata pointer shall not be freed.

Looks like there was no way to avoid that so far, since
WM_event_add_timer_notifier can set mere int-in-pointer there, this can
cause issues. So added mere flags system to wmTimer to allow
controlling this.

2 years agoFix (unreported) crash when duplicating a FileBrowser window in preview draw mode.
Bastien Montagne [Fri, 9 Feb 2018 15:13:13 +0000 (16:13 +0100)]
Fix (unreported) crash when duplicating a FileBrowser window in preview draw mode.

We did not clear preview or smoothscroll timers pointers in copy code...

2 years agoDoc: attempt to document RNA's FunctionFlag.
Bastien Montagne [Fri, 9 Feb 2018 11:04:29 +0000 (12:04 +0100)]
Doc: attempt to document RNA's FunctionFlag.

Tired of searching through code to find which is what, and how to use it
in the C callback, everytime I need anot-so-common option...

2 years agoPaint Dirt: remove operator call from Python
Sybren A. Stüvel [Fri, 9 Feb 2018 11:52:46 +0000 (12:52 +0100)]
Paint Dirt: remove operator call from Python

Instead of calling an operator I just call `collection.new()`. Moving the
code into a separate function also simplifies it. In its new form there is
also no undefined behaviour when me.vertex_colors is non-empty but without
active layer.

2 years agoPaint Dirt: some small fixes
Sybren A. Stüvel [Thu, 8 Feb 2018 11:33:46 +0000 (12:33 +0100)]
Paint Dirt: some small fixes

- normalize → average the vector: the vector isn't normalized here, because
  it doesn't necessarily becomes unit length. Instead, the sum is converted
  to an average vector.
- angle is the acos()…: the dot product between the vertex normal and the
  average direction of the connected vertices is computed, and not the
  opposite.
- The initial `con` list was discarded immediately and replaced by a new
  list.
- File didn't end with a newline.

2 years agoFix crash with font on curve
Sergey Sharybin [Fri, 9 Feb 2018 09:13:42 +0000 (10:13 +0100)]
Fix crash with font on curve

Was a mistake from recent texspace changes.

Reported by Pablo here in the studio!

2 years agoCMake: include missing headers
Campbell Barton [Fri, 9 Feb 2018 02:48:34 +0000 (13:48 +1100)]
CMake: include missing headers

2 years agoFix T53958: Sequencer zoom 1:1 fails
Campbell Barton [Fri, 9 Feb 2018 02:39:47 +0000 (13:39 +1100)]
Fix T53958: Sequencer zoom 1:1 fails

2 years agoFix T53347: Vertex paint crash
Campbell Barton [Fri, 9 Feb 2018 00:58:19 +0000 (11:58 +1100)]
Fix T53347: Vertex paint crash

Vertex paint was still using sculpt mode brush (which can be NULL).

2 years agoFix for missing "Use Freestyle" toggle in the Cycles "Layer" options panel.
Tamito Kajiyama [Thu, 8 Feb 2018 17:46:20 +0000 (02:46 +0900)]
Fix for missing "Use Freestyle" toggle in the Cycles "Layer" options panel.

Reviewed By: Brecht Van Lommel (brecht), Dalai Felinto (dfelinto)

Differential Revision: https://developer.blender.org/D3048

2 years agoCycles: unify OSL BSSRDF closure into a single bssrdf() closure with method.
Brecht Van Lommel [Thu, 8 Feb 2018 15:14:04 +0000 (16:14 +0100)]
Cycles: unify OSL BSSRDF closure into a single bssrdf() closure with method.

This is similar to the upstream unified microfacet() closure, and makes it
easier to extend in the future.

2 years agoCode refactor: tweaks in SSS code to prepare for coming changes.
Brecht Van Lommel [Thu, 8 Feb 2018 11:45:12 +0000 (12:45 +0100)]
Code refactor: tweaks in SSS code to prepare for coming changes.

This also fixes a subtle bug in the split kernel branched path SSS, the
volume stack update can't be shared between multiple hit points.

2 years agoCode refactor: remove unnecessary RNG offset in branched path code.
Brecht Van Lommel [Thu, 8 Feb 2018 12:58:02 +0000 (13:58 +0100)]
Code refactor: remove unnecessary RNG offset in branched path code.

This is only needed for SSS which bounces to a different shading point.

2 years agoCycles tests: separate directory for sss tests.
Brecht Van Lommel [Thu, 8 Feb 2018 12:32:07 +0000 (13:32 +0100)]
Cycles tests: separate directory for sss tests.

2 years agoDisable fast adjust code. Add other end spec matching.
Howard Trickey [Thu, 8 Feb 2018 15:48:24 +0000 (10:48 -0500)]
Disable fast adjust code. Add other end spec matching.

This fixes a few caess where new width adjustment code

was less than ideal.

2 years agoRemove Carve boolean
Sergey Sharybin [Wed, 7 Feb 2018 13:44:59 +0000 (14:44 +0100)]
Remove Carve boolean

We've got quite comprehensive BMesh based implementation, which is way easier
for maintenance than abandoned Carve library.

After all the time BMesh implementation was working on the same level of
limitations about manifold meshes and touching edges than Carve. Is better
to focus on maintaining one boolean implementation now.

Reviewers: campbellbarton

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D3050

2 years agoDepsgraph: Fix missing camera animation after visibility changes
Sergey Sharybin [Thu, 8 Feb 2018 14:12:38 +0000 (15:12 +0100)]
Depsgraph: Fix missing camera animation after visibility changes

Synchronize code in on_visible_update with depsgraph building.

Need to update all cameras, since they might be hooked up to marker.

2 years agoMesh: concave quad support
Campbell Barton [Thu, 8 Feb 2018 12:38:17 +0000 (23:38 +1100)]
Mesh: concave quad support

Previously quads always split along first-third vertices.
This is still the default, to avoid flickering with animated deformation
however concave quads that would create two opposing triangles now use
second-fourth split.

Reported as T53999 although this issue has been known limitation
for a long time.

2 years agoDopesheet: Synchronize selection on bones when selecting everything
Sergey Sharybin [Thu, 8 Feb 2018 11:35:42 +0000 (12:35 +0100)]
Dopesheet: Synchronize selection on bones when selecting everything

This is also how box selection and mouse selection is working.

Requested by Hjalti, reviewed by Joshua. Thanks!

2 years agoFail gracefully when editmode data doesn't exist
Campbell Barton [Thu, 8 Feb 2018 10:27:08 +0000 (21:27 +1100)]
Fail gracefully when editmode data doesn't exist

Sync changes from 2.8

2 years agoLinux: Add appdata.xml file for packagers
Campbell Barton [Thu, 8 Feb 2018 04:57:14 +0000 (15:57 +1100)]
Linux: Add appdata.xml file for packagers

D3025 by @januz

2 years agoForgot to return actual value in previous own commit.
Bastien Montagne [Wed, 7 Feb 2018 21:26:11 +0000 (22:26 +0100)]
Forgot to return actual value in previous own commit.

Sorry about the noise...

2 years agoLibrary linking code: proper early out in case there is nothing to link.
Bastien Montagne [Wed, 7 Feb 2018 21:09:44 +0000 (22:09 +0100)]
Library linking code: proper early out in case there is nothing to link.

2 years agoLibrary reload code: add early out in case there is nothing to reload.
Bastien Montagne [Wed, 7 Feb 2018 20:52:38 +0000 (21:52 +0100)]
Library reload code: add early out in case there is nothing to reload.

2 years agoUpdate CUEW to latest version
Brecht Van Lommel [Tue, 6 Feb 2018 13:54:18 +0000 (14:54 +0100)]
Update CUEW to latest version

This brings separate initialization for libcuda and libnvrtc, which
fixes Cycles nvrtc compilation not working on build machines without
CUDA hardware available.

Differential Revision: https://developer.blender.org/D3045

2 years agoCorrect header guard in last commit
Campbell Barton [Wed, 7 Feb 2018 04:51:23 +0000 (15:51 +1100)]
Correct header guard in last commit

2 years agoCleanup: Python context access
Campbell Barton [Wed, 7 Feb 2018 04:47:54 +0000 (15:47 +1100)]
Cleanup: Python context access

Avoid access from bpy when it's already declared.

2 years agoCleanup: add _types.h suffix to DNA headers
Campbell Barton [Wed, 7 Feb 2018 00:14:08 +0000 (11:14 +1100)]
Cleanup: add _types.h suffix to DNA headers

2 years agoDepsgraph: Correction to previous particle fix
Sergey Sharybin [Tue, 6 Feb 2018 13:47:02 +0000 (14:47 +0100)]
Depsgraph: Correction to previous particle fix

The reason it appeared working was due to left-over debug code to force
time dependency.

Real fix seems to include force tagging objects used by duplication,
similar to what we do for some other modifiers already.

2 years agoUse eObjectMode for function arguments
Campbell Barton [Tue, 6 Feb 2018 12:34:58 +0000 (23:34 +1100)]
Use eObjectMode for function arguments

2 years agoDNA: move eObjectMode into own header
Campbell Barton [Tue, 6 Feb 2018 11:53:09 +0000 (22:53 +1100)]
DNA: move eObjectMode into own header

Add a enum headers to DNA, to be included in other headers
so function signatures can use enums for better type safety.

Add DNA_*_enums.h matching DNA_*.types.h as needed.

2 years agoFix T54003: Particles - Size and random size not present in "physics" tab in Advanced...
Mai Lavelle [Tue, 6 Feb 2018 01:15:53 +0000 (20:15 -0500)]
Fix T54003: Particles - Size and random size not present in "physics" tab in Advanced mode

The check to see if `use_advanced_hair` was enabled was actually in two places
(render panel `draw` function and physics panel `poll` function). As these
properties are only in one place now the check in `draw` isn't needed anymore.

Related: T53513, a6c69ca57f661a8538

2 years agoFix T54001: AMD OpenCL fails with certain resolutions, after recent changes.
Brecht Van Lommel [Mon, 5 Feb 2018 21:13:08 +0000 (22:13 +0100)]
Fix T54001: AMD OpenCL fails with certain resolutions, after recent changes.

We should actually be using CL_DEVICE_MEM_BASE_ADDR_ALIGN for sub buffers,
previous change in this code was incorrect. Renamed the function now to
make the specific purpose of this alignment clear, it's not required for
data types in general.

2 years agoFix bevel profile=1 problems, see T39132, T38458, T40278, T51010,
Howard Trickey [Mon, 5 Feb 2018 19:21:43 +0000 (14:21 -0500)]
Fix bevel profile=1 problems, see T39132, T38458, T40278, T51010,
T53783.

Before, profile=1 ("square outside") only worked well in a few cases
(some "pipes", cube corners). This makes it work well pretty much
everywhere.

2 years agoFix typo in struct name obejct to object.
Nathan Letwory [Mon, 5 Feb 2018 09:01:00 +0000 (11:01 +0200)]
Fix typo in struct name obejct to object.

Reviewers: sergey

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D3041

2 years agoMinor change to last commit
Campbell Barton [Mon, 5 Feb 2018 06:56:09 +0000 (17:56 +1100)]
Minor change to last commit

Keep mode checks simple, nest other checks in their body.

2 years agoFix T53986: Crash saving during sculpt stroke
Campbell Barton [Mon, 5 Feb 2018 06:53:30 +0000 (17:53 +1100)]
Fix T53986: Crash saving during sculpt stroke

Also remove unused struct member.

2 years agocycles: fix black render with cycles_cubin_cc.
Ray Molenkamp [Sun, 4 Feb 2018 22:12:35 +0000 (15:12 -0700)]
cycles: fix black render with cycles_cubin_cc.

I have honestly no idea how this got swapped..

2 years agocycles: fix cxx11 usage for cycles_cubin_cc
Ray Molenkamp [Sun, 4 Feb 2018 22:11:08 +0000 (15:11 -0700)]
cycles: fix cxx11 usage for cycles_cubin_cc

2 years agomsvc: Use source folder structure for project file.
Ray Molenkamp [Sat, 3 Feb 2018 23:38:27 +0000 (16:38 -0700)]
msvc: Use source folder structure for project file.

This patch changes the huge list of projects in visual studio into a nice tree matching the source folder structure. see D2823 for details.

Differential Revision: http://developer.blender.org/D2823

2 years agocycles: Add an nvrtc based cubin cli compiler.
Ray Molenkamp [Sat, 3 Feb 2018 17:59:09 +0000 (10:59 -0700)]
cycles: Add an nvrtc based cubin cli compiler.

nvcc is very picky regarding compiler versions, severely limiting the compiler we can use, this commit adds a nvrtc based compiler that'll allow us to build the cubins even if the host compiler is unsupported. for details see D2913.

Differential Revision: http://developer.blender.org/D2913

2 years agoFix more Cycles incorrect principled BSDF mixing due to missing initialization.
Brecht Van Lommel [Sat, 3 Feb 2018 12:29:44 +0000 (13:29 +0100)]
Fix more Cycles incorrect principled BSDF mixing due to missing initialization.

Spotted by Ha Hyung-jin, thanks!

2 years agoFix build error with CUDA 9.1 and compute capability 2.x.
Brecht Van Lommel [Sat, 3 Feb 2018 12:14:05 +0000 (13:14 +0100)]
Fix build error with CUDA 9.1 and compute capability 2.x.

2 years agoCycles: make displacement a supported feature.
Brecht Van Lommel [Thu, 25 Jan 2018 14:38:46 +0000 (15:38 +0100)]
Cycles: make displacement a supported feature.

Adaptive subdivision remains experimental, still needs more work.

2 years agoCycles: add Vector Displacement node and extend Displacement node.
Brecht Van Lommel [Sat, 20 Jan 2018 23:40:42 +0000 (00:40 +0100)]
Cycles: add Vector Displacement node and extend Displacement node.

This adds midlevel and object/world space for displacement, and a
vector displacement node with tangent/object/world space, midlevel
and scale.

Note that tangent space vector displacement still is not exactly
compatible with maps created by other software, this will require
changes to the tangent computation.

Differential Revision: https://developer.blender.org/D1734

2 years agoFix missing group duplicated by hair in render
Sergey Sharybin [Fri, 2 Feb 2018 11:00:25 +0000 (12:00 +0100)]
Fix missing group duplicated by hair in render

Was happening when viewport visibility on the particle system is disabled.
This became an issue after c45afcf, but the actual issue goes a bit deeper
and the following aspects were involved:

- Relations builder for particle system was ignoring particle system if
  it's visibility is not enabled for viewport. This is something what
  shouldn't have been done -- depsgraph relations are supposed to be the
  same no matter if it's viewport or render.

- Relation builder was only dealing with duplication set to object, but
  was ignoring group duplication.

This is technically a regression in 2.79a-RC as well, so would need to
backport this fix to the branch after extra testing is done here in the
studio.

2 years agofix: silence warnings about unused local variable (thanks to dfelinto for the hint)
Gaia Clary [Fri, 2 Feb 2018 10:56:50 +0000 (11:56 +0100)]
fix: silence warnings about unused local variable (thanks to dfelinto for the hint)

2 years agoFix T53980: IK influencing REST POSE with New Depsgraph
Sergey Sharybin [Fri, 2 Feb 2018 09:37:06 +0000 (10:37 +0100)]
Fix T53980: IK influencing REST POSE with New Depsgraph

2 years agoCleanup: wrap function args
Campbell Barton [Fri, 2 Feb 2018 02:44:13 +0000 (13:44 +1100)]
Cleanup: wrap function args

2 years agoFix T53978: Bad memory access after recent fix to BSDF mixing
Mai Lavelle [Fri, 2 Feb 2018 00:59:22 +0000 (19:59 -0500)]
Fix T53978: Bad memory access after recent fix to BSDF mixing

Added proper checks after BSDF allocation and cleaned up existing
inline checks.

Was introduced in 7261d675e6aeb1b0dff

2 years agofix: unintentionally commented out collada animation export
Gaia Clary [Thu, 1 Feb 2018 23:49:32 +0000 (00:49 +0100)]
fix: unintentionally commented out collada animation export

2 years agoFix T53686: VSE Render crash when zooming timeline
Sergey Sharybin [Thu, 1 Feb 2018 15:24:25 +0000 (16:24 +0100)]
Fix T53686: VSE Render crash when zooming timeline

This is rather a workaround to avoid main thread freeing all glyph caches
at the same time as sequencer uses fonts to draw text sequences.

Ideally we need to either make cache more local, or user-counted or to make
somewhat more global locks. All this ends up in a bigger refactor which is
better for 2.8. For the meantime let's make Blender more stable with a tiny
workaround.

Downside is that keeping zooming things up and down in interface during render
will increase memory usage by unused glyph caches. It's not too bad though,
all unused caches will be freed first time at area zoom after render.

Thanks Bastien for review!

2 years agoFix T53951: Copy ms runtime dlls using InstallRequiredSystemLibraries.cmake
Ray Molenkamp [Thu, 1 Feb 2018 15:26:14 +0000 (08:26 -0700)]
Fix T53951: Copy ms runtime dlls using InstallRequiredSystemLibraries.cmake

Differential Revision: https://developer.blender.org/D3032

2 years agoFix: msvc build error with bli_fileops.h
Ray Molenkamp [Thu, 1 Feb 2018 14:58:06 +0000 (07:58 -0700)]
Fix: msvc build error with bli_fileops.h

bli_fileops.h was using uint64_t without including the proper header.

issue triggered by rBb0af44fa4d7a2e134b315c49a4fbdf573f781004

2 years agoFix T53686: VSE Render crash when zooming timeline.
Bastien Montagne [Thu, 1 Feb 2018 14:53:49 +0000 (15:53 +0100)]
Fix T53686: VSE Render crash when zooming timeline.

Epic fail from recent 'security' fixes (rBe04d7c49dca9). ;)

To be backported to 2.79a!

2 years agoCycles: Attempt to fix 32 bit linux compilation
Sergey Sharybin [Thu, 1 Feb 2018 14:13:54 +0000 (15:13 +0100)]
Cycles: Attempt to fix 32 bit linux compilation

2 years agoCycles: Fix for non-vectorized version of bitscan()
Sergey Sharybin [Thu, 1 Feb 2018 14:11:17 +0000 (15:11 +0100)]
Cycles: Fix for non-vectorized version of bitscan()

It was doing bit search in an opposite direction comparing to a
vectorized version.