Commit Graph

1746 Commits

Author SHA1 Message Date
rdb bb6976d558 pstats: Third significant update to PStats server UI, including:
* Windows stay open after client disconnects, for further inspection
* Ability to save session results to a file, and reopening those files
* Ability to save the current graph window layout for new sessions
* Ability to change colors (by right-clicking on bar)
* SI prefixes for Hz units (kHz, MHz, etc.)
* Ability to export session to Chrome Tracing JSON format
* "Close All Graphs" menu option
* Graphs now properly show data when opened while Pause is on
* Some fixes for weird graph window minimize behavior on Windows
2022-10-05 18:58:36 +02:00
rdb f243d9983f CMake: Add `--disable-new-dtags` linker option for deploy-stub
This forces the use of DT_RPATH instead of DT_RUNPATH, see #1358 and 8617eb917c
2022-09-02 23:10:37 +02:00
rdb d239f48a43 Merge branch 'release/1.10.x' 2022-08-31 12:51:46 +02:00
rdb 3e220e4fb4 deploy-stub: Set `Py_OptimizeFlag` to 2 for Python 3.2+
This fixes the value of `sys.flags.optimize`, as we always build Python code with `optimize=2` in Python 3.2 and above

In the long run we need a better solution, see #1363

Closes #1359
Fixes #1343
2022-08-31 11:25:35 +02:00
rdb ecf4d19e83 Merge branch 'release/1.10.x' 2022-05-10 16:12:36 +02:00
rdb e02a9989fb android: Changes to add compatibility with pyjnius/plyer 2022-03-12 18:18:15 +01:00
rdb c62d2319e0 CMake: Add --exclude-libs flags to static thirdparty libraries
Matching makepanda, this avoids symbol conflicts and may have optimization benefits.

This is a temporary hack until CMake 3.24 is released, which offers a cleaner way of doing this.
2022-03-09 16:23:37 +01:00
Disyer ac50aa5dde mayaprogs: Switch connection manager variable names to snake case 2022-03-01 23:27:12 +02:00
Disyer 7da3395a8a mayaprogs: Resolve Maya conversion server memory leak by storing managers on the heap 2022-03-01 23:07:20 +02:00
rdb a0be50c769 general: Fix assorted compiler warnings 2022-03-01 16:09:07 +01:00
rdb 284ffe9e83 pstats: Fix status bar when collector has level data on multiple threads
Status bar now shows total across all threads, and double-clicking it opens strip charts for all the threads that have data for it
2022-02-22 16:52:55 +01:00
rdb 759115fbc7 pstats: Fix crash when frame has only level data and no time data 2022-02-22 15:25:04 +01:00
rdb 739ad1ebd6 pstats: Fix strip chart scale glitches on Windows when switching collector 2022-02-20 16:50:54 +01:00
rdb 161ac4c2f7 pstats: Another major update for PStats server UI, including:
- New powerful scrolling Timeline view for seeing all time events across all threads
- Redo flame graph to use stack-based nesting rather than the standard collector nesting
- Rewrite flame graph drawing to not use labels
- Status bar appears in main window showing top-level level collectors; double-clicking them brings up their chart and right-clicking them shows their children
- Context menus are added when right-clicking labels and charts
- Tooltips now appear when mouse hovers over collector area in a chart
- Strip chart windows now automatically determine the appropriate scale better
- Graph menus redone to allow opening flame chart anywhere as well as strip chart
- Instead of just ms everywhere, also use s / us / ns where appropriate
- Don't disable smoothing right away on mouse down on strip chart, only after dragging
- Windows: The MDI child windows are quite ugly and overlap with the status bar, so instead they are now top-level windows, but some code is added to make them spawn inside and move with the parent window, and minimize to its corner.  I can back this out if people prefer the old behavior despite the ugly decoration
- Windows: Label text shows ellipsis when cut off
- Windows: Graph windows no longer have icons
- Windows: Graph windows no longer spawn perfectly on top of each other, rather cascading
- GTK: Render at high resolution when GDK_SCALE is not 1
- GTK: Graph windows are forced to be floating in tiling WMs
- GTK: Flame chart window no longer has useless dividing bar
- GTK: Use more efficient cairo surface types
2022-02-18 18:19:11 +01:00
rdb be2e07637f gtk-stats: Fix mouse motion detected outside strip chart graph area
Cherry-picked from 3a38543f65
2022-02-06 15:29:25 +01:00
rdb 5bb616dca7 pstatserver: Fix compilation error with STDFLOAT_DOUBLE=1
Regression in 7da70cf939

Fixes #1259
2022-02-05 22:25:36 +01:00
rdb 7da70cf939 pstatserver: Major improvements to PStats server UI, including:
* New "Flame Graph" chart for seeing all collectors in a frame, much easier to read than piano roll
* Update controls, fonts, background color to more modern visual style on Windows
* Proper support for high DPI monitors (with correct scaling)
* Add tooltips for collector labels showing full name and averaged value
* Colors of collectors are now converted to sRGB transfer encoding
* Major performance improvement to piano roll view on Windows
* Movering mouse over labels now highlights the corresponding area in chart
* Label hover effect changed to darkening effect instead of border
* Reimplement graph as static common control on Windows
* Check boxes are now clickable by their label on Windows
* Graph windows have minimum sizes on Windows
2022-02-02 21:05:10 +01:00
rdb f0b81d5bf0 gtk-stats: Fix top row in piano roll chart being cut off with high DPI 2022-02-01 17:25:43 +01:00
rdb 87f5aea80e gtk-stats: Update to GTK version 3, since version 2 is EOL 2022-02-01 17:17:56 +01:00
rdb 4c3bc5a42e gtk-stats: Use cairo instead of GDK for drawing
Drawing via GDK is deprecated and no longer supported in GTK 3
2022-02-01 15:37:02 +01:00
rdb 3a38543f65 gtk-stats: Fix mouse motion detected outside strip chart graph area 2022-02-01 13:35:32 +01:00
rdb 174cb48990 gtk-stats: Replace uses of deprecated GTK APIs
As of this change, requires GTK 2.24
2022-02-01 11:47:04 +01:00
rdb fb7a2d7a13 text-stats: Add JSON output mode in chrome://tracing format
This allows the whole trace to be captured and then loaded into chrome://tracing or https://ui.perfetto.dev
2022-01-30 02:03:18 +01:00
rdb 36edb22fd1 pstats: Include client pid with hello message
Useful for uniquely identifying the process in a situation where multiple clients on the same host connect with the same server.

New version bump is not necessary, as old servers should just ignore the extra field in the datagram.
2022-01-30 02:03:18 +01:00
rdb 40f54a766c Merge branch 'release/1.10.x' 2022-01-07 10:52:28 +01:00
rdb 91f3ab01f3 mayapath: Properly handle new bin2/bin3 folders on Windows for Maya 2022 2022-01-06 17:06:16 +01:00
rdb fc625eec11 Merge branch 'release/1.10.x' into incoming 2021-12-12 22:54:15 +01:00
Daniel afadb556a2 maya: Add support for Maya 2022
Closes #1213
2021-12-12 22:20:21 +01:00
rdb b8c301164a dist: Implement more reliable solution for logging stdout/stderr
The previous trick doesn't seem to work on one of my devices.  The disadvantage of the new solution, however, is that it doesn't capture anything until site.py is successfully executed.
2021-12-10 14:56:13 +01:00
rdb 429acd6e0d general: Remove use of proprietary unsigned integer typedefs 2021-12-08 14:51:52 +01:00
rdb 44e10d10a0 Support deploying Python apps for Android using bdist_apps 2021-12-07 21:00:08 +01:00
rdb 5de31c6293 Merge branch 'release/1.10.x' 2021-12-04 21:57:35 +01:00
Daniel 80892ede94 assimp: Support compilation with Assimp 5.x
Closes #1212
2021-12-04 20:44:21 +01:00
rdb ab9830b6ff egg-qtess: Squelch compiler warning 2021-11-29 14:49:41 +01:00
rdb c293ad3da2 Merge branch 'release/1.10.x' 2021-08-03 20:19:15 +02:00
rdb 0932009e18 pandatool: Fix typo in bam-info help page 2021-08-03 13:25:56 +02:00
rdb 0c5fedfc9b Merge branch 'release/1.10.x' 2021-07-02 16:03:41 +02:00
rdb 14e95eec72 assimp: Load normal column as C_normal instead of C_vector
Fixes #1163
2021-07-02 15:45:56 +02:00
rdb e034e7f4b3 Merge branch 'release/1.10.x' 2021-03-31 23:08:21 +02:00
Daniel 73a2d29c39 maya: Allow more than three eggObjectTypes in a Maya model
Closes #1134
2021-03-31 22:57:26 +02:00
Stephen Imhoff 18873ffbf1 Add use of TransformState::make_pos_quat() in some places (#1116)
Fixes #1116
2021-02-22 20:06:26 +01:00
rdb 64f0414f57 Merge branch 'release/1.10.x' 2021-02-06 19:36:39 +01:00
rdb 926af198a8 deploy-stub: Fix compilation error 2021-02-06 19:14:25 +01:00
rdb 5a4ff7f6c0 Merge branch 'release/1.10.x' 2021-02-06 12:37:54 +01:00
rdb f55cdd8907 dist: Support strftime-style date formatting in log_filename
Fixes #1103
2021-02-06 12:36:14 +01:00
rdb 613441060b Merge branch 'release/1.10.x' 2021-01-18 23:47:36 +01:00
rdb 6520b68c2c progbase: respect SOURCE_DATE_EPOCH in -write-man option 2021-01-18 16:41:04 +01:00
Donny Lawrence 7b83eac943 CMake: Build deploy-stub
Closes #918

Co-authored-by: rdb <git@rdb.name>
2020-12-29 20:45:30 +01:00
Daniel 74a4648965 mayaprogs: Completely refactor the maya2egg server
The maya2egg_server utility is no longer a separate utility. To run the maya2egg_server (now Maya conversion server), use `maya2egg -server` or `egg2maya -server`.

Two new utilities have been added: `maya2egg_client` and `egg2maya_client`. Both of them are Maya version independent, and do not rely on any Maya libraries. However, they're only built with SDKs that already come with the Maya binaries, as the server makes its own assumptions about the current working directory (the client and the server are expected to be on the same machine.)

A new feature has been added to ProgramBase: an `exit_on_complete` flag, which allows you to parse the command line without exiting the program upon a failure or a help command.

In addition to this, a getopt bug has been fixed in ProgramBase: It is now possible to clear the state of the Panda implementation of getopt, making it possible once again to parse command line arguments twice in a row.

Closes #1025
2020-12-29 16:16:36 +01:00
rdb b38e9d552a Merge branch 'release/1.10.x' 2020-12-28 16:26:48 +01:00