radeon_memory_visualizer
radeon_memory_visualizer copied to clipboard
Infinite loop if trace is too short in time
trafficstars
For very short traces, TimelineModel::UpdateMemoryGraph sets bucket_step to <1:
double bucket_step = duration / (double)kNumBuckets;
This then gets cast into an uint64_t and truncated to just 0 when passed to RmtDataTimelineCreateHistogram which then asserts:
RMT_ASSERT_MESSAGE(bucket_width_in_rmt_cycles > 0, "Parameter bucketWidthInCycles must be larger than 0 cycles.");
And then later CreateHistogramJob just loops forever here:
for (int32_t current_series_index = 0; current_series_index < input_parameters->timeline->series_count; ++current_series_index)