Commit Graph

109 Commits (a831237e29c650146b6870b568feddcda310ab29)

Author SHA1 Message Date
Nat Goodspeed 42b1fd2181 SL-18330: Review and tweak LLTrace::PeriodicRecording indexing
per Leviathan code review.
2023-03-02 15:00:50 -05:00
Nat Goodspeed 1bba8fd31e SL-18330: Use size_t max for LLTrace::PeriodicRecording methods.
The num_periods arguments have all been changed to size_t, but the default
argument values were still coded as S32_MAX. Change to
std::numeric_limits<size_t>::max().
2023-03-01 14:20:33 -05:00
Fawrsk 9e743c99fb Cleanup for loops in llcommon to use C++11 range based for loops 2023-01-07 00:38:12 -04:00
Nat Goodspeed 12f66fda13 DRTVWR-565: Merge branch 'origin/contribute' into DRTVWR-565 2022-12-12 13:27:57 -05:00
Nat Goodspeed 4349cb6165 DRTVWR-575: Address review comments on Xcode 14.1 type tweaks.
Introduce LLSD template constructors and assignment operators to disambiguate
construction or assignment from any integer type to Integer, likewise any
floating point type to Real. Use new narrow() function to validate
conversions.

For LLSD method parameters converted from LLSD::Integer to size_t, where the
method previously checked for a negative argument, make it now check for
size_t converted from negative: in other words, more than S32_MAX. The risk of
having a parameter forced from negative to unsigned exceeds the risk of a
valid length or index over that max.

In lltracerecording.cpp's PeriodicRecording, now that mCurPeriod and
mNumRecordedPeriods are size_t instead of S32, defend against subtracting 1
from 0.

Use narrow() to validate newly-introduced narrowing conversions.

Make llclamp() return the type of the raw input value, even if the types of
the boundary values differ.

std::ostream::tellp() no longer returns a value we can directly report as a
number. Cast to U64.
2022-11-12 18:59:21 -10:00
Nat Goodspeed 9522a0b7c1 DRTVWR-575: Fix llcommon assumptions that size_t fits in 4 bytes.
It's a little distressing how often we have historically coded S32 or U32 to
pass a length or index.

There are more such assumptions in other viewer subdirectories, but this is a
start.
2022-11-03 14:58:32 -04:00
Andrey Kleshchev fe26a9d32c SL-17868 Crash at ThreadRecorder::bringUpToDate
According to bugsplat get_thread_recorder was null
Replaced apr based LLThreadLocalPointer with thread_local
2022-07-30 02:57:30 +03:00
Ptolemy 31b0e8cef8 SL-16606: Add profiler category STATS 2022-01-14 11:50:21 -08:00
Brad Payne (Vir Linden) 730b8427b5 SL-16329 - track frame time and jitter (as average deviation frame to frame) in stats window 2021-11-19 14:43:19 -05:00
Dave Parks 8d20480c5f SL-16148 SL-16244 SL-16270 SL-16253 Remove most BlockTimers, remove LLMemTracked, introduce alignas, hook most/all reamining allocs, disable synchronous occlusion, and convert frequently accessed LLSingletons to LLSimpleton 2021-10-28 18:06:21 +00:00
Brad Payne (Vir Linden) 93bafda56b MAINT-6366 - diagnostics related to animation asset downloads 2016-06-13 09:15:42 -04:00
Richard Linden 3040b429a3 added LL_TRACE_ENABLED to allow disabling of lltrace 2014-02-06 11:27:16 -08:00
Richard Linden a712aab616 added some defensive asserts in lltrace to make cases of misuse more obvious when it crashes 2014-01-10 13:56:35 -08:00
Richard Linden e6110bb1cc fix for fast timer view having runaway time slot
wasn't stopping recording when merging into fast timer view stream
2013-11-15 22:06:41 -08:00
Richard Linden 155ca2f926 fixed timer bars not appearing in fast timer view
fixed "bouncing" stat values when a value ended in zeroes
2013-10-29 16:23:53 -07:00
Richard Linden ab43be5ddb moved some common functionality from LLTrace::BlockTimerStatHandle to BlockTimer
updates appearance utility dependency
2013-10-23 13:24:47 -07:00
Richard Linden f4283778dd fix for crash when copying trace recording 2013-10-21 14:50:53 -07:00
Richard Linden 1dfba44b3d fixed things so that trace recordings can be read from even while active 2013-10-21 14:22:21 -07:00
Richard Linden 9f097380b8 removed asserts in order to get testable builds again
added unpause() behavior and changed pause() to do nothing when already stopped
2013-10-18 09:14:53 -07:00
Richard Linden 18aedf0241 fix for assert at runtime (reading stats from recording while it was active)
fix for bad values returns from getPeriodMin and getPeriodMax on count stats when no counts recorded
fix for gcc compile time error (typename ftw)
2013-10-17 19:18:53 -07:00
Richard Linden 697d2e720b renamed TimeBlock to BlockTimerStatHandle 2013-10-15 20:24:42 -07:00
Richard Linden 17df8988fe renamed TraceType to StatType
added more MemTrackable types
optimized memory usage of LLTrace some more
2013-10-07 13:38:03 -07:00
Richard Linden f8a85003dd more memory optimizations of lltrace 2013-10-03 19:04:51 -07:00
Richard Linden 754e8752a9 added initial memory usage tracking for lltrace 2013-10-03 14:30:34 -07:00
Richard Linden 12f0f8cb72 changed over to manual naming of MemTrackable stats
changed claimMem and disclaimMem behavior to not pass through argument
added more mem tracking stats to floater_stats
2013-10-01 13:46:43 -07:00
Richard Linden af6b6db264 fixed lltrace memory tracking
image memory utilization now always non-negative
2013-09-27 21:24:27 -07:00
Richard Linden e0a443f5a6 BUILDFIX: fix for mac builds
also, fixed alignment of tick labels on stat bars
2013-09-27 11:18:39 -07:00
Richard Linden 053d97db1b better memory usage for LLTrace (tighter packing of recording arrays)
removed complicated and unnecessary fast timer gapless handoff logic (it should be gapless anyway)
improved MemTrackable API, better separation of shadow and footprint
added memory usage stats to floater_stats.xml
2013-09-25 19:12:35 -07:00
Richard Linden ab8f64a967 converted memory tracking units to KB from B
added more memory tracking to LLFolderView and kin
2013-09-24 00:05:43 -07:00
Richard Linden e25b5a359f refactored lltrace mem tracking to store allocation and deallocation sizes
at the same time and work better with threads
2013-09-23 16:07:32 -07:00
Richard Linden 0dfc08d22a BUILDFIX: more bad merge stuff
also added ability for statbar to show memtrackable info
2013-09-19 15:21:46 -07:00
Richard Linden 72f979135b merge 2013-09-18 14:20:30 -07:00
Richard Linden 9f7bfa1c37 moved unit types out of LLUnits namespace, since they are prefixed 2013-08-15 00:02:23 -07:00
Richard Linden 26581404e4 BUILDFIX: added header for numeric_limits support on gcc
added convenience types for units F32Seconds, etc.
2013-08-14 11:51:49 -07:00
Richard Linden cc31b4ae79 SH-4399 FIX: Interesting: Texture console MB Bound 0/384 and texture queue bounces once per second
SH-4346 FIX: Interesting: some integer Statistics are displayed as floating point after crossing region boundary
made llerrs/infos/etc properly variadic wrt tags
LL_INFOS("A", "B", "C") works, for example
fixed unit tests
remove llsimplestat
2013-08-12 20:05:16 -07:00
Richard Linden 8d3daa141e SH-4374 FIX Interesting: Statistics Object cache hit rate is always 100%
moved object cache sampling code so that it actually gets executed
default values for stats are NaN instead of 0 in many cases
2013-08-09 16:14:19 -07:00
Richard Linden f58eb60b1e SH-4374 WIP Interesting: Statistics Object cache hit rate is always 100% 2013-08-01 08:17:21 -07:00
Richard Linden e40065f82c BUILDFIX: #include and dependency cleanup 2013-07-19 15:03:05 -07:00
Richard Linden 29930baf23 SH-4299 WIP: Interesting: High fps shown temporarily off scale in statistics console
made unit types work with ostreams
fixed timing of scene monitor recordings to better respect requested time diff
2013-07-17 10:56:47 -07:00
Richard Linden bd078122e3 SH-4299 FIX: Interesting: High fps shown temporarily off scale in statistics console
timing of scene load recording extension now guaranteed > requested time step
removed double add of recorded data
removed spam
2013-07-15 21:00:19 -07:00
Richard Linden 11e14cd3b0 SH-4299Interesting: High fps shown temporarily off scale in statistics console
various fixes to lltrace
start() on started recording no longer resets
fixed various instances of unit forgetfullness in lltrace
recording split now has gapless timing
scene monitor now guarantees min sample time
renamed a bunch of stats
added names to debug thread view on windows
2013-07-15 11:05:57 -07:00
Richard Linden ffa7123bb5 SH-4299 FIX Interesting: High fps shown temporarily off scale in statistics console
added ability to force uniqueness of LLCopyOnWritePointer
converted more variables to units
added convenience function for unit constants
2013-06-28 20:45:20 -07:00
Richard Linden 808d3eff19 SH-4299 WIP: Interesting: High fps shown temporarily off scale in statistics console
fixed some lltrace logic errors
more consistent syncing of timestamps of sample values in recording stack
selection of primary buffers was completely incorrect
assignment of recordings got wrong play state due to implicit
operator = defined in base class
fixed asset stats only working up to the first send
2013-06-27 00:07:21 -07:00
Richard Linden 8bddaeec66 fixed scene load monitor resetting to eagerly due to spurious camer amotion
pulled swap() out of ui time block
cleaned up internal lltrace dependencies, factored out common accumulator definitions
2013-06-22 12:00:18 -07:00
Richard Linden 090fa057b5 merge 2013-06-21 11:00:47 -07:00
Richard Linden 5de2f0a897 SH-3931 FIX Interesting: Add graphs to visualize scene load metrics - potential fix for bad times 2013-06-21 10:58:44 -07:00
Richard Linden 1c51938bab BUILDFIX: size_t/u32 confusion 2013-06-19 20:35:13 -07:00
Richard Linden 3fe19d883d SH-3931 WIP Interesting: Add graphs to visualize scene load metrics
scene monitor output is cleaned up, no duplicate first frame, less scientific notation
periodic recording extension now works more cleanly
2013-06-19 20:30:41 -07:00
Richard Linden d136c4c296 SH-4246 FIX interesting: fast timers significantly decreases framerate
removed implicit flushes on reads from recorders for better performance
made sure stack timers were updated on recorder deactivate
faster rendering and better ui for fast timer view
2013-06-18 23:41:53 -07:00
Richard Linden 3f2de87340 SH-3931 WIP Interesting: Add graphs to visualize scene load metrics
added getAs and setAs to LLUnit to make it clearer how you specify units
removed accidental 0-based indexing of periodicRecording history...
should now be consistently 1-based, with 0 accessing current active recording
removed per frame timer updates of all historical timer bars in fast timer display
added missing assignment operator to recordings
2013-06-17 01:18:21 -07:00