Commit Graph

52002 Commits

Author SHA1 Message Date
Sergey Sharybin 86546ca42d Fixed more threading issues with metaballs
This time issue was caused by static variables used in
BKE_scene_base_iter_next function.

Change is not so much ultimate actually, but didn't
find more clear solution for now. So the changes are:

- Wrap almost all the static variables into own context-
  like structure, which is owned by the callee function
  and getting passed to the iteration function.

- Recursion detection wasn't possible with such approach,
  so recursion detection still uses static in_next_object
  variable, but which is now stored in thread local
  storage (TLS, or thread variable if this names are more
  clear for you).

This makes code thread-safe, but for sure final solution
shall be completely different. Ideally, dependency graph
shall be possible to answer on question "which object is
a motherball for this metaball". This will avoid iterating
via all the bases, objects and duplis just to get needed
motherball.

Further, metaball evaluation ideally will use the same
kind of depsgraph filtering, which will get result for
question like "which objects belongs to this group of
metaballs".

But this ideal things are to be solved in Joshua's and
mind GSoC projects.

Tested on linux (gcc and clang) and windows (msvc2008),
hopefully no compilation error will happen.

Thanks to Brecht for reviewing the change and getting
feedback for other possible ways we've dicussed!
2013-07-09 08:23:01 +00:00
Campbell Barton 139754894b fix [#36039] Texture paint bug with face selection on subdivided object
original patch by Antony Riakiotakis, made some edits to only check origindex when needed.
2013-07-09 08:17:14 +00:00
Campbell Barton fba8e8861c fix for error in vertex_group_vert_select_unlocked_poll, check for non existing group wasn't right. 2013-07-09 07:50:16 +00:00
Campbell Barton 34b301f0a4 fix error where if you tried to bridge an odd number of loops after bridging pairs, there was no way to change the options.
eventually I think the operator api should support this but for now return finished.
2013-07-09 06:34:54 +00:00
Campbell Barton d4ff53b760 fix [#36066] crash when Tab out text object
the way Curve.len is used at the moment is really stupid, calculate string size on save for now, but should really store the length in bytes and total number of characters.
2013-07-09 06:21:45 +00:00
Campbell Barton 750b30c7dd fix [#36008] Can't set values higher than 1.0 in HSV colour picker (But can in RGB) - also some strange behavior 2013-07-09 04:00:56 +00:00
Mitchell Stokes f6502a67f2 BGE cleanup: Getting rid of an unused variable warning in GPG_Canvas::Init(). 2013-07-09 01:42:13 +00:00
Mitchell Stokes b73793f636 BGE cleanup: removing some unused code from GPC_Canvas. 2013-07-09 01:34:23 +00:00
Mitchell Stokes 60812e0260 BGE cleanup: Removing the GamePlayer/xembed folder and associated build options. This code was very old and not used. For example web player code, look at Burster. 2013-07-09 01:24:51 +00:00
Mitchell Stokes a6d26cb665 BGE cleanup: GPC_System was an empty class, so I'm dropping it and having GPG_System inherit directly from KX_ISystem. 2013-07-09 01:18:48 +00:00
Campbell Barton bd5cb6fb3b fix for own error in normal-recalc r58077, initial face flipping wasn't checking against face-island center. 2013-07-09 01:18:15 +00:00
Mitchell Stokes 7b8453b164 BGE cleanup: removing various unused code and files from GamePlayer/common. 2013-07-09 01:14:52 +00:00
Thomas Dinges 70caadd837 * Fix GLSL shader for Light Path node after ray depth addition. 2013-07-09 01:05:04 +00:00
Mitchell Stokes 5b3106b89d BGE cleanup: removing unused banner code from GPC_Canvas. 2013-07-09 01:04:49 +00:00
Mitchell Stokes abdb983a46 BGE cleanup: actually remove KX_PhysicsPropertiesobsolete.h from the CMakeLists.txt instead of just commenting it out. 2013-07-09 01:01:25 +00:00
Mitchell Stokes 5bcc621fbf BGE cleanup: removing an unused KX_PhysicsPropertiesobsolute.h file. 2013-07-09 00:59:57 +00:00
Thomas Dinges 0b4244d1df Merged revision(s) 58059-58092 from trunk/blender into soc-2013-dingto. 2013-07-09 00:58:25 +00:00
Thomas Dinges c4fa047894 Cycles / Ray Depth:
* Added a Ray Depth output to the Light Path node, which returns the current ray bounce (0, 1, 2, 3...)
* This can be used to use different shaders for direct and indirect lighting and artificial effects.

Examples:
* http://www.pasteall.org/pic/show.php?id=55158 Here we use the output to apply a different shader to the third bounce. As in this example, you can use Math Nodes (Greater Than / Less Than) if you want to use values outside of the 0/1 range.

* http://www.pasteall.org/pic/show.php?id=55159 Here we restrict the maximum bounce on a per shader basis for the left sphere. This way it looks like we would only have 1 max bounce set in the scene "Light paths" panel. 
This can be used to e.g. improve performance for objects far from the camera, which do not need full GI. 

Technical notes:
* Implemented for both integrators and SVM/OSL.
* This is done by passing state.bounce to the shader_setup_from_* functions.
* Note: We don't pass state.bounce to kernel_shader_evaluate() and therefore shader_setup_from_displacement() method doesn't set the value, this is outside the path trace loop. Maybe a ToDo?
2013-07-09 00:18:13 +00:00
Campbell Barton 14ab39c5e0 minor improvements
- calc normals only check flag when needed.
- keymap, dont get name unless its needed.
- keymap, avoid property lookup.
- idprop debug print, include pointer, helpful for troubleshooting.
2013-07-09 00:13:17 +00:00
Campbell Barton 6c0d97fbcf fix [#35806] Unable to check "Correct UVs" option in "Loop Cut and Slide" (Keymap Editor) 2013-07-09 00:08:18 +00:00
Brecht Van Lommel a2553444fa Fix #35969: blender internal and cycles not updating mesh while in edit mode.
Patch for blender internal made by Campbell.
2013-07-08 22:41:14 +00:00
Brecht Van Lommel 8ab1fadf3d Fix #36063: cycles 3D viewport was incorrectly influenced by blender internal
material halo settings.
2013-07-08 22:41:12 +00:00
Brecht Van Lommel 751062fc5f Fix #35979, #35937, #35739: undo crashes and missing updates with blender
internal viewport rendering. Lots of tweaks here, mainly:

* Stop 3D viewport render and free database before undo.
* Accumulate update flags rather than replace them each time it rerenders, to
  avoid previous updates getting lost.
* Don't check against Render struct view parameters for changes, those are set
  in the job thread which might not run before the next update call.
2013-07-08 22:26:10 +00:00
Brecht Van Lommel 63042da52a Fix #36059: region overlap did not show scopes overlapping in the image editor.
It's only enabled for some particular regions, this one makes sense to show.
2013-07-08 18:27:32 +00:00
Brecht Van Lommel 3ce280e825 Fix #35960, #36044: blender internal viewport rendering crash while editing data.
Now the viewport rendering thread will lock the main thread while it is exporting
objects to render data. This is not ideal if you have big scenes that might block
the UI, but Cycles does the same, and it's fairly quick because the same evaluated
mesh can be used as for viewport drawing. It's the only way to get things stable
until the thread safe dependency graph is here.

This adds a mechanism to the job system for jobs to lock the main thread, using a
new 'ticket mutex lock' which is a mutex lock that gives priority to the first
thread that tries to lock the mutex.

Still to solve: undo/redo crashes.
2013-07-08 17:56:51 +00:00
Antonis Ryakiotakis 861f9e10f7 Attempt to fix #35057, disable threading if diameter of the brush
becomes too small. Typically this would happen if the number of buckets
is clipped to the maximum value. This avoids thread overhead.

A better fix might be to do bucket-brush intersection on main thread and
dispatch threads to process bucket hits as they become available. This
way only one thread at most would end up being used in such cases
anyway. A better task scheduler is needed for that though, leaving for
after GSOC.
2013-07-08 15:35:53 +00:00
Sergey Sharybin 0bf3e7c5c6 Workaround for crash caused by threaded dupligorup update
Some objects from scene could have dupligroup with objects
which are not in the scene. This case wasn't checked by
workaround for threaded display object free routines.

We really need to have threading issues with display
objects solved.
2013-07-08 13:56:34 +00:00
Campbell Barton 27734f5bec fix/improve normal calculation, noticed when checking on the previous bugfix.
- normals depended on the meshes rotation, so you could rotate Suzzane and in some cases one of the eye normals would be flipped.
- normals depended on the meshes placement in relation to the meshes center, now find the outer most face by each face-island center.
2013-07-08 13:30:11 +00:00
Howard Trickey 0a006cce9c Fix bevel bugs 34445 and 35109, copying over edge data.
The bugs were about not respecting edge smoothness and
not respecting edge crease.  This change copies the
edge attributes from a beveled edge to the two outside
edges of the bevel.
2013-07-08 13:02:21 +00:00
Lukas Toenne d75e0f320b Fix #36024. This part fixes user counting for node editor trees. The user count previously would only work correctly for node trees which are part of material, scene, etc. or linked by group nodes. Any
custom pynodes tree edited directly as library data would get a 0 user count on reload and subsequently not be saved. Now the node space follows the same pattern as the image space: the node tree(s) user
count gets incremented on file load and opening in the editor ensures a real user. This leads to 1 "unreal" user for the editor (dropped on reload), but seems to be the only viable solution atm.
2013-07-08 11:38:11 +00:00
Lukas Toenne fa7e690a91 Partial fix for #36024, don't always reset the node editor tree pointer if the type is undefined. This can happen if the tree type is defined by addon or script, in which case the tree type would be unknown the first time the context is checked, but registered right afterward. Also unknown tree types are handled fine, they just display dummy nodes in red warning color. 2013-07-08 11:38:09 +00:00
Sergey Sharybin 8097e9d235 Merging r57989 through r58072 from trunk into soc-2013-depsgraph_mt 2013-07-08 11:29:08 +00:00
Campbell Barton 61bbefe40d remove unused normal-recalc flags. 2013-07-08 08:56:46 +00:00
Campbell Barton 335fd7388f move normal recalculation into its own source file. 2013-07-08 08:50:04 +00:00
Sergey Sharybin 96d78e3de9 Fix #36042: Subdividing a cyclic spline shifts start/end points
Issue goes back to 2.4x days at least (but very much likely the
issue is even older). It's caused by subdivision code was starting
to iterate points from previous one, which shifted all the points
by one.

Reshuffled code so now iteration starts from first spline point.

Thanks to Campbell for review and tests! :)
2013-07-08 08:02:37 +00:00
Campbell Barton 8a388a7bef fix [#36043] Missing Tooltip for Excluded Paths field of Auto Run Python Scripts in User Preferences -> File
also select more/less were flipped for mesh menu compared to everywhere else.
2013-07-08 07:40:32 +00:00
Campbell Barton 37d1984c53 edit on own commit r57801, don't check the size of dynamic arrays 2013-07-08 01:28:43 +00:00
Campbell Barton 2c8087aa2a fix [#36047] Recalculate normals produces faulty normals on certain simple meshes
The mesh in the report had 3 faces-user-edges, resolve the problem by not walking over these edges.
also don't recurse anymore (avoids realloc's).
2013-07-08 00:51:30 +00:00
Tamito Kajiyama 22f26b2ce4 Fix for Bug #35970: Freestyle + Particles = Crash.
The crash was caused by a reference of freed memory in add_halo_flare() that relied
on the global variable R to retrieve a list of objects.  The value of this variable
is invalidated by a nested execution of the Blender Internal renderer for Freestyle
stroke rendering, leading to the documented memory reference issue.
2013-07-07 17:24:30 +00:00
Tamito Kajiyama 15a2287a8e Fix for incorrect clipping of Freestyle strokes when the viewport preview is used. 2013-07-07 15:29:00 +00:00
Thomas Dinges 0b5b82bb53 Merged revision(s) 57979-58058 from trunk/blender into soc-2013-dingto 2013-07-07 14:23:20 +00:00
Joshua Leung bf6a74e3fc Bugfix [35841] WM_OT_context_[toggle/cycle/etc.] operators dont show shortcut
keys in menus (or tooltips) for properties they are used to toggle/cycle through

Some properties can be toggled using hotkeys via WM_OT_context_* operators, but
these hotkeys aren't really shown anywhere obvious like other hotkeys (i.e.
they're not shown in tooltips or menus). Although it is possible to look these
up in the userprefs/keymaps editor, it is quite tricky doing so, and most users
would just assume that since no shortcut is displayed, there simply isn't one at
all.

This commit introduces a slightly hacky fix which basically amounts to checking
if a property can be set by any of the few operators which are used for this
purpose. In order to keep this from being too sluggish, I've currently limited
this to only working on Editor (e.g. "Show Seconds" in Anim Editors) and
ToolSettings (e.g. "Use Proportional Edit") properties.

There are still some corner cases that would be nice to solve too (i.e. the
Pivot Type enum menu/dropdown should really be able to show the hotkeys which
have been assigned for each of those items, since they're by-and-large quite
hidden and obscure), though being able to show some of these is perhaps better
than not showing any!
2013-07-07 12:53:15 +00:00
Sv. Lockal 862f695d1c Fix #36038: Auto Keying warning message is clamped in Japanese 2013-07-06 20:42:24 +00:00
Campbell Barton 96953c748f fix [#36022] inconsistent naming for new images 2013-07-06 08:10:41 +00:00
Campbell Barton ae754c6384 fix for crash deleting the world when viewport preview is used. 2013-07-06 07:34:38 +00:00
Campbell Barton 152e1bed45 fix [#36027] Close gap shifts clip leaves keyframes behind 2013-07-06 07:21:08 +00:00
Campbell Barton 0a1bcc78e0 fix for writing past array end with loop filling. 2013-07-06 02:20:39 +00:00
Campbell Barton e43f25757b only make dynamic paint tag normals as dirty if it moves vertices. 2013-07-06 01:42:45 +00:00
Gaia Clary fe865b8429 Changed default setting for transfer weights to Group:All 2013-07-05 09:34:17 +00:00
Campbell Barton 0d18f1829a fix [#35989] bridge tool flip mash
open edge loops were calculating flipping incorrectly.
2013-07-05 08:45:42 +00:00