5#ifndef __UTIL_PROFILING_H__
6#define __UTIL_PROFILING_H__
66 volatile bool active =
false;
77 void reset(
int num_shaders,
int num_objects);
158 assert(shader < state->shader_hits.size());
163 assert(object < state->object_hits.size());
void reset()
clear internal cached data and reset random seed
vector< uint64_t > shader_hits
vector< uint64_t > object_hits
vector< uint64_t > event_samples
uint64_t get_event(ProfilingEvent event)
void add_state(ProfilingState *state)
vector< ProfilingState * > states
volatile bool do_stop_worker
void remove_state(ProfilingState *state)
vector< uint64_t > object_samples
bool get_shader(int shader, uint64_t &samples, uint64_t &hits)
bool get_object(int object, uint64_t &samples, uint64_t &hits)
vector< uint64_t > shader_samples
ProfilingHelper(ProfilingState *state, ProfilingEvent event)
void set_event(ProfilingEvent event)
~ProfilingWithShaderHelper()
void set_shader(int object, int shader)
ProfilingWithShaderHelper(ProfilingState *state, ProfilingEvent event)
#define CCL_NAMESPACE_END
unsigned __int64 uint64_t
vector< uint64_t > object_hits
vector< uint64_t > shader_hits
CCL_NAMESPACE_BEGIN typedef std::mutex thread_mutex
@ PROFILING_SHADE_SURFACE_SETUP
@ PROFILING_SHADE_SHADOW_SURFACE
@ PROFILING_SHADE_VOLUME_INTEGRATE
@ PROFILING_SHADE_SHADOW_VOLUME
@ PROFILING_INTERSECT_SUBSURFACE
@ PROFILING_INTERSECT_SHADOW
@ PROFILING_INTERSECT_CLOSEST
@ PROFILING_INTERSECT_DEDICATED_LIGHT
@ PROFILING_SHADE_VOLUME_SETUP
@ PROFILING_SHADE_SURFACE_EVAL
@ PROFILING_SHADE_SURFACE_INDIRECT_LIGHT
@ PROFILING_SHADE_SURFACE_AO
@ PROFILING_SHADE_SURFACE_DIRECT_LIGHT
@ PROFILING_SHADE_LIGHT_SETUP
@ PROFILING_SHADE_SHADOW_SETUP
@ PROFILING_SHADE_DEDICATED_LIGHT
@ PROFILING_INTERSECT_VOLUME_STACK
@ PROFILING_SHADE_VOLUME_DIRECT_LIGHT
@ PROFILING_SHADE_SURFACE_PASSES
@ PROFILING_SHADE_LIGHT_EVAL
@ PROFILING_SHADE_VOLUME_INDIRECT_LIGHT