25618 Commits

Author SHA1 Message Date
rdb
d6055cc927 pstats: Timeline: show longer collector name if there's room
Similar to what we're doing on the flame graph now

Also, tweak tooltip message for collectors that overlap frame boundary if it's partially on a dropped frame, so that it isn't misleading
2022-12-03 21:44:36 +01:00
rdb
cb0d52b1b5 pstats: Changes to make GTK+ timeline impl match Windows
Adding vertical scroll, allowing resizing of the window, and putting the frame number to the right of the frame divider line instead of centering it

Also, never makes the Timeline window taller than the screen
2022-12-03 21:42:21 +01:00
rdb
76677e5c00 pstats: Deprecate PStatClient::resume_after_pause()
It creates a clock skew in the PStats timing information that cannot be corrected for in the server.  If we want to bring this back, we should either have a global `pause()` and `resume()` (so we can properly pause collection in the meantime, and have a time to reset to, but we'd need to think about how to handle threading) or we should add a `drop_frame()` to drop the current frame.  If we must bring it back in its current form, then we need to communicate the clock reset to the server, so that it can properly take it into account.
2022-12-02 22:19:43 +01:00
rdb
f3cf30089b pstats: Improvements and fixees to Timeline view:
- Properly display and stack bars overlapping frame boundaries
- Ignore "App:Show code:General" collector (already disabled on master, but to support 1.10 clients) - it's an "inverted" collector that doesn't nest properly so it messes up the stacking
- Better handling / display of dropped frames
- Better handling of clock skew due to `PStatClient::resume_after_pause()` (but please don't use it, because it's not possible to fully handle it properly)
- Vertical scrolling (Windows only)
2022-12-02 22:19:43 +01:00
rdb
12c51fe2f6 pstats: Fix flame graph showing old results when opening in non-running session 2022-12-02 22:19:43 +01:00
rdb
fd7f738365 pstats: Fix extremely slow constant rebuilding of chart menus in GTK impl 2022-12-02 22:19:35 +01:00
rdb
40f4656165 installpanda: Enable start-up notifications for pview
See cf4fa526c94fc507db386a0da566f2a69aef6d41 for more information
2022-12-01 15:52:16 +01:00
rdb
098e303669 makepackage: Don't open a terminal when starting pview from .desktop 2022-12-01 15:52:16 +01:00
rdb
60acf82f04 x11: Support desktop startup notification
This lets the window manager know when a program has finished launching, to stop showing a spinning cursor

Can be disabled with `x-send-startup-notification false`
2022-12-01 15:52:15 +01:00
rdb
f593026061 x11: Support _NET_WM_PING 2022-12-01 15:18:45 +01:00
rdb
b6dd2b8ec1 makepanda: Add file associations and shortcuts for pstats 2022-12-01 15:08:41 +01:00
rdb
706c354b02 pstats: Support for command-line options (session file, port number) 2022-12-01 15:05:34 +01:00
rdb
7e8dfc58ce makepackage: Remove mention of .p3d files from installer.nsi 2022-12-01 13:46:02 +01:00
rdb
1564435bbd pstats: Move last session and layout files to $XDG_STATE_HOME on Linux
This is a new directory that is slightly more persistent than $XDG_CACHE_HOME
2022-12-01 13:04:54 +01:00
rdb
1e542a43a1 pstats: Add keyboard shortcuts in GTK+ implementation 2022-12-01 13:03:53 +01:00
rdb
0421ee31b3 Merge branch 'release/1.10.x' 2022-12-01 12:59:27 +01:00
rdb
20459118e2 dtoolutil: Add XDG_STATE_HOME on Linux 2022-12-01 12:56:45 +01:00
rdb
f9ebca2bec makepanda: Fixes to pview.desktop
It accepts multiple files (not URLs), and it doesn't actually handle startup notification properly, so don't keep showing that spinner
2022-11-30 23:41:47 +01:00
rdb
87012f869d text-stats: Fix typo in help message (pstats-port, not pstats-host) 2022-11-30 14:03:31 +01:00
rdb
d4c30bb4e7 tform: Add @since to doc of MouseWatcher::is_raw_button_down() 2022-11-30 14:02:51 +01:00
rdb
d5bfffb7fe makepanda: Remove old panda3d.desktop file
This belonged to the runtime, but was missed in #734
2022-11-30 13:53:36 +01:00
rdb
7691d3f67b pstats: Fix some issues with updates of flame graph
Upon reading data from datagram, the bars would animate from zero width, which looks odd when opening an existing session.

Also, fix the scale area not updating properly in GTK version.
2022-11-30 12:34:12 +01:00
rdb
837815b553 pstats: Add padding pixels to labels in gtk-stats
At the moment, the text runs right up to the edge of the label, which looks unsightly and inconsistent with the Windows version.
2022-11-30 12:32:32 +01:00
rdb
b0a6e498e2 pstats: Make label stack scrollable on Windows if it runs off 2022-11-29 23:47:07 +01:00
rdb
b5e92e29f5 tform: Add MouseWatcher::is_raw_button_down() 2022-11-29 23:43:50 +01:00
rdb
95b62ff198 workflow: Update Python versions for CMake build 2022-11-29 23:43:29 +01:00
rdb
dfa4cc7da2 workflow: Update thirdparty packages for CMake builds 2022-11-29 20:59:26 +01:00
rdb
36aec8b014 pstats: Show collector start count in mouse-over tooltips 2022-11-29 20:59:14 +01:00
rdb
a5610f217e Merge branch 'release/1.10.x' into incoming 2022-11-29 20:58:51 +01:00
rdb
867f60dcca pstats: Rename "Show code" collector to "Tasks"
Also remove outdated definitions from pStatProperties.cxx
2022-11-29 20:50:18 +01:00
rdb
0d30045670 workflow: Update Python versions 2022-11-29 20:18:32 +01:00
rdb
5aad1d8404 interrogate: Change error message to mention interrogate
This makes it more obvious that the error is coming from interrogate when encountering a parse error in a build log
2022-11-29 20:14:33 +01:00
rdb
44dd2bd091 workflow: Update to 1.10.13 thirdparty packages 2022-11-29 20:14:20 +01:00
rdb
e5d36e2d01 makepackage: Add instructions for installing Python 3.12 bindings 2022-11-29 20:13:49 +01:00
rdb
e17b76f775 readme: Update links to point to 1.10.13 thirdparty packages
[skip ci]
2022-11-29 20:12:57 +01:00
rdb
adc324bbde pstats: Fix assorted compile issues in more esoteric configurations 2022-11-29 20:11:59 +01:00
rdb
386fe609fa pstats: Show hierarchical parent of collector in flame graph
Only when it's different from the nesting parent, and only if there's room.
2022-11-29 16:55:40 +01:00
rdb
1fa446e183 pstats: Start new session if client disconnects before sending data
This provides a better UX; if the client disconnects after the graphs open, it's quite obvious that there's still a PStats session open, but otherwise it's not obvious (and a little annoying) if you have to realize that PStats is no longer listening and you have to start a new session.
2022-11-29 16:52:58 +01:00
rdb
50cfdebd9c pstats: Integrate Python profiler with PStats
Enabled with `pstats-python-profiler 1`, requires recent version of PStats server.

Currently, it is limited to the main thread only.  Support for other threads may be added at a later date.
2022-11-29 16:00:09 +01:00
rdb
7b9f2cd854 pstats: Support nested start/stop pairs in the server, accept 3.1
Currently, the client doesn't send nested start/stop pairs, but there is no good reason not to handle this case in the server, and in some cases it is useful to send them (I will soon make changes on master to take advantage of this).

Client version 3.1 indicates that the client may send nested start/stop pairs.
2022-11-29 15:48:02 +01:00
rdb
f54747c213 makepanda: Make error about Android architecture suggest solution 2022-11-29 14:23:32 +01:00
rdb
3468b95fa9 pstats: Show collector start/stop pair count in time-based graphs
It can be very useful to know how often a collector was invoked in a frame, not just how long it took.  This adds a number to the upper-right corner showing exactly that (but not aggregated, just for leaf collectors).
2022-11-29 13:01:55 +01:00
rdb
5247446500 pstats: Performance improvements for time-based strip charts
Remove the use of set and list, which are allocator-heavy and insertion was a bottleneck.  Since each sample occurs only once on the linked list, we can more efficiently roll our own linked list with next and prev pointers, so no allocation needed.  Instead of the set, we can just store a per-collector flag.
2022-11-29 12:51:04 +01:00
rdb
21cae91890 pstats: Fix hovering strip chart labels being excessively slow
Now properly uses the cached data rather than computing it on every mouseover
2022-11-26 21:43:41 +01:00
rdb
d00d4a44a0 gobj: Properly initialize Texture object on all stages
Previously, forward stages would be uninitialized, resulting in cryptic errors with ahead-of-time preparation (although arguably ahead-of-time preparation is a bug in and of itself)
2022-11-26 16:56:07 +01:00
rdb
5db4b447a6 rplight: Fix PSSM calculation failing with infinite far distance
Fixes #1397
2022-11-26 16:52:55 +01:00
rdb
37795cd596 rplight: Fix redundant get_lens() calls 2022-11-26 16:52:37 +01:00
rdb
f02a3156ca pipeline: Avoid dynamic allocation in PipelineCycler when using 1 stage
Eliminates a level of indirection at cost of 8 bytes per cycler
2022-11-21 20:23:03 +01:00
rdb
9bd66baa1c Merge branch 'release/1.10.x' 2022-11-21 19:02:50 +01:00
rdb
1f9f6a618f vision: Fix use of wrong delete operator in ARToolKit code 2022-11-21 18:33:35 +01:00