Commit Graph

3132 Commits

Author SHA1 Message Date
045877dabc libsysprof-gtk: handle dispose more gracefully 2023-06-26 15:32:31 -07:00
cf1b0c9604 libsysprof-gtk: make chaining up work w/o checking for NULL 2023-06-26 15:32:16 -07:00
9e61191d0d libsysprof-gtk: give session a visible/selected time axis
This makes it easier to bind to various charts and have them auto-update
when the axis changes.
2023-06-26 15:32:05 -07:00
f8223b1d9a libsysprof-gtk: make time series work with expressions 2023-06-26 15:31:40 -07:00
df065e81bb libsysprof-gtk: get Axis working 2023-06-26 15:31:24 -07:00
f0e556c910 libsysprof-gtk: use SysprofNormalizedSeries for time span layer 2023-06-26 14:20:05 -07:00
718867614a libsysprof-gtk: make column layer a SysprofXYLayer 2023-06-26 14:19:11 -07:00
6adda64123 libsysprof-gtk: add xy layer to allow some code deduplication
We can also port ColumnLayer to use this.
2023-06-26 12:24:31 -07:00
7493da1b42 libsysprof-gtk: start porting column layer to normalized series 2023-06-23 22:28:10 -07:00
e254fcdffb libsysprof-gtk: add getter for values array 2023-06-23 22:28:10 -07:00
a75e8f1dae libsysprof-gtk: add new SysprofTimeSeries
This is to replace what is in libsysprof-analyze currently, so we can do
charting in a more flexible manner.
2023-06-23 22:28:10 -07:00
5c2f4dc0a9 libsysprof-analyze: remove old series implementations 2023-06-23 22:28:10 -07:00
4282ff2b15 libsysprof-gtk: make xy series compile
We aren't using this, but this makes it fit the form of the rest of the
things in here.
2023-06-23 18:16:03 -07:00
808c633068 libsysprof-gtk: start on new XY series
This will extract the values using the expressions instead of manually
building series as we previously would need to do.
2023-06-23 18:05:02 -07:00
3cddf32eca libsysprof-gtk: start on new axis/series design
This will mean we move series work from libsysprof-analyze into
libsysprof-gtk so we get access to things like GtkExpression.
2023-06-23 17:59:51 -07:00
73e2aec626 libsysprof-gtk: add chart layer for timespan drawing
This will allow us to drop the custom mark chart stuff and do this all more
generically using timeseries and charts. Long term, we'll probably want to
buy in on the expression stuff to get labels/etc as well as building the
series from another data source.
2023-06-23 10:45:00 -07:00
512dfae3e4 libsysprof-gtk: enable seperators for marks chart
It helps to read the rows a bit better.
2023-06-21 22:20:11 -07:00
13323c5e79 libsysprof-analyze: improve progress notifications 2023-06-21 22:06:42 -07:00
40778febae libsysprof-gtk: reduce overhead of test charts 2023-06-20 19:20:03 -07:00
c3e95f5243 libsysprof-gtk: set css names for chart and layer 2023-06-20 19:19:48 -07:00
ece18d44e8 libsysprof-gtk: test charts with some random data 2023-06-20 17:19:11 -07:00
100b200995 libsysprof-analyze: allow series without a model
This can be useful when you want to generate some data for graphs.
2023-06-20 17:18:57 -07:00
b77247c40c libsysprof-gtk: allow setting dashed lines
This is needed to make graphs like our previous cpu frequency graphs.
2023-06-20 17:18:32 -07:00
4191dc74b3 libsysprof-gtk: fix fill color 2023-06-20 17:18:13 -07:00
f71fbd9a31 libsysprof-gtk: allow filling a line chart 2023-06-20 16:58:17 -07:00
122c4906b8 libsysprof-gtk: add a split layer for top/bottom rows
This can be used to recreate our old duplex visualizer which draws in
opposite directions from a common middle Y point.
2023-06-20 16:39:30 -07:00
714a97e430 libsysprof-gtk: add missing export 2023-06-20 16:38:42 -07:00
1522a9f57f libsysprof-gtk: allow flipping y-axis of line layer
This way it can be packed into a split layer to allow emulate our previous
duplex graphs.
2023-06-20 16:19:39 -07:00
5403f0335f libsysprof-gtk: move some math to the GPU
We can at least do the subtraction on the GPU by setting up the
transformation instead of on every data point.

It would be nice to do the rect as well but it looks like we might get
culled do to the rect width.
2023-06-20 15:46:21 -07:00
985bd35221 libsysprof-gtk: add line layer which can line_to and curve_to 2023-06-20 15:35:25 -07:00
2a6d1a988c libsysprof-gtk: redraw layer if properties change 2023-06-20 15:35:00 -07:00
982eee7f31 libsysprof-analyze: return NULL if series is empty 2023-06-20 15:34:43 -07:00
faf2303015 libsysprof-gtk: rename depth layer to column layer
I would like this to eventually be a bit more re-usable for XYSeries and
more than just "stack depth" for the traceables.
2023-06-20 14:30:03 -07:00
b40be19530 libsysprof-analyze: add test for symbol collision 2023-06-20 14:24:02 -07:00
07d08597ba libsysprof-analyze: handle collision in symbol cache
If we have two nodes that collide for address space, we need to keep the
one we already have in the symbol cache. The other node cannot be cached
and will be dropped instead.

This fixes a leak when collisions occur.
2023-06-20 14:23:46 -07:00
1aafb143fd libsysprof-analyze: clear stream on finalize 2023-06-20 14:22:51 -07:00
5787809f95 libsysprof-analyze: add simple strings test for asan
This just helps track down if there are any leaks via asan.
2023-06-20 13:49:49 -07:00
7595c611d7 libsysprof-analyze: remove unused function
No need for the "peek" variant, so just remove it.
2023-06-20 13:39:09 -07:00
c86a4e2f03 libsysprof-gtk: print layer item information when activated 2023-06-20 13:26:22 -07:00
50b9aa2567 libsysprof-gtk: allow chart to activate layer item on click 2023-06-20 13:26:07 -07:00
cf1b3ae16f libsysprof-gtk: add vfunc to get a model item at x,y 2023-06-20 13:25:49 -07:00
85b233d0d8 libsysprof-gtk: fix getter for value 2023-06-20 13:25:26 -07:00
075c8e664d libsysprof-gtk: break value at x,y coord into helper 2023-06-20 13:01:07 -07:00
b125f4e6e9 libsysprof-gtk: highlight item on motion 2023-06-20 12:46:15 -07:00
d68f2ff87a libsysprof-gtk: add snapshot_motion to chart layer
This allows snapshoting the motion highlight separate from the rest of the
layer so that we can have better render tree diffs. Otherwise we risk
having to snapshot a large dataset from the chart layer itself rather than
just the hightlight areas that changed.
2023-06-20 12:45:43 -07:00
86f5fc6338 libsysprof-gtk: create depth chart for samples 2023-06-20 11:50:05 -07:00
0cdb97973a libsysprof-gtk: implement some basic depth chart drawing 2023-06-20 11:49:53 -07:00
c2a8b04cf7 libsysprof-analyze: ignore inf/-inf values in xy series 2023-06-20 11:49:34 -07:00
d0d19cff39 libsysprof-analyze: use doubles for reference data
We only want to move to float for the internal 0..1 positions which are
used to draw to the screen (to reduce how much data we hold on to). But for
the data we need to calculate those 0..1 positions, we want better
precision for large numbers. Use double for all of those.
2023-06-20 11:49:22 -07:00
72d489f786 libsysprof-analyze: use weak backpointers for child listmodel 2023-06-20 11:26:10 -07:00