Commit: ad051d46aae82b2d53938938e435ac8867cecdd0 Author: Jacques Lucke Date: Thu Jun 20 15:20:55 2019 +0200 Branches: functions https://developer.blender.org/rBad051d46aae82b2d53938938e435ac8867cecdd0
don't inline simulation functions to make profiles more useful =================================================================== M source/blender/simulations/bparticles/simulate.cpp =================================================================== diff --git a/source/blender/simulations/bparticles/simulate.cpp b/source/blender/simulations/bparticles/simulate.cpp index 9221c3fa6bf..83ff83cf6c9 100644 --- a/source/blender/simulations/bparticles/simulate.cpp +++ b/source/blender/simulations/bparticles/simulate.cpp @@ -20,14 +20,14 @@ static ArrayRef<uint> static_number_range_ref() /* Events **************************************************/ -static void find_next_event_per_particle(AttributeArrays attributes, - ArrayRef<uint> particle_indices, - IdealOffsets &ideal_offsets, - ArrayRef<float> durations, - float end_time, - ArrayRef<Event *> events, - ArrayRef<int> r_next_event_indices, - ArrayRef<float> r_time_factors_to_next_event) +BLI_NOINLINE static void find_next_event_per_particle(AttributeArrays attributes, + ArrayRef<uint> particle_indices, + IdealOffsets &ideal_offsets, + ArrayRef<float> durations, + float end_time, + ArrayRef<Event *> events, + ArrayRef<int> r_next_event_indices, + ArrayRef<float> r_time_factors_to_next_event) { r_next_event_indices.fill(-1); r_time_factors_to_next_event.fill(1.0f); @@ -55,10 +55,11 @@ static void find_next_event_per_particle(AttributeArrays attributes, } } -static void forward_particles_to_next_event(AttributeArrays attributes, - ArrayRef<uint> particle_indices, - IdealOffsets &ideal_offsets, - ArrayRef<float> time_factors_to_next_event) +BLI_NOINLINE static void forward_particles_to_next_event( + AttributeArrays attributes, + ArrayRef<uint> particle_indices, + IdealOffsets &ideal_offsets, + ArrayRef<float> time_factors_to_next_event) { auto positions = attributes.get_float3("Position"); auto velocities = attributes.get_float3("Velocity"); @@ -71,9 +72,10 @@ static void forward_particles_to_next_event(AttributeArrays attributes, } } -static void find_particles_per_event(ArrayRef<uint> particle_indices, - ArrayRef<int> next_event_indices, - ArrayRef<SmallVector<uint>> r_particles_per_event) +BLI_NOINLINE static void find_particles_per_event( + ArrayRef<uint> particle_indices, + ArrayRef<int> next_event_indices, + ArrayRef<SmallVector<uint>> r_particles_per_event) { for (uint i = 0; i < particle_indices.size(); i++) { int event_index = next_event_indices[i]; @@ -84,13 +86,14 @@ static void find_particles_per_event(ArrayRef<uint> particle_indices, } } -static void find_unfinished_particles(ArrayRef<uint> particle_indices, - ArrayRef<int> next_event_indices, - ArrayRef<float> time_factors_to_next_event, - ArrayRef<float> durations, - ArrayRef<uint8_t> kill_states, - SmallVector<uint> &r_unfinished_particle_indices, - SmallVector<float> &r_remaining_durations) +BLI_NOINLINE static void find_unfinished_particles( + ArrayRef<uint> particle_indices, + ArrayRef<int> next_event_indices, + ArrayRef<float> time_factors_to_next_event, + ArrayRef<float> durations, + ArrayRef<uint8_t> kill_states, + SmallVector<uint> &r_unfinished_particle_indices, + SmallVector<float> &r_remaining_durations) { for (uint i = 0; i < particle_indices.size(); i++) { @@ -105,10 +108,10 @@ static void find_unfinished_particles(ArrayRef<uint> particle_indices, } } -static void run_actions(AttributeArrays attributes, - ArrayRef<SmallVector<uint>> particles_per_event, - ArrayRef<Event *> events, - ArrayRef<Action *> action_per_event) +BLI_NOINLINE static void run_actions(AttributeArrays attributes, + ArrayRef<SmallVector<uint>> particles_per_event, + ArrayRef<Event *> events, + ArrayRef<Action *> action_per_event) { for (uint event_index = 0; event_index < events.size(); event_index++) { Action *action = action_per_event[event_index]; @@ -119,10 +122,10 @@ static void run_actions(AttributeArrays attributes, /* Evaluate Forces ***********************************************/ -static void compute_combined_forces_on_particles(AttributeArrays attributes, - ArrayRef<uint> particle_indices, - ArrayRef<Force *> forces, - ArrayRef<float3> r_force_vectors) +BLI_NOINLINE static void compute_combined_forces_on_particles(AttributeArrays attributes, + ArrayRef<uint> particle_indices, + ArrayRef<Force *> forces, + ArrayRef<float3> r_force_vectors) { BLI_assert(particle_indices.size() == r_force_vectors.size()); r_force_vectors.fill({0, 0, 0}); @@ -134,11 +137,11 @@ static void compute_combined_forces_on_particles(AttributeArrays attributes, /* Step individual particles. **********************************************/ -static void compute_ideal_attribute_offsets(AttributeArrays attributes, - ArrayRef<uint> particle_indices, - ArrayRef<float> durations, - ParticleInfluences &influences, - IdealOffsets r_offsets) +BLI_NOINLINE static void compute_ideal_attribute_offsets(AttributeArrays attributes, + ArrayRef<uint> particle_indices, + ArrayRef<float> durations, + ParticleInfluences &influences, + IdealOffsets r_offsets) { BLI_assert(particle_indices.size() == durations.size()); BLI_assert(particle_indices.size() == r_offsets.position_offsets.size()); @@ -162,13 +165,13 @@ static void compute_ideal_attribute_offsets(AttributeArrays attributes, } } -static void simulate_to_next_event(AttributeArrays attributes, - ArrayRef<uint> particle_indices, - ArrayRef<float> durations, - float end_time, - ParticleInfluences &influences, - SmallVector<uint> &r_unfinished_particle_indices, - SmallVector<float> &r_remaining_durations) +BLI_NOINLINE static void simulate_to_next_event(AttributeArrays attributes, + ArrayRef<uint> particle_indices, + ArrayRef<float> durations, + float end_time, + ParticleInfluences &influences, + SmallVector<uint> &r_unfinished_particle_indices, + SmallVector<float> &r_remaining_durations) { SmallVector<float3> position_offsets(particle_indices.size()); SmallVector<float3> velocity_offsets(particle_indices.size()); @@ -205,10 +208,10 @@ static void simulate_to_next_event(AttributeArrays attributes, r_remaining_durations); } -static void simulate_ignoring_events(AttributeArrays attributes, - ArrayRef<uint> particle_indices, - ArrayRef<float> durations, - ParticleInfluences &influences) +BLI_NOINLINE static void simulate_ignoring_events(AttributeArrays attributes, + ArrayRef<uint> particle_indices, + ArrayRef<float> durations, + ParticleInfluences &influences) { SmallVector<float3> position_offsets{particle_indices.size()}; SmallVector<float3> velocity_offsets{particle_indices.size()}; @@ -227,11 +230,11 @@ static void simulate_ignoring_events(AttributeArrays attributes, } } -static void step_individual_particles(AttributeArrays attributes, - ArrayRef<uint> particle_indices, - ArrayRef<float> durations, - float end_time, - ParticleInfluences &influences) +BLI_NOINLINE static void step_individual_particles(AttributeArrays attributes, + ArrayRef<uint> particle_indices, + ArrayRef<float> durations, + float end_time, + ParticleInfluences &influences) { SmallVector<uint> unfinished_particle_indices; SmallVector<float> remaining_durations; @@ -265,7 +268,7 @@ static void step_individual_particles(AttributeArrays attributes, /* Delete particles. **********************************************/ -sta @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs