tornavis/source/blender/blenkernel
Jacques Lucke 81ce3801bf Animation: Refactor storage usage during fcurve modifier evaluation
Previously, when a fcurve modifier used storage,
many heap allocations were done.
This caused major slowdowns as described in T63656.

Furthermore, the storage usage was a special case only
used by the Cycles modifier. This refactor makes
storage usage the "normal" case.
That reduces the overall complexity.

The storage is stack allocated now.

The framerate on the provided test scene went up from ~5 fps to ~16 fps.

Reviewers: angavrilov

Differential Revision: https://developer.blender.org/D4701
2019-04-17 18:09:33 +02:00
..
intern Animation: Refactor storage usage during fcurve modifier evaluation 2019-04-17 18:09:33 +02:00
BKE_DerivedMesh.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_action.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_addon.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_anim.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_animsys.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_appdir.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_armature.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_autoexec.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_blender.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_blender_copybuffer.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_blender_undo.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_blender_user_menu.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_blender_version.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_blendfile.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_boids.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_bpath.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_brush.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_bvhutils.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_cachefile.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_camera.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_ccg.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_cdderivedmesh.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_cloth.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_collection.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_collision.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_colorband.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_colortools.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_constraint.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_context.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_crazyspace.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_curve.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_customdata.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_customdata_file.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_data_transfer.h ClangFormat: format '#if 0' code in source/ 2019-04-17 08:24:14 +02:00
BKE_deform.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_displist.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_dynamicpaint.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_editlattice.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_editmesh.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_editmesh_bvh.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_editmesh_cache.h doxygen: add newline after \file 2019-02-18 08:22:12 +11:00
BKE_editmesh_tangent.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_effect.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_fcurve.h Animation: Refactor storage usage during fcurve modifier evaluation 2019-04-17 18:09:33 +02:00
BKE_fluidsim.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_font.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_freestyle.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_global.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_gpencil.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_gpencil_modifier.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_icons.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_idcode.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_idprop.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_image.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_ipo.h doxygen: add newline after \file 2019-02-18 08:22:12 +11:00
BKE_key.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_keyconfig.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_lattice.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_layer.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_library.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_library_idmap.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_library_override.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_library_query.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_library_remap.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_light.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_lightprobe.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_linestyle.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_main.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_mask.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_material.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_mball.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_mball_tessellate.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_mesh.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_mesh_iterators.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_mesh_mapping.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_mesh_remap.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_mesh_runtime.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_mesh_tangent.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_modifier.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_movieclip.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_multires.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_nla.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_node.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_object.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_object_deform.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_object_facemap.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_ocean.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_outliner_treehash.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_packedFile.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_paint.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_particle.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_pbvh.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_pointcache.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_report.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_rigidbody.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_scene.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_screen.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_sequencer.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_shader_fx.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_shrinkwrap.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_smoke.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_softbody.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_sound.h ClangFormat: format '#if 0' code in source/ 2019-04-17 08:24:14 +02:00
BKE_speaker.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_studiolight.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_subdiv.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_subdiv_ccg.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_subdiv_eval.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_subdiv_foreach.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_subdiv_mesh.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_subsurf.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_suggestions.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_text.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_texture.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_tracking.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_undo_system.h ClangFormat: format '#if 0' code in source/ 2019-04-17 08:24:14 +02:00
BKE_unit.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_workspace.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_world.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_writeavi.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BKE_writeffmpeg.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
CMakeLists.txt ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
nla_private.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
particle_private.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
tracking_private.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00