Commit Graph

47594 Commits

Author SHA1 Message Date
Sergey Sharybin
c09034608c Fix double-free happening when having proxy with motion paths
Make it so mpath is not shared between several bones now.

Fix suggested by Joshua Leung, thanks!
2013-08-14 10:39:16 +00:00
Sergey Sharybin
5be97aba95 Recent spinlock commit made scheduling unsafe for threading
Namely, it caused nodes be adding to the pool multiple times.

Returned spin back, but use it only in cases node valency is
zero. So now valency is decreasing without any locks, then
if it's zero spin lock happens, node color (which indicates
whether node is scheduled or not) happens. Actual new task
creation happens outside of locks.

This might sound a bit complicated, but it's straightforward
code which is free from any thread synchronization latency.
2013-08-14 09:24:15 +00:00
Campbell Barton
7d67261a7b fix bug with editmesh rip, active edge could be left on the unselected side of the edge loops. 2013-08-14 09:14:33 +00:00
Campbell Barton
731672fc9b bmesh utility functions for storing an editselection after another in the list. 2013-08-14 09:13:11 +00:00
Campbell Barton
723eaa36ce fix own error in BM_mesh_calc_edge_groups() was clearning wrong dirty-index flag.
also remove unused transform defines.
2013-08-14 08:14:50 +00:00
Sergey Sharybin
932df91cbd Merging r59113 through r59129 from trunk into soc-2013-depsgraph_mt 2013-08-14 07:08:59 +00:00
Dalai Felinto
eccde9f72a BGE Dome: bugfix - Warp Mesh not working
Fix: to swap the drawing order for the warp mesh polygon
The code was drawing CW instead of CCW.

It would work in some cases where the drawing flags would allow for the
back faces to be visible.

More specifically the alternative fix were:
glDisable ( GL_CULL_FACE );
glFrontFace( GL_CW );

Bug originally reported in the small_planetarium mailing list.
This bug fix was a comissioned job by a group who prefer not to be
credited. Thanks regardless.
2013-08-14 02:59:09 +00:00
Campbell Barton
5157eea977 bmesh edge-net: refactor out face creation into its own function, replace array reallocation with alloca.
fix for error increasing the face tag count when the face might not be created.
2013-08-13 23:48:48 +00:00
Campbell Barton
5ba898d868 utility functions to reverse and wrap arrays. 2013-08-13 23:43:44 +00:00
Campbell Barton
91f04bebf0 bmo_edgenet_fill_exec was building a vertex array when it didnt need to. also simplify for loops. 2013-08-13 22:28:16 +00:00
Sergey Sharybin
463ff86592 Fix #36461: ends of curves - twist still not good
Needed correct quat for first point as well.

Maybe it's time to refactor make_minimum_twist function a bit..
2013-08-13 15:27:49 +00:00
Sergey Sharybin
b521d2ada7 Merging r59104 through r59112 from trunk into soc-2013-depsgraph_mt 2013-08-13 15:09:19 +00:00
Sergey Sharybin
135ee563e9 Fix crash happening when clearing parent in outliner modes which doesn't support this. 2013-08-13 14:46:39 +00:00
Campbell Barton
5096beb4a5 use __builtin_nanf with gcc and clang. 2013-08-13 10:40:23 +00:00
Campbell Barton
a8d1c893e8 make materials.pop() and more like pythons list.pop
- allow negative index values.
- error when invalid index value are passed in.
- remove last item if no index argument is given.

also change behavior to remove the material slot, it was only clearning by default but the list length remained the same.
2013-08-13 10:21:11 +00:00
Lukas Toenne
4d5c64372a Moved NAN_FLT define to BLI_math, this may come in useful. 2013-08-13 10:09:27 +00:00
Thomas Dinges
ace1dbf77f Merged revision(s) 59035-59107 from trunk/blender into soc-2013-dingto.
Skipping 59034 (Non-Progressive on GPU).
2013-08-13 09:15:03 +00:00
Sergey Sharybin
4dee746acb Fix compilation error, missing size_t declaration 2013-08-13 07:54:55 +00:00
Mitchell Stokes
851627f6e0 BGE: Updating the bge.logic.expandPath() documentation to better reflect its current behavior. 2013-08-13 07:48:07 +00:00
Sergey Sharybin
64bc5da4ba Merging r59083 through r59103 from trunk into soc-2013-depsgraph_mt 2013-08-13 07:37:13 +00:00
Campbell Barton
5b64b66127 add support for loading 8bit BMP images 2013-08-13 07:18:07 +00:00
Lukas Toenne
3e954e95a6 Fix #36451, Particle system crashes blender. The psys_render_restore function was accessing the psys->frand random number array, but since the particle modifier is disabled this array does not get
initialized. Added a sanity check to skip disabled particle systems in BI render. (why wasn't this done before?)
2013-08-13 06:21:39 +00:00
Campbell Barton
730b9c283e change VIEW3D_OT_camera_to_view_selected poll function so it can be called from a script (without a view3d). 2013-08-13 04:35:14 +00:00
Mitchell Stokes
d23b383af0 BGE: Adding a GPU Latency profile category to represent the CPU time spent waiting on the graphics card. 2013-08-13 03:09:58 +00:00
Campbell Barton
5a9c012d86 fix for bug in rip tool, isolated verts would remain selected after ripping. 2013-08-13 01:52:36 +00:00
Campbell Barton
49411a6e37 fix own regression, rip tool wasn't handling selection. 2013-08-13 01:00:07 +00:00
Campbell Barton
fd14c344e0 switch arg order for BM_elem_select_copy(), would like to make this constant for all bmesh functions eventually. 2013-08-13 00:35:23 +00:00
Campbell Barton
726a7d6cd4 bmesh: simplify mode check for setting the edge selection 2013-08-13 00:17:39 +00:00
Campbell Barton
880a86230f bmesh_vert_separate: remove unused return value 2013-08-12 23:49:56 +00:00
Campbell Barton
4a8d4f319f bmesh_edge_separate: avoid counting radial loops when splitting edges, we only need to check if the edge is boundary or not. will speedup edgesplit modifier a little. 2013-08-12 22:36:46 +00:00
Sv. Lockal
c2a8f43e35 Fix [#36439] Switching windows on Win7 x64 under certain outliner conditions will cause crash 2013-08-12 17:05:02 +00:00
Sergey Sharybin
6366a8c611 Fix crash happening in particle code caused by non-reentrant qsort()
Particle system code used global variable to sort hair by orig index,
which is not safe for threading at all.

Replaced this with usage of reentrant version of qsort, which is
now implemented in BLI. It was moved from recast navigation code
to BLI, so more areas could use it (if needed).
2013-08-12 14:37:23 +00:00
Sergey Sharybin
033d395bed Use atomic operations instead of spin lock for threaded update
This replaces code (pseudo-code):

  spin_lock();
  update_child_dag_nodes();
  schedule_new_nodes();
  spin_unlock();

with:

  update_child_dag_nodes_with_atomic_ops();
  schedule_new_nodes();

The reason for this is that scheduling new nodes implies
mutex lock, and having spin around it is a bad idea.

Alternatives could have been to use spinlock around
child nodes update only, but that would either imply having
either per-node spin-lock or using array to put nodes
ready for update to an array.

Didn't like an alternatives, using atomic operations makes
code much easier to follow, keeps data-flow on cpu nice.

Same atomic ops might be used in other performance-critical
areas later.

Using atomic ops implementation from jemalloc project.
2013-08-12 14:37:15 +00:00
Sergey Sharybin
3497b2241e Followup for r58992, fixing user decrement error
Some places like proxy rebuild didn't increent
custom shape user counter which lead to user
decrement errors later when freeing pose channels.

Try to keep custom object counter relevent, but
some corner cases might still be missing.
2013-08-12 13:52:13 +00:00
Sergey Sharybin
3c9c5b42cb Merging r58778 through r59080 from trunk into soc-2013-depsgraph_mt 2013-08-12 09:35:16 +00:00
Sergey Sharybin
bc5dc88bda Fix #36420: ends of curves - caps & twist not good
Forgot to calculate directions of first/last points
for NURBS and POLY splines.
2013-08-12 09:00:48 +00:00
Sergey Sharybin
98e5e544b5 Fix #36408: Setting image.colorspace_settings.name changes saved alpha
Issue was caused by reload caused by input colorspace change.

For generated images generated alpha flags weren't saved to
DNA, which lead to fallback from 32 bit depth to 24 when
doing any kind reload of generated image.

The same alpha loss happens when you save .blend file with
generated images.

Now added generated depth to DNA, so reload image and .blend
file wouldn't loss alpha.
2013-08-12 07:47:44 +00:00
Campbell Barton
68c8530be1 change to object-smooth poll function, no need to check for active object, just check we're not in editmode. 2013-08-12 06:10:29 +00:00
Brecht Van Lommel
33686720f2 Fix RNA parameter passing issue with dynamic arrays, was computing the wrong
size in some cases.
2013-08-11 15:49:27 +00:00
Campbell Barton
910d1ff266 display an error with python driver expressions when script execution is disabled. 2013-08-11 08:29:56 +00:00
Campbell Barton
98c574e41a use 'greater/less then or equal to' operators rather then adding 1. 2013-08-11 05:40:35 +00:00
Campbell Barton
a62163ada3 remove unused auto-key struct-member from uiAfterFunc, add compiler defines to cppcheck utility script. 2013-08-10 23:27:42 +00:00
Campbell Barton
76cb6829e5 edge-split now leaves split edges selected 2013-08-10 23:22:35 +00:00
Mitchell Stokes
3627541894 BGE: Fixing the memory leaks reported when the BlenderPlayer exits.
They were caused by not having a free_windowmanager_cb set and by not having registered SpaceTypes, which meant data allocated for thosse SpaceTypes could not be freed. These were solved by defining a free_windowmanager_cb for the player that just frees wmWindows, and by making sure we only allocate memory for registered SpaceTypes.
2013-08-10 21:17:46 +00:00
Daniel Stokes
d17bf45842 As requested by Mitchell Stokes, reverting r58837 as it is causing some problems with the embedded game engine's python execution. 2013-08-10 01:29:23 +00:00
Brecht Van Lommel
3fbd8abcfd OpenGL VBO's: free VBO pool before redraw, otherwise this just holds onto memory
after objects are deleted until another big object is added. There's no good reason
to do this, or to think that our pool is somehow much faster than using the OpenGL
API to allocate and free buffers.
2013-08-09 19:55:43 +00:00
Thomas Dinges
e924df98cb Merged revision(s) 58994-59032 from trunk/blender into soc-2013-dingto. 2013-08-09 17:30:21 +00:00
Lukas Toenne
2ab9cbd208 Fix #36146, Cycles SSS Shader Node - Scale Value Input Box - to sensitive. Changed the ui limit from 1,000,000 to 1,000. Not sure if such huge values are needed in some cases, but they can always be
entered explicitly, bypassing the ui limit.

NOTE: this only applies to newly added nodes. For legacy reasons the limit values are stored directly in each socket, so changing them for existing nodes would require a do_versions, seems unnecessary
for such a minor change.
2013-08-09 11:41:01 +00:00
Brecht Van Lommel
d5fae4409a Fix #36417: vertex weight mix modifier crash with texture mask and subsurf modifier
preceding it, was writing past end of array.
2013-08-08 20:35:19 +00:00
Brecht Van Lommel
9a04785243 Fix #36298 and #36359: timeline no longer did redraw during animation render.
This got broken in 58217, but before that it only worked by accident because
of a missing break statement in a switch.
2013-08-08 19:04:28 +00:00