Commit Graph

984 Commits

Author SHA1 Message Date
ca5684910f rectangles: improve rectangle positioning 2018-05-16 15:09:33 +01:00
a15eb358ce visualizer: ignore anchor x/y position
We don't need that, and it breaks for things not at index 0,0.
2018-05-16 15:09:20 +01:00
a61703d7e5 sources/perf: Add drm/i915 GPU begin/end times. 2018-05-16 14:27:38 +01:00
a3bda35b28 sources/perf: Capture the CRTC number and MSC for vblank events.
This will help make sense of vblank events in a multi-screen
environment (where there are two streams of vblanks), and hopefully
also useful for correlating to compositor events.
2018-05-16 14:27:33 +01:00
88af69c3ec visualizers: mark fields as private 2018-05-16 12:44:48 +01:00
af3e3b0e2a marks: start on visualizer row data for marks
This is sort of a minimal implementation to get started. There is still
plenty to do, but we can iterate from here.
2018-05-16 12:44:48 +01:00
1140e80efc rectangles: start on helper to generate rectangle data
This is meant to be used by marks visualizer to show rectangles.
2018-05-16 12:44:48 +01:00
590d317a94 cursor: add helper to get reader
We might need this so that we can access to the updated end time that was
determined by iterating frames.
2018-05-16 12:44:48 +01:00
b7696198bf tools: add more time data to the event dump 2018-05-16 12:44:48 +01:00
0e9f4ca291 visualizers: limit mark rows to 30 2018-05-16 12:44:48 +01:00
14d2554c35 marks: add group to visualizer row
This will allow us to filter events that we do not care about for a given
row. We add a visualizer row per-group.
2018-05-16 12:44:48 +01:00
4f9ea0fce8 visualizers: discover group types when locating mark types 2018-05-16 12:44:48 +01:00
91a45b3313 dump: print group name for mark 2018-05-16 12:44:48 +01:00
540ff0e05d marks: stub out a visualizer row
This doesn't do any rendering yet, but it gets us the plumbing we need to
start rendering mark content into a visualizer row.
2018-05-16 12:44:48 +01:00
6fa2c270e8 visualizers: discover visualizers from capture reader
The goal here is to avoid having to hard code what visualizers are shown
from the .ui files. We just should add things that we find are supported.

Long term, I think we'll add a concept of an "instrument" which is the
combination of a data source (SpSource) and a visualizer (SpVisualizerRow).

The other goal here is to enable the future support for discovering marks
and adding rows for each of those threads.
2018-05-16 12:44:48 +01:00
6da2a3be4b clock: handle uninitialized clock gracefully
If we haven't discovered the proper clock, just default to monotonic.
2018-05-16 12:30:10 +01:00
f8176b699b clock: prefer clock monotonic
Various articles claim that CLOCK_MONOTONIC is actually faster than the
CLOCK_MONOTONIC_RAW, and that seems to be my experience.
2018-05-16 12:28:42 +01:00
ac11f0f941 sources/perf: Capture DRM vblank events as a mark.
This should be useful to visualize system-wide events in the CPU
timeline, especially once we add some more events.

We may want to define some modes eventually, as not all captures will
care about GPU visualization.  However, it's pretty low overhead (60Hz
* number of monitors), so maybe we can just filter it out at
visualization time.

We do a bit more setup work than necessary here (looking up the config
number for the tracepoint per CPU, rather than looking it up once at
startup), but I suspect I'll want to refactor the init anyway once we
add more tracepoint markers.
2018-05-16 10:52:28 +01:00
925dadce82 sources/perf: Include the sample identifier in PERF_RECORD_SAMPLE.
If we want to start watching other perf events, we need a way to look
up what perf event we got when a PERF_RECORD_SAMPLE comes in.  The
sample identifier is what does that.
2018-05-16 10:52:28 +01:00
83b75e6528 sources/perf: Add an explanatory comment for the CPU loop.
I stumbled over this kernel restriction, too.
2018-05-16 10:52:28 +01:00
380995fde5 sources/perf: Add a comment explaining sp-perf-counter structs. 2018-05-16 10:52:28 +01:00
e853c79be9 mark: add group to mark event
This allows grouping marks together so that the UI can present marks within
the same group in the same visualizer row.

The goal here is that our perf stream with drm data will have "drm" or some
similar group name (resulting in one row). mutter/cogl/gnome-shell will
use the thread-id as the group name (or something else that is useful) so
their events are grouped together. gdk-wayland might have it's own group
name as well.

The end result is that we can get a mark row for each series of related
data.
2018-05-15 16:33:30 +01:00
eb6fdffa6f visualizers: fix whitespace 2018-05-15 11:35:01 +01:00
6e8c30dfa3 line-visualizer: use array for pointers and mark private 2018-05-15 10:02:58 +01:00
c6260ad177 capture: update stats for marks 2018-05-14 17:51:51 +01:00
4bdbf130b2 capture: add simple mark support
The goal here is to have an API that allows us to record things like
frame timing data. We might iterate on this API a bit, but this gets us
started.

A SpCaptureMark with a zero duration should be treated like an epoch mark
once a visualizer is created. SpCaptureMark with a non-zero duration should
be treated like a begin/end of operation. This may be useful in generating
something like a flame graph.
2018-05-14 17:15:57 +01:00
e6d5d2b70d bump for development 2018-04-09 21:28:41 -07:00
a7462f2af0 Update German translation
(cherry picked from commit 07d2ae90f635c4b7de17cb8f4b6a27b76217fab5)
2018-03-19 20:23:01 +00:00
dfe3a10ea5 build: Use LINGUAS file for help
The old method is deprecated.

https://bugzilla.gnome.org/show_bug.cgi?id=794457
2018-03-18 22:45:59 +01:00
a11c1e1e57 Add Italian translation
(cherry picked from commit 4673fff975b80e9c0fd559802f5d7de0f3dce0b5)
2018-03-18 13:38:17 +00:00
bb9d639fd1 Update Indonesian translation
(cherry picked from commit 164e5e1d3ad4889866f745af8e27c7cbf03b4ba9)
2018-03-15 13:40:00 +00:00
5b5a79e3e0 Release 3.28 2018-03-13 17:46:55 -07:00
c3d1fd0ff8 sp-capture-writer: Initialize write buffer
Valgrind notes that the buffer is not fully initialized when we pass it
to write(). This could potentially write sensitive data, if we are not
careful with the buffer length.

See https://gitlab.gnome.org/GNOME/gjs/issues/120

https://bugzilla.gnome.org/show_bug.cgi?id=794272
2018-03-12 16:50:51 -07:00
0b23643cbe Update Swedish translation 2018-03-11 18:16:51 +00:00
1ec14b637e release 3.27.92 2018-03-04 21:06:01 -08:00
65e9dca2c4 Update Finnish translation 2018-03-03 17:05:50 +00:00
489b8864bd Update German translation 2018-03-01 10:16:06 +00:00
a43b752186 Update Hungarian translation 2018-02-26 22:31:26 +00:00
3e1770fd5b Updated Serbian translation 2018-02-23 00:42:32 +01:00
10b00317bc Updated Spanish translation 2018-02-22 14:08:52 +01:00
d31b4bc178 sysprofd: remove lingering debug code
https://bugzilla.gnome.org/show_bug.cgi?id=793698
2018-02-21 11:51:01 -08:00
1045422355 Remove po/Makevars
Meson doesn’t use it, and Damned Lies learned to read po/meson.build.
2018-02-20 23:19:15 +01:00
6fde0be959 release 3.27.91 2018-02-20 13:53:59 -08:00
4d8c1b2a46 tests: use G_GUINT64_FORMAT 2018-02-19 14:33:13 -08:00
88b8c20e79 Update Brazilian Portuguese translation 2018-02-19 20:56:07 +00:00
cd7ff7f258 tests: fix warning in model filter test 2018-02-13 20:35:24 -08:00
0ee8a38fca build: add more GCC warnings
Adds the set we use in various other GNOME projects.
2018-02-13 20:35:02 -08:00
0219ee5205 capture-cursor: specify const for condition
We don't modify this, so it can be const.
2018-02-13 17:18:28 -08:00
951213ddb6 capture-reader: cleanup some space checks
Add a few more assertions to make sure we have what we think we have. Also
we can drop self->pos from our while loop checks as it will always be zero.
2018-02-13 17:10:02 -08:00
0ec2c127ea capture-reader: fix byte swap of frame info
If we are swapping between endianness, we were miss swapping various fields
and they'd all end up with the swapped len value.
2018-02-13 16:34:41 -08:00