Commit Graph

1832 Commits

Author SHA1 Message Date
rdb 9145b6c729 Merge branch 'release/1.10.x' 2024-01-04 16:36:03 +01:00
kamgha 25b85041d5 egg-palettize: fix writing Magfilter
Fixes a typo that applied the value from the Minfilter to the entry of the Magfilter.

Closes #1585
2024-01-04 16:22:30 +01:00
rdb b7fa25f8f4 assimp: Disable loading .glb and .gltf via Assimp by default
Fixes #1537
2023-10-22 12:08:09 +02:00
rdb 3833a35fa9 Merge branch 'release/1.10.x' 2023-10-22 12:06:18 +02:00
rdb 0121e74aa4 assimp: Add assimp-disable-extensions config var (for #1537)
This can be used to disable certain extensions from being loaded via Assimp

Also makes the `get_additional_extensions()` method a bit more efficient by having it avoid string concatenation, using a temporary buffer instead
2023-10-22 11:59:30 +02:00
rdb d368fac3e3 pstats: Update macOS timeline view to show more of collector name
Now shows the parent collector name if there's room and a single character if there's no room for anything more, just like the other implementations
2023-10-14 14:25:45 +02:00
rdb 10110cbfff CMake: Build PStats port for macOS 2023-10-14 12:59:18 +02:00
rdb 71154492b9 pstats: Add macOS port
Closes #1531
2023-08-30 15:08:46 +02:00
rdb 577dc25130 pstats: Fix erroneous highlight in strip chart before oldest frame 2023-08-29 22:51:17 +02:00
rdb da57279d9a pstats: Fix GTK strip chart total label and window title not updating
...when navigating around in a session that is not being updated automatically (eg. loaded from file)
2023-08-28 13:04:05 +02:00
Disyer 0cf2a5f385 pandatool: Correct header guard names (#1525) 2023-08-05 14:50:48 +02:00
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