Commit Graph

1808 Commits

Author SHA1 Message Date
rdb 35348fd74a express: Do not rely on OpenSSL for MD5 hash support
These hashes are used in various places in the Panda codebase (for integrity checks, not for crypto), so using an internal implementation allows retaining this functionality when building Panda without OpenSSL.

Based on the following public domain implementation:
https://github.com/B-Con/crypto-algorithms
2023-02-22 16:47:14 +01:00
Brian Lach 5f83882858 palettizer: don't respect srgb flag for alpha textures 2023-02-14 20:08:14 +01:00
Brian Lach 52d59b2df7 add sRGB support to egg-palettize, sluminance to egg 2023-02-14 11:34:24 +01:00
rdb 5e26aae1ff cleanup: Fix assorted issues uncovered by clang-tidy 2023-02-12 18:17:03 +01:00
Disyer af4a1bc7a9 python: Use public PyErr_Occurred API instead of private macro
The _PyErr_OCCURRED macro was removed in Python 3.10, so we shouldn't keep any compat code left around for it
2023-02-12 02:36:57 +02:00
rdb b282e8920d Merge branch 'release/1.10.x' 2023-01-13 22:32:35 +01:00
rdb 2157f1162e pstats: Proper thread cleanup after a thread exits (PStats 3.2)
The thread will linger around in the server as long as there is data (so, it will be removed after `pstats-history` seconds)

Fixes #450
2023-01-10 14:37:39 +01:00
rdb 2e42400700 deploy-stub: Fix crash when running in Python 3.11
Fixes #1423
2023-01-09 13:19:09 +01:00
rdb 2aa2a35a9f pstats: Fix regression: crash when opening session file 2022-12-26 11:18:00 +01:00
rdb f258442b77 CMake: Fix compile error due to missing `-lm` for deploy-stub 2022-12-12 20:03:30 +01:00
rdb e1b4083d6d Merge branch 'release/1.10.x' 2022-12-12 17:19:10 +01:00
rdb fb14c29525 pstats: Server can handle new protocol version 2.3
It changes the following things:
* Changes the counts in the PStatFrameData from uint16 to uint32, since I was hitting the value limit in some heavy frames with Python profiling enabled - no good reason for this limitation, so this allows removing it later
* Adds a T_expire_thread message, which I can use later to fix #450

These features are not used on the client side, but will be used on master.  Adding these changes here now makes it possible to use a master client with a 1.10.13 version of the server (can be useful if you can't compile Panda on the host).
2022-12-10 19:45:29 +01:00
rdb 264fe5e057 pstats: Fix clock skew handling when frames arrive out-of-order 2022-12-07 15:01:39 +01:00
rdb 5032d41f43 pstats: Set window icon for PStats on Windows
Just using a stock image from imageres.dll for now, but it makes it a easier to spot and distinguish from other Panda3D apps in the task bar.
2022-12-07 14:30:20 +01:00
rdb 39744ac7de pstats: Fix save/load incompatibility with double-prec builds 2022-12-07 13:53:12 +01:00
rdb 3dbaf80841 pstats: Fix compile error on Windows with `STDFLOAT_DOUBLE=1`
Fixes #1408
2022-12-07 13:52:11 +01:00
rdb c82f95ad6b Merge branch 'release/1.10.x' 2022-12-06 20:02:35 +01:00
rdb 32ebe11b06 dist: Add an option to retain docstrings in compiled Python code
Fixes #1341
2022-12-06 15:21:39 +01:00
rdb ffbfdb22e0 dist: Add `prefer_discrete_gpu` option to force use of dedicated GPU
Currently only implemented on Windows.

Fixes #680
2022-12-06 15:20:57 +01:00
rdb 7c85b54ba4 pstats: Use proper microsecond symbol on GTK 2022-12-03 22:28:02 +01:00
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 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 706c354b02 pstats: Support for command-line options (session file, port number) 2022-12-01 15:05:34 +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 87012f869d text-stats: Fix typo in help message (pstats-port, not pstats-host) 2022-11-30 14:03:31 +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 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 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 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 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 9bd66baa1c Merge branch 'release/1.10.x' 2022-11-21 19:02:50 +01:00
rdb d893b21f2b assimp: Fix assert loading meshes with multiple primitive types 2022-11-19 13:12:14 +01:00
rdb e56c1a0a98 gtk-stats: Fix compile error on manylinux2014 with G_SOURCE_FUNC
[skip ci]
2022-11-05 15:59:56 +01:00
rdb 37f7dc285b assimp: Set assimp-collapse-dummy-root-node to true by default
See #366
2022-11-03 13:45:22 +01:00
rdb 2a9a32fea9 assimp: Drop support for older versions of Assimp
We now require at least Assimp 4, I believe.
2022-11-03 13:45:22 +01:00
rdb e75aae62f0 Merge branch 'release/1.10.x' 2022-11-03 13:45:05 +01:00
rdb db6ea00967 assimp: Add assimp-collapse-dummy-root-node option
This is false for now, but will be true in the future.

See #366
2022-11-03 13:18:49 +01:00
rdb 1fd2e124cf assimp: Fix unprotected debug statements 2022-11-03 13:14:07 +01:00
rdb c50a5b25b8 ptloader: Disable obj2egg from ptloader
It doesn't support materials and textures, so it's not really useful to have this registered with the loader by default, especially since we have much better support for .obj through Assimp

Fixes #738
2022-11-03 09:53:13 +01:00
rdb 2044861597 assimp: Support custom object properties as tags 2022-11-02 23:02:33 +01:00