Commit Graph

269 Commits

Author SHA1 Message Date
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
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
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
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
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
e05dcdde03 libsysprof-gtk: start on test for charts 2023-06-20 11:10:43 -07:00
2a27bae70b libsysprof-gtk: add session object to chart 2023-06-20 11:10:33 -07:00
23944627ea libsysprof-gtk: be safer about multiple dispose calls 2023-06-20 11:09:59 -07:00
dcdc859759 libsysprof-gtk: add chart headers to toplevel header 2023-06-20 11:09:25 -07:00
92d3d5901d libsysprof-gtk: janitorial cleanup 2023-06-20 11:09:05 -07:00
d7e889ebc8 libsysprof-gtk: ensure layer has allotment for private struct 2023-06-20 11:04:40 -07:00
43ec0e48f5 libsysprof-gtk: start on some loading progress 2023-06-19 19:00:22 -07:00
9d6c60a0d6 libsysprof-gtk: add thread toggle for callgraph test 2023-06-18 14:05:44 -07:00
d4efcb04fa libsysprof-gtk: add column for process id
I wish we had a thread-id for messages, but that would require changing
the capture format and/or add a new frame type.
2023-06-18 13:51:35 -07:00
1e3345ae42 libsysprof-gtk: select time range when activating mark w/ duration 2023-06-16 17:28:44 -07:00
01876ed3b9 libsysprof-gtk: always show time for start column
But allow hiding it for the duration column.
2023-06-16 17:21:28 -07:00
bbd832015e libsysprof-gtk: start on chart + layers
The goal here is to be able to connect data series such as
SysprofTimeSeries or SysprofXYSeries to various chart layers. Those
chart layers get stacked in a SysprofChart.

Some glue code will be necessary to go from frames into data series but
we can experiment with how to automate that later on.
2023-06-16 17:00:31 -07:00
f53fb38d69 libsysprof-gtk: remove selections from mark chart
This doesn't benefit from a selection currently.
2023-06-16 15:56:02 -07:00
0f113eaad7 libsysprof-gtk: remove debug code 2023-06-16 15:54:00 -07:00
be36f36a0a libsysprof-gtk: select mark time range on double click 2023-06-16 15:52:57 -07:00
ac9a95a92b libsysprof-gtk: add sysprof_session_select_time()
This allows changing the time to a specific section within the document
time span.

It may also update the visible time to include the selected time.
2023-06-16 15:52:39 -07:00
dc4d15442f libsysprof-gtk: allow last item to have text 2023-06-16 15:51:43 -07:00
81453a3ec7 libsysprof-gtk: fix notify of time selection 2023-06-16 15:51:33 -07:00
5c178d0672 libsysprof-gtk: janitorial cleanup 2023-06-16 15:18:28 -07:00
b66791fbcd libsysprof-gtk: draw some information under the pointer 2023-06-16 15:17:30 -07:00
ca892b4f5f libsysprof-gtk: tweak rendering to use CSS named colors
We still don't want to fully rely on the CSS machinery because that would
require widgets, which is far too heavy for the number of render nodes we
need to regularly draw.
2023-06-16 14:52:36 -07:00
906e81ec02 libsysprof-gtk: tweak row title alignment 2023-06-16 13:58:19 -07:00
5839d46694 libsysprof-gtk: draw diamonds above squares 2023-06-16 13:58:02 -07:00