Each dpi value stores its own set of font sizes, so while dragging the
dpi value would collect many sizes and never free.
Also change how BLF_cache_clear works,
it was freeing memory but not the OpenGL textures.
Now just free all the cache and GL textures and let drawing allocate them again as needed.
* AVX is available on Intel Sandy Bridge and newer and AMD Bulldozer and newer.
* We don't use dedicated AVX intrinsics yet, but gcc auto vectorization gives a 3% performance improvement for Caminandes. Tested on an i5-3570, Linux x64.
* No change for Windows yet, MSVC 2008 does not support AVX.
Reviewed by: brecht
Differential Revision: https://developer.blender.org/D216
Issue was caused by solidify modifier using original vertices bitfield
to store tags. This isn't thread-safe obviously. Now use bitmap to store
needed tags.
Reviewed by Campbell, thanks!
Issue was caused by some objects being in bMain and tagged
for update but not being in the DAG. This means objects
wouldn't be updated and their recalc flag remains untouched
triggering threaded for the next frame.
Solved by tweaking POST_UPDATE_HANDLER_WORKAROUND in the way
that it checks objects' recalc flags from the DAG, not from
the bMain. This will work a bit longer since DAG stored more
nodes than objects in the scene, but this code only runs in
cases when there're some objects tagged for update, which
keeps overall CPU usage on such a workaround pretty low.
Now CPU usage on 11a_comp scene from project Pampa went down
from ~15% down to ~5% (2,69 release uses ~%7).
Pointed by Thomas Dinges in IRC.
This is to try to avoid some confusion now that the separate text fields are gone.
Reviewed By: billrey, brecht
Differential Revision: https://developer.blender.org/D217
Previously this only worked for some datablocks relevant to rendering, now it
can be used to detect if any type of datablock was added or removed (but not
yet to detect if it was modified, we need many more depsgraph tags for that).
Most of the changes are some function parameter changes, the important parts
are the DAG_id_type_tag calls.
Reviewed By: sergey, brecht
Differential Revision: https://developer.blender.org/D195
Because of the issue of how simplification works, there could
be more flags in on->recalc bitfield which are ignored by object
anyway.
Would save some update calls after simplificating the scene.
It was actually rather simple to make sure depsgraph is up to date
before calling BKE_object_handle_update() in the transform code by
just moving DAG_scene_relations_update() to the beginning of the
function.
Wouldn't expect any side effects for other cases since DAG is not
used bu the code between new location of the call and old one.
Issue is caused by the evaluation flags getter called with
NULL depsgraph. It happens on direct object update from the
transform code after duplicating the curve.
Proper solution is probably to make sure depsgraph is rebuild
after duplication, but for now it's better to prevent crashes.
Issue was caused by evaluation flags getter function polluting
the DAG. Need to use dag_find_node() instead.
Still need to doublecheck exporting objects with curve deform
works properly. On the first thought it should, but might be
wrong again.