17 #ifndef __UTIL_PROFILING_H__
18 #define __UTIL_PROFILING_H__
95 void reset(
int num_shaders,
int num_objects);
135 previous_event = state->
event;
136 state->
event = event;
141 state->
event = event;
148 assert(shader < state->shader_hits.size());
157 assert(object < state->object_hits.size());
164 state->
event = previous_event;
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)
void reset(int num_shaders, int num_objects)
bool get_object(int object, uint64_t &samples, uint64_t &hits)
vector< uint64_t > shader_samples
ProfilingHelper(ProfilingState *state, ProfilingEvent event)
void set_shader(int shader)
void set_event(ProfilingEvent event)
void set_object(int object)
#define CCL_NAMESPACE_END
void KERNEL_FUNCTION_FULL_NAME() shader(KernelGlobals *kg, uint4 *input, float4 *output, int type, int filter, int i, int offset, int sample)
unsigned __int64 uint64_t
vector< uint64_t > object_hits
vector< uint64_t > shader_hits
@ PROFILING_PATH_INTEGRATE
@ PROFILING_SURFACE_BOUNCE
@ PROFILING_DENOISING_COMBINE_HALVES
@ PROFILING_INTERSECT_LOCAL
@ PROFILING_CLOSURE_SAMPLE
@ PROFILING_INTERSECT_VOLUME_ALL
@ PROFILING_INTERSECT_SHADOW_ALL
@ PROFILING_CLOSURE_VOLUME_SAMPLE
@ PROFILING_DENOISING_RECONSTRUCT
@ PROFILING_DENOISING_GET_FEATURE
@ PROFILING_DENOISING_DIVIDE_SHADOW
@ PROFILING_CONNECT_LIGHT
@ PROFILING_SCENE_INTERSECT
@ PROFILING_CLOSURE_VOLUME_EVAL
@ PROFILING_INTERSECT_VOLUME
@ PROFILING_DENOISING_DETECT_OUTLIERS
@ PROFILING_DENOISING_CONSTRUCT_TRANSFORM
@ PROFILING_INDIRECT_EMISSION
@ PROFILING_DENOISING_NON_LOCAL_MEANS
CCL_NAMESPACE_BEGIN typedef std::mutex thread_mutex