3 years agoFix T58794: extended shading pie menu wrong order in lookdev mode.
Brecht Van Lommel [Wed, 5 Dec 2018 14:19:52 +0000 (15:19 +0100)]
Fix T58794: extended shading pie menu wrong order in lookdev mode.

3 years agoMerge branch 'master' into blender2.8
Bastien Montagne [Wed, 5 Dec 2018 14:15:06 +0000 (15:15 +0100)]
Merge branch 'master' into blender2.8

3 years agoFix (unreported) building Cycles tests with Embree enabled.
Bastien Montagne [Wed, 5 Dec 2018 14:14:16 +0000 (15:14 +0100)]
Fix (unreported) building Cycles tests with Embree enabled.

3 years agoFix T58104: Duplicated previews for Matcaps/HDRIs in portable installs
Philipp Oeser [Mon, 3 Dec 2018 19:55:36 +0000 (20:55 +0100)]
Fix T58104: Duplicated previews for Matcaps/HDRIs in portable installs

Reviewers: brecht

Maniphest Tasks: T58104

Differential Revision:

3 years agoMerge branch 'master' into blender2.8
Bastien Montagne [Wed, 5 Dec 2018 13:41:00 +0000 (14:41 +0100)]
Merge branch 'master' into blender2.8

3 years agoFix T58756: crash changing shading.type in 3D viewport in inactive screen.
Brecht Van Lommel [Wed, 5 Dec 2018 13:35:55 +0000 (14:35 +0100)]
Fix T58756: crash changing shading.type in 3D viewport in inactive screen.

3 years agoColor management: Fix/workaround broken getDefaultDisplay()
Sergey Sharybin [Wed, 5 Dec 2018 12:34:04 +0000 (13:34 +0100)]
Color management: Fix/workaround broken getDefaultDisplay()

This is something what is caused by OCIO library. The patch
has been submitted there:

For until it is refined and checked we do workaround from
our side.

3 years agoColor management: Query default view from display
Sergey Sharybin [Wed, 5 Dec 2018 11:06:48 +0000 (12:06 +0100)]
Color management: Query default view from display

Solves weird situation when default display name is queried
from OCIO, but Default view being assumed to be set for it.

Now view is initialized to a default view of that display.

3 years agoColor management: Cleanup, typos
Sergey Sharybin [Wed, 5 Dec 2018 10:53:37 +0000 (11:53 +0100)]
Color management: Cleanup, typos

3 years agoFix T58776, T58030: pressure sensitivity on Linux not working for some tablets.
Brecht Van Lommel [Wed, 5 Dec 2018 12:58:38 +0000 (13:58 +0100)]
Fix T58776, T58030: pressure sensitivity on Linux not working for some tablets.

3 years agoInstall_deps: bump collada version to 1.6.68.
Bastien Montagne [Wed, 5 Dec 2018 12:52:39 +0000 (13:52 +0100)]
Install_deps: bump collada version to 1.6.68.

3 years agoUI: rename UV Edit to UV Editor, for consistency.
Brecht Van Lommel [Wed, 5 Dec 2018 12:51:37 +0000 (13:51 +0100)]
UI: rename UV Edit to UV Editor, for consistency.

3 years agoMerge branch 'master' into blender2.8
Brecht Van Lommel [Wed, 5 Dec 2018 11:54:45 +0000 (12:54 +0100)]
Merge branch 'master' into blender2.8

3 years agoFix build with old CMake versions.
Brecht Van Lommel [Wed, 5 Dec 2018 11:53:08 +0000 (12:53 +0100)]
Fix build with old CMake versions.

3 years agoCleanup: remove deprecated piece of code in library reading code.
Bastien Montagne [Wed, 5 Dec 2018 10:45:01 +0000 (11:45 +0100)]
Cleanup: remove deprecated piece of code in library reading code.

That one was flagged as useless since 2.77, and only kept 'to be sure'
everything was OK. This was years ago now, and never got any report on
this, so 2.8 sounds like a good time to nuke it.

3 years agoFix T58771: Wrong path to Unit Settings
Jacques Lucke [Wed, 5 Dec 2018 10:25:39 +0000 (11:25 +0100)]
Fix T58771: Wrong path to Unit Settings

Reviewers: brecht

Differential Revision:

3 years agoFix T58772: Stray "forward" and "up" options in 2.8 import addons?
Bastien Montagne [Wed, 5 Dec 2018 09:57:08 +0000 (10:57 +0100)]
Fix T58772: Stray "forward" and "up" options in 2.8 import addons?

Nice side-effect of using new __annotations__ thingy to store
dynamically-generated fields in a class: __annotations__ dict is not
ensured to exist for a given class, so we may end up modifying on of the
parents' one!

3 years agoImplement bvhtree.fromObject
Dalai Felinto [Tue, 4 Dec 2018 22:47:13 +0000 (20:47 -0200)]
Implement bvhtree.fromObject

Passing depsgraph instead of scene, since a scene does not fully define the
state of object you want to use for the BVH.

Also, mesh_create_eval_final_view and mesh_create_eval_final_render are pretty
much the same, so mesh_create_eval_no_deform and
mesh_create_eval_no_deform_render are as well.

Issue reported on: T58734

Reviewers: sergey

3 years agoGP: Add missing pressure button to Topbar
Antonioya [Wed, 5 Dec 2018 09:46:41 +0000 (10:46 +0100)]
GP: Add missing pressure button to Topbar

3 years agoUI: split UV editor out of the image space
Campbell Barton [Wed, 5 Dec 2018 03:35:45 +0000 (14:35 +1100)]
UI: split UV editor out of the image space

3 years agoGPU: Cleanup: Replace glFlush by GPU_flush
Clément Foucault [Wed, 5 Dec 2018 03:23:45 +0000 (04:23 +0100)]
GPU: Cleanup: Replace glFlush by GPU_flush

3 years agoGPU: Improve detection of intels UHD graphics
Clément Foucault [Wed, 5 Dec 2018 03:22:32 +0000 (04:22 +0100)]
GPU: Improve detection of intels UHD graphics

3 years agoGPU: Print opengl infos if using --debug-gpu-force-workarounds
Clément Foucault [Wed, 5 Dec 2018 03:03:40 +0000 (04:03 +0100)]
GPU: Print opengl infos if using --debug-gpu-force-workarounds

3 years agoFix T58551: Dragged in images do not display orange highlight border when selected
Clément Foucault [Wed, 5 Dec 2018 02:45:02 +0000 (03:45 +0100)]
Fix T58551: Dragged in images do not display orange highlight border when selected

3 years agoUI: Select Linked Instanced Collection still named Dupligroup
Pablo Vazquez [Wed, 5 Dec 2018 02:40:13 +0000 (03:40 +0100)]
UI: Select Linked Instanced Collection still named Dupligroup

Fixes T58747

3 years agoBKE: Add "--debug-gpu-force-workarounds" to force gpu workarounds
Clément Foucault [Wed, 5 Dec 2018 02:05:39 +0000 (03:05 +0100)]
BKE: Add "--debug-gpu-force-workarounds" to force gpu workarounds

This is nice to test workarounds on other configs that may benefits from
the existing workarounds.

3 years agoFix T58733: Segmentation fault at start causes by shader compillation
Clément Foucault [Wed, 5 Dec 2018 01:15:06 +0000 (02:15 +0100)]
Fix T58733: Segmentation fault at start causes by shader compillation

3 years agoWorkbench: Remove specular shadowing for red and blue metal
Clément Foucault [Wed, 5 Dec 2018 01:08:18 +0000 (02:08 +0100)]
Workbench: Remove specular shadowing for red and blue metal

3 years agoWorkbench: Cleanups and reduce shader variations
Clément Foucault [Wed, 5 Dec 2018 01:07:23 +0000 (02:07 +0100)]
Workbench: Cleanups and reduce shader variations

Also optimize deferred engine by only outputing material data if needed.
This make the bare flat shading mode (no effects) only a depth prepass.

3 years agoWorkbench: Fix workbench broken on some config due to usuned fb slot
Clément Foucault [Tue, 4 Dec 2018 19:29:30 +0000 (20:29 +0100)]
Workbench: Fix workbench broken on some config due to usuned fb slot

This seems to be a driver bug. Only windows + Radeon HD 7500M seems
to be affected. Fix can be extended to more config if necessary.

3 years agoWorkbench: Remove unused framebuffer slot.
Clément Foucault [Tue, 4 Dec 2018 19:23:30 +0000 (20:23 +0100)]
Workbench: Remove unused framebuffer slot.

3 years agoObject: select objects when revealing
Campbell Barton [Wed, 5 Dec 2018 01:05:47 +0000 (12:05 +1100)]
Object: select objects when revealing

Matches behavior for other modes.

3 years agoFix T58661: Shading pie doesn't highlight x-ray when on
Campbell Barton [Wed, 5 Dec 2018 00:50:35 +0000 (11:50 +1100)]
Fix T58661: Shading pie doesn't highlight x-ray when on

3 years agoFix T58690: Disable overlay doesn't hide bones
Campbell Barton [Tue, 4 Dec 2018 23:56:16 +0000 (10:56 +1100)]
Fix T58690: Disable overlay doesn't hide bones

3 years agoMerge branch 'master' into blender2.8
Campbell Barton [Wed, 5 Dec 2018 00:03:48 +0000 (11:03 +1100)]
Merge branch 'master' into blender2.8

3 years agoFix T49624: Fly uses camera settings outside camera view
Campbell Barton [Tue, 4 Dec 2018 21:36:37 +0000 (08:36 +1100)]
Fix T49624: Fly uses camera settings outside camera view

3 years agoGP: Enable Smooth Sculpt brush when press Shift key
Antonioya [Tue, 4 Dec 2018 21:34:50 +0000 (22:34 +0100)]
GP: Enable Smooth Sculpt brush when press Shift key

3 years agoCleanup: Action zone coordinates
Dalai Felinto [Tue, 4 Dec 2018 19:40:28 +0000 (17:40 -0200)]
Cleanup: Action zone coordinates

No functional changes, but it makes all the coordinates more consistent
(going from small to larger values). It helps debugging in the future
to be able to rule out vertex order as a culprit.

3 years agoFix area splitting from action zone flipping viewports
Dalai Felinto [Tue, 4 Dec 2018 19:30:23 +0000 (17:30 -0200)]
Fix area splitting from action zone flipping viewports

The top-left and bottom-right corners were creating the new area in the
wrong place.

Blender 2.7x only had action zone corners in the top-right, and
bottom-left corners. So it had some hardcoded assumptions based on that.

This commit feels a bit like a hack, but I think it may be fine.

Bug reported via IRC, how to reproduce:

* Change shading to Rendered.
* Split viewport from the top-left corner.

3 years agoMerge remote-tracking branch 'origin/master' into blender2.8
Gaia Clary [Tue, 4 Dec 2018 19:31:30 +0000 (20:31 +0100)]
Merge remote-tracking branch 'origin/master' into blender2.8

3 years agofix T58568: used wrong case in variable name
Gaia Clary [Tue, 4 Dec 2018 19:28:20 +0000 (20:28 +0100)]
fix T58568: used wrong case in variable name

3 years agoMerge branch 'master' into blender2.8
Gaia Clary [Tue, 4 Dec 2018 18:48:21 +0000 (19:48 +0100)]
Merge branch 'master' into blender2.8

3 years agofix T58568 build errors when using collada 1.6.68 or newer
Gaia Clary [Tue, 4 Dec 2018 18:11:33 +0000 (19:11 +0100)]
fix T58568 build errors when using collada 1.6.68 or newer

3 years agoFix T58466: bug in macOS GHOST_GetSwapInterval.
Niels [Tue, 4 Dec 2018 17:40:09 +0000 (18:40 +0100)]
Fix T58466: bug in macOS GHOST_GetSwapInterval.

No user level changes since this function is not used in active code.

3 years agoFix T57620: display custom normals in Edit Mode.
Alexander Gavrilov [Tue, 4 Dec 2018 16:52:30 +0000 (19:52 +0300)]
Fix T57620: display custom normals in Edit Mode.

Since it seems that CD_ORIGINDEX is not available for loops,
the only choice is to simply use the loop normals already
computed by depsgraph after evaluating modifiers.

This revealed a bug where the Auto Smooth settings would be lost
from the mesh after complex modifiers, or after edit mesh to mesh
conversion, so restoring them is needed to get correct results.

3 years agoFix T58609 Subdivision Surface modifier, "Optimal Display" not working
Clément Foucault [Tue, 4 Dec 2018 16:52:16 +0000 (17:52 +0100)]
Fix T58609 Subdivision Surface modifier, "Optimal Display" not working

I tried to make it progressive using the wireframe slide but it did not
work well.

So taking the most straight forward way.

3 years agoWireframe: Optimization: Only draw triangles that have edges
Clément Foucault [Tue, 4 Dec 2018 14:39:30 +0000 (15:39 +0100)]
Wireframe: Optimization: Only draw triangles that have edges

This only happens after a certain wireframe threshold.

We sort triangles into 2 bins (start and end of the buffer) based on a
threshold and just draw the first bin if the wireframe slider is low enough.

This optimization is disabled for deformed meshes when playback is active.
This optimization is only implemented for meshes object for now.

This should help resolve (to some extent) T58188.

3 years agoWireframe: Optimization: Only draw triangles that have edges
Clément Foucault [Tue, 4 Dec 2018 00:30:07 +0000 (01:30 +0100)]
Wireframe: Optimization: Only draw triangles that have edges

This only happens after a certain threshold.

We sort triangles into 2 bins (start and end of the buffer) based on a
threshold and just draw the start bin if the wireframe slider is low enough.

This optimization is disabled for deformed meshes.

This should help resolve (to some extent) T58188.

3 years agoWireframe: Optimization: Output degenerate triangles if no edges
Clément Foucault [Tue, 4 Dec 2018 00:16:13 +0000 (01:16 +0100)]
Wireframe: Optimization: Output degenerate triangles if no edges

3 years agoFix T58700: Modifier error msgs not showing.
Bastien Montagne [Tue, 4 Dec 2018 16:07:47 +0000 (17:07 +0100)]
Fix T58700: Modifier error msgs not showing.

We need to copy those back from evaluated modifierdata to orig one (as
part of `BKE_object_synchronize_to_original()`).

3 years agoCleanup: typo in comments.
Bastien Montagne [Tue, 4 Dec 2018 14:21:36 +0000 (15:21 +0100)]
Cleanup: typo in comments.

3 years agoFix T55774: Crash when reloading clip during prefetch
Sergey Sharybin [Tue, 4 Dec 2018 15:39:21 +0000 (16:39 +0100)]
Fix T55774: Crash when reloading clip during prefetch

Simply kill prefetch jobs when reloading. Not sure what else
we can do here..

3 years agoMerge branch 'master' into blender2.8
Brecht Van Lommel [Tue, 4 Dec 2018 15:35:16 +0000 (16:35 +0100)]
Merge branch 'master' into blender2.8

3 years agoFix T58118: Make duplicates real does nothing
Sergey Sharybin [Tue, 4 Dec 2018 15:04:10 +0000 (16:04 +0100)]
Fix T58118: Make duplicates real does nothing

The issue was caused by transflag set in geometry evaluation
never copied back top original object.

Now we have a dedicated operation which does all sort copy
back to original object, so we don't have to worry about
atomic assignments or what gets set where.

Still need to move boundbox to the same function, but it
needs some careful doublechecking first.

3 years agoBuildbot: enable support for NVIDIA Turing cards in Cycles (like GTX 20xx).
Brecht Van Lommel [Tue, 4 Dec 2018 10:49:57 +0000 (11:49 +0100)]
Buildbot: enable support for NVIDIA Turing cards in Cycles (like GTX 20xx).

We currently only build the sm_7x kernels with CUDA 10.0, older cards still
use 9.1 until rendering errors are solved for them.

3 years agoCycles: add initial CUDA 10.0 support, but only recommend use for Turing cards.
Brecht Van Lommel [Tue, 4 Dec 2018 11:34:59 +0000 (12:34 +0100)]
Cycles: add initial CUDA 10.0 support, but only recommend use for Turing cards.

There may still be rendering errors when used for older graphics cards.

3 years agoFix T58227: Subdivision Surface Type Simple messes up UVs
Sergey Sharybin [Tue, 4 Dec 2018 14:15:14 +0000 (15:15 +0100)]
Fix T58227: Subdivision Surface Type Simple messes up UVs

This seems to be a bug in OpenSubdiv. For now simply use Catmark
subdivision scheme with infinitely sharp edges.

Later on it's either gets fixed in OpenSubdiv or we do bilinear
subdivision on our side.

3 years agoRemove the Draw Curve operator from the Add menu
Philipp Oeser [Tue, 4 Dec 2018 13:42:08 +0000 (14:42 +0100)]
Remove the Draw Curve operator from the Add menu

this operator was only working in editmode and we now have a dedicated
tool for this.

Fixes T58495

thanx @billreynish for usability advice

3 years agoFix for assert failure in material preview
Sergey Sharybin [Tue, 4 Dec 2018 11:30:24 +0000 (12:30 +0100)]
Fix for assert failure in material preview

All localized datablocks are not supposed to have animation
data associated with them.

There was an easy way to reproduce assert failure: toggle
animation decorator for Viewport Display -> Color.

3 years agoFix T58117: Crash with keyframing, take two
Sergey Sharybin [Tue, 4 Dec 2018 11:11:25 +0000 (12:11 +0100)]
Fix T58117: Crash with keyframing, take two

More operators need to become aware of action possibly being gone.

3 years agoDepsgraph: execute all COPY_ON_WRITE nodes first as a separate stage.
Alexander Gavrilov [Tue, 4 Dec 2018 10:58:29 +0000 (13:58 +0300)]
Depsgraph: execute all COPY_ON_WRITE nodes first as a separate stage.

COW nodes in the graph are mostly connected via a relation type
that doesn't propagate the update flags. Unfortunately, due to
the scheduling implementation that means the relations don't
actually guarantee execution order for indirect dependencies.
Relations also don't guarantee order in case of cycles.

As mentioned in IRC, the simplest way to fix possible problems
is to execute all COW nodes as a separate execution stage. This
seems to fix crashes with Data Transfer modifier in a cycle.

Staging works by simply delaying actual scheduling of tasks for
non-COW nodes until the second run of schedule_graph.

Reviewers: sergey

Differential Revision:

3 years agoBLI_task: fix queue in work_and_wait, and support resetting.
Alexander Gavrilov [Mon, 3 Dec 2018 19:55:18 +0000 (22:55 +0300)]
BLI_task: fix queue in work_and_wait, and support resetting.

To make the pool more usable for running multiple stages of tasks,
fix local queue handling in BLI_task_pool_work_and_wait.

Specifically, after the wait loop the local queue should be empty,
or the wait part of the function contract isn't fulfilled. Instead,
check and run any tasks in queue before the wait loop.

Also, add a new function that resets the suspended state of the pool.

3 years agoFix (IRC reported) missing update for RNA Object's matrix_local property.
Bastien Montagne [Tue, 4 Dec 2018 11:04:27 +0000 (12:04 +0100)]
Fix (IRC reported) missing update for RNA Object's matrix_local property.

Reported by @zeffii, thanks!

3 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Tue, 4 Dec 2018 10:45:22 +0000 (11:45 +0100)]
Merge branch 'master' into blender2.8

3 years agoCleanup: Spelling
Sergey Sharybin [Tue, 4 Dec 2018 10:43:53 +0000 (11:43 +0100)]
Cleanup: Spelling

3 years agoFix T58117: Crash with keyframing
Sergey Sharybin [Tue, 4 Dec 2018 10:28:23 +0000 (11:28 +0100)]
Fix T58117: Crash with keyframing

3 years agoFix T58220: EdgeSplit at Split Angle: 0 doesn't split flat faces.
Bastien Montagne [Tue, 4 Dec 2018 09:48:48 +0000 (10:48 +0100)]
Fix T58220: EdgeSplit at Split Angle: 0 doesn't split flat faces.

Add special handling for both edge cases (:p):
* 180° is same as no splitting by angle;
* 0° is same as split on all edges unconditionnaly.

In both cases we can also avoid computing poly normals.

3 years agoFix T58481: "Make duplicates real" operator settings crashes
Sergey Sharybin [Tue, 4 Dec 2018 09:18:21 +0000 (10:18 +0100)]
Fix T58481: "Make duplicates real" operator settings crashes

3 years agoFix error reloading scripts
Campbell Barton [Tue, 4 Dec 2018 06:54:31 +0000 (17:54 +1100)]
Fix error reloading scripts

Operator.is_registered needs to use RNAMeta class.

3 years agoCleanup: remove unused brush set by index
Campbell Barton [Tue, 4 Dec 2018 06:33:47 +0000 (17:33 +1100)]
Cleanup: remove unused brush set by index

3 years agoShow tool title for favorites menu
Philipp Oeser [Tue, 4 Dec 2018 05:14:21 +0000 (16:14 +1100)]
Show tool title for favorites menu

3 years agoFix T57076: Remove property from favourites menu fails
Campbell Barton [Tue, 4 Dec 2018 04:11:26 +0000 (15:11 +1100)]
Fix T57076: Remove property from favourites menu fails

3 years agoEdit last commit
Campbell Barton [Tue, 4 Dec 2018 03:29:23 +0000 (14:29 +1100)]
Edit last commit

Split out ensure-tool check into its own function.

3 years agoFix T58256: error message w/ missing Select Box tool
Campbell Barton [Tue, 4 Dec 2018 02:34:11 +0000 (13:34 +1100)]
Fix T58256: error message w/ missing Select Box tool

Support space modes not having tools.

3 years agoFix T58670: Spin tool crashes w/o gizmo overlay
Campbell Barton [Tue, 4 Dec 2018 02:00:10 +0000 (13:00 +1100)]
Fix T58670: Spin tool crashes w/o gizmo overlay

3 years agoCleanup: unused args
Campbell Barton [Mon, 3 Dec 2018 23:39:03 +0000 (10:39 +1100)]
Cleanup: unused args

3 years agoFix T58474: Gizmo Operator template fails on rerun
Campbell Barton [Mon, 3 Dec 2018 23:15:02 +0000 (10:15 +1100)]
Fix T58474: Gizmo Operator template fails on rerun

3 years agoGP: Draw Mode: Add Arc Primitive
Charlie Jolly [Mon, 3 Dec 2018 14:55:57 +0000 (14:55 +0000)]
GP: Draw Mode: Add Arc Primitive

This adds an elliptical arc primitive.
Press CKEY for toggling closed/open arc.
Press FKEY key for flipping arc.

Additional changes to gpencil primitives.
Increases default edges of circle to 64.
Keymap changes to allow primitives to be drawn with Shift or Alt key.
Allow Plus/Minus key to adjust number of edges.

Missing: Toolbar icon

Differential Revision:

3 years agoFix T58636: repeat image in UV editor not working.
Brecht Van Lommel [Mon, 3 Dec 2018 19:06:10 +0000 (20:06 +0100)]
Fix T58636: repeat image in UV editor not working.

A little too much code got removed in fb24813.

3 years agoFix T58635: 2.8 - "3D Markers to Mesh" error.
Bastien Montagne [Mon, 3 Dec 2018 19:06:35 +0000 (20:06 +0100)]
Fix T58635: 2.8 - "3D Markers to Mesh" error.

3 years agoDepsgraph: immediately free object's derived caches in the COW step.
Alexander Gavrilov [Mon, 3 Dec 2018 17:48:36 +0000 (20:48 +0300)]
Depsgraph: immediately free object's derived caches in the COW step.

After update of the mesh some of that data is so broken that using
it would crash. To reduce the risk of crashes in case of dependency
cycles, clean it up immediately.

3 years agoFix T58448: Cloth presets fails to load due to missing attribute structural_stiffness.
Bastien Montagne [Mon, 3 Dec 2018 16:45:17 +0000 (17:45 +0100)]
Fix T58448: Cloth presets fails to load due to missing attribute structural_stiffness.

Presets were not updated when parameter were changed in rBe3d31b8dfbdc.

Note that will also check on generating more resistent py code for that
kind of presets, since that will also affect any custom preset made by

3 years agoFix T58280: Blender 2.8 hangs when the LookDev mode is enabled
Clément Foucault [Mon, 3 Dec 2018 16:19:04 +0000 (17:19 +0100)]
Fix T58280: Blender 2.8 hangs when the LookDev mode is enabled

The hang was due to the nodes being "evaluated" for every incomming link.

Solution: only evaluate once per nodetree.

Also merge the tagging of SSS and SSR into one traversal only.

3 years agoDRW: Make default debug mode a bit more silent
Clément Foucault [Mon, 3 Dec 2018 14:24:21 +0000 (15:24 +0100)]
DRW: Make default debug mode a bit more silent

Use --debug-gpu for debugging non found uniforms

3 years agoWorkbench: Encode Roughness and metallic into 8bits
Clément Foucault [Mon, 3 Dec 2018 13:51:30 +0000 (14:51 +0100)]
Workbench: Encode Roughness and metallic into 8bits

This reduces the bandwidth + vram usage of workbench even further.

3 years agoWorkbench: Make object ID pass optionnal
Clément Foucault [Mon, 3 Dec 2018 01:42:23 +0000 (02:42 +0100)]
Workbench: Make object ID pass optionnal

We separate the background and foreground shading passes to be able to make
the object id pass optionnal if we don't need it.

This saves a bit more memory. Also not clearing all rendertargets saves
some GPU time too.

3 years agoDRW: Make fullscreen quad in the background
Clément Foucault [Mon, 3 Dec 2018 01:36:13 +0000 (02:36 +0100)]
DRW: Make fullscreen quad in the background

This is to be able to only draw the background pixels by using a depth
test EQUAL.

3 years agoWorkbench: Cleanup: Remove Spherical harmonic evaluation
Clément Foucault [Mon, 3 Dec 2018 01:33:27 +0000 (02:33 +0100)]
Workbench: Cleanup: Remove Spherical harmonic evaluation

It is not used anymore

3 years agoView3D: Grid: Don't make the Zaxis produce any fragment is not needed
Clément Foucault [Sun, 2 Dec 2018 23:38:29 +0000 (00:38 +0100)]
View3D: Grid: Don't make the Zaxis produce any fragment is not needed

This was a bug that was making the grid drawing even more slower than it

3 years agoWorkbench: Reduce VRAM usage depending on mode
Clément Foucault [Sun, 2 Dec 2018 23:36:54 +0000 (00:36 +0100)]
Workbench: Reduce VRAM usage depending on mode

We exploit the fact that we are using the metallic workflow for material
and pass the metallic parameter instead of the specular color.

Pack the front facing bit in the color buffer only for matcap display.

Change buffer formats to use less bytes as possible.

Also don't request buffers that we won't use.

Saved 40MB on 2K screen on StudioLight + Shadows + Specular Lighting.

Includes several cleanups.

3 years agoSubdiv: Set edge render flags according to Optimal Display
Sergey Sharybin [Mon, 3 Dec 2018 15:59:11 +0000 (16:59 +0100)]
Subdiv: Set edge render flags according to Optimal Display

This is a part of T58609, but work is still needed to properly
support this flag in the draw manager.

3 years agoDepsgraph: completely move customdata_mask to the ID node.
Alexander Gavrilov [Mon, 3 Dec 2018 15:09:45 +0000 (18:09 +0300)]
Depsgraph: completely move customdata_mask to the ID node.

Move all mask-related fields from Object and OperationDepsNode
to Object_Runtime and IDDepsNode. Auto-apply DEG_TAG_GEOMETRY
if the mask changes after DEG rebuild. Update DEG API and all
code that uses it.

This fixes "source mesh data is not ready" errors from Data
Transfer modifier when parameters are changed in the UI after
the recent mesh_get_eval_final fix.

Reviewers: sergey

Differential Revision:

3 years agoT58338 Edit Mode rotation doesn't work if object is far away from world origin
Antonioya [Mon, 3 Dec 2018 15:26:31 +0000 (16:26 +0100)]
T58338 Edit Mode rotation doesn't work if object is far away from world origin

The fix code was done by Brecht Van Lommel, I only tested that the solution works.

3 years agoFix T57858: Add validation callback to CustomData layers.
Bastien Montagne [Mon, 3 Dec 2018 15:19:08 +0000 (16:19 +0100)]
Fix T57858: Add validation callback to CustomData layers.

Our mesh validation was only checking cd layout so far, not their actual
data. While this might only be needed for a few types, this is a
required addition for things like imported UVs, else we have no way to
avoid nasty things like NANs & co.

Note that more layer types may need that callback, time will say. For
now added it to some obvious missing cases...

3 years agoCleanup: Use BLI's is_finite_v helpers instead of manualy checking each item.
Bastien Montagne [Mon, 3 Dec 2018 13:42:22 +0000 (14:42 +0100)]
Cleanup: Use BLI's is_finite_v helpers instead of manualy checking each item.

3 years agoDepsgraph: Add missing cache file handling in build_id()
Sergey Sharybin [Mon, 3 Dec 2018 15:05:17 +0000 (16:05 +0100)]
Depsgraph: Add missing cache file handling in build_id()

3 years agoFix T58600: update OSL scripts to work with OSL 1.10.x.
Shane Ambler [Mon, 3 Dec 2018 11:16:30 +0000 (12:16 +0100)]
Fix T58600: update OSL scripts to work with OSL 1.10.x.

3 years agoData Transfer Modifier: fix mesh_get_eval_final usage.
Alexander Gavrilov [Mon, 3 Dec 2018 13:56:11 +0000 (16:56 +0300)]
Data Transfer Modifier: fix mesh_get_eval_final usage.

It can't be used during modifier evaluation, and rna
enum code should access the evaluated objects.

3 years agoDepsgraph: assert that mesh_get_eval_final/deform aren't used in eval.
Alexander Gavrilov [Mon, 3 Dec 2018 12:22:19 +0000 (15:22 +0300)]
Depsgraph: assert that mesh_get_eval_final/deform aren't used in eval.

Using those functions during multithreaded evaluation is a sure
way to have a race condition and crash.

3 years agoFix T58258: Select Objects in Collection not working
Philipp Oeser [Mon, 3 Dec 2018 11:55:12 +0000 (12:55 +0100)]
Fix T58258: Select Objects in Collection not working

Maniphest Tasks: T58258

Differential Revision: