radeon_memory_visualizer icon indicating copy to clipboard operation
radeon_memory_visualizer copied to clipboard

Infinite loop if trace is too short in time

Open Axel-Reactor opened this issue 1 year ago • 2 comments

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)

Axel-Reactor avatar Oct 24 '24 04:10 Axel-Reactor

Hi Axel-Reactor,

Thank you for spotting this. RMV wasn't really designed for very short traces. However, this is a bug and should be fixed. We'll aim to get a fix into a future release and will update this issue when the fix is public.

Thanks for you interest in RMV, Tony.

ahosier avatar Jun 16 '25 14:06 ahosier

Hi Axel-Reactor,

With respect to this issue, if you could provide an rmv trace file showing this issue, it would be extremely useful.

Thanks, Tony.

ahosier avatar Jul 10 '25 14:07 ahosier