rdb
59f422c056
CMake: Support thirdparty packages on systems other than Windows/macOS
2022-03-09 16:23:37 +01:00
rdb
683c54938c
task: Don't capture SIGINT on Android
...
There's no point to doing that, and doing so restricts the ability to run Python in a separate thread
2022-03-09 16:23:37 +01:00
rdb
573df4b320
dist: Add more resource codes for AndroidManifest.xml values
2022-03-09 16:23:37 +01:00
rdb
37c48ea829
dist: Helpful error for invalid android_abis value
2022-03-09 16:23:37 +01:00
rdb
72f98ec30d
gobj: Delete assignment operator of Geom* classes
...
They are unused and it would probably be a bad idea to try to use them.
2022-03-09 16:23:37 +01:00
rdb
6b9dea3e30
cleanup: Fix comparison between pointer and 0 (instead of nullptr)
2022-03-09 16:23:37 +01:00
rdb
657a8f890c
interrogate: Squelch weird "Manifests" output from interrogate_module
2022-03-09 16:23:37 +01:00
rdb
8cdac14db3
collide: First pass at reducing memory overhead of CollisionBox
...
This is just the low-hanging fruit, there are a lot more gains to be realized.
2022-03-09 16:23:34 +01:00
rdb
21cfb8dba5
readme: Update instructions for building for Android
...
[skip ci]
2022-03-02 14:17:03 +01:00
rdb
dae147ec0c
Merge branch 'release/1.10.x'
2022-03-02 10:51:23 +01:00
rdb
76fb49252c
dist: Fix regression with data_dir NameError in build_apps
...
Fixes #1276
Also let's consistently use the term "assets" for all the application data (and not the gaming-specific term "game files") and use the term "data" for package data only
2022-03-02 10:45:57 +01:00
rdb
930e5da438
texture: Fix get_ram_image_as() with 3D and multiview textures
...
Fixes #1277
2022-03-02 10:42:45 +01:00
rdb
ad187b29f8
makepanda: Force choose correct extension suffix for Windows
...
Even when cross-compiling for 32-bit using a 64-bit copy of Python, and vice versa
2022-03-02 10:03:48 +01:00
rdb
2334f48e89
makepanda: Always use /BIGOBJ when compiling with Eigen
...
Anything from pgraph onward needs it due to the size of Eigen, but let's just always pass it so we don't constantly have to chase compiler errors
2022-03-02 09:58:00 +01:00
rdb
46c1b887ea
Fix heap alignment with SSE2 on 32-bit Windows by inheriting MemoryBase
...
Fixes #510
2022-03-02 09:57:44 +01:00
rdb
370b635534
dtoolbase: Fix missing __stdcall when compiling for 32-bit Windows
2022-03-02 09:57:24 +01:00
rdb
3a120c4d68
CMake: Update warning flags to match makepanda (see f60c55f)
2022-03-02 09:45:22 +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
aaa51df759
makepanda: Remove -undefined dynamic_lookup
for OpenEXR on macOS
2022-03-01 16:10:23 +01:00
rdb
c917a9e1a1
distributed: PyDatagramIterator now retains reference to Datagram
...
Fixes #1262
2022-03-01 16:09:07 +01:00
rdb
f60c55f450
makepanda: Enable additional warning messages
...
Also error on missing return statement in non-void function, since this is pretty much always an error and can be dangerous if not caught
2022-03-01 16:09:07 +01:00
rdb
a0be50c769
general: Fix assorted compiler warnings
2022-03-01 16:09:07 +01:00
rdb
21377c8de5
Use secure versions of CRT getenv etc. when compiling with MSVC
2022-03-01 16:09:07 +01:00
rdb
dc05889be2
dtoolutil: Don't use $HOME in Filename::get_home_directory() on Windows
...
This variable isn't used on Windows systems
2022-03-01 16:09:07 +01:00
rdb
5cfd8db95c
glxdisplay: Update panda_glxext.h
2022-03-01 16:09:07 +01:00
rdb
794968dcc5
makepanda: Fix error building Maya client programs on macOS
2022-03-01 16:09:07 +01:00
rdb
2f3561a48e
makepanda: Update for building against newer OpenEXR on non-Windows
2022-03-01 16:08:59 +01:00
rdb
ac3aa64d33
express: Add docstring to DatagramIterator about Datagram lifetime
...
Related to #1262
[skip ci]
2022-03-01 15:14:01 +01:00
rdb
70415af210
dtoolutil: Set system malloc tag to mimalloc when enabled
2022-03-01 15:12:38 +01:00
rdb
583c9f1857
pipeline: Fix issues with calling convention on 32-bit Windows
2022-03-01 12:19:13 +01:00
rdb
cfc11ba430
dist: Fix issue when deploy_libs in .whl have inconsistent suffixes
2022-02-25 11:20:55 +01:00
rdb
7ccf38a948
pgraph: Remove obsolete PandaNodeChain class
...
Obsoleted by 6bc22d1822ab02b464057f76563de7230dd93cec
2022-02-24 14:13:11 +01:00
Disyer
a08e42d015
makepanda: Create 7-zip debug symbol archives by default, if available
...
7-zip archives will only be created if 7-zip is available during the build phase. When 7-zip is unavailable, ZIP archives will be created as a fallback.
Benchmarks:
- Default ZIP compression: ~23.5 seconds, 162 MB
- 7-zip compression: ~7.5 seconds, 108 MB
- 7-zip compression, --lzma set: ~44 seconds, 88 MB
- 7-zip compression, solid archive: ~5 minutes, 83 MB (not implemented)
Closes #1261
2022-02-24 11:55:06 +01:00
rdb
4df8c86590
tests: Add unit test for PandaNode prev_transform tracking mechanism
2022-02-24 11:43:44 +01:00
rdb
5695d1a719
tests: Add separate unit test for AsyncFuture.wait() with timeout
...
Since it's using a different implementation than the no-timeout version now
2022-02-24 11:43:11 +01:00
rdb
6bc22d1822
pgraph: Rewrite inefficient prev_transform tracking mechanism
...
The previous system was causing a lot of lock contention when transforms are modified in the Cull thread.
The new implementation doesn't use a linked list or lock at all, but a simple atomically incrementing integer that indicates that the prev transforms have changed. set_transform() reads this and backs up the prev transform the first time a transform is modified after reset_all_prev_transforms() is called.
2022-02-24 11:42:04 +01:00
rdb
c356285212
dtoolbase: Compilation fix for broken STLs without atomic::value_type
2022-02-24 11:41:54 +01:00
rdb
ba4173b32c
pgraph: Add constexpr to CacheStats constructor
2022-02-23 23:20:53 +01:00
rdb
c2d088f232
pipeline: Don't use Sleep(1) to yield on Windows
...
Use Sleep(0) instead. Sleep(0) is not guaranteed to yield, which is a problem, but Sleep(1) can easily take up to 16 ms, which is really unacceptable except in very low-priority thread. But really, you shouldn't be relying on force_yield() for anything except with the SIMPLE_THREADS model.
There is also SwitchToThread(), but in fact it is even weaker than Sleep(0).
2022-02-23 23:20:53 +01:00
rdb
cb8563acac
event: Update AsyncFuture to use new atomics implementation
...
With explicit barriers, and the non-timeout version of wait() is now significantly more efficient by using the new futexes if available
2022-02-23 23:20:49 +01:00
rdb
70c49a6416
pipeline: Add Thread::relax() for more efficient busy waiting
...
Equivalent to cpu_relax() or the pause instruction on x86
2022-02-23 23:20:30 +01:00
rdb
c3ce8164bc
dtoolbase: Add atomic wait and notify operations from C++20
...
Adds patomic_signed_lock_free, patomic_unsigned_lock_free, and patomic_flag with wait/notify methods modelled after C++20. Implemented using futexes, falling back to a mutex+condition variable hash table if not supported. (Currently the hash table has a fixed size of 64, which we could increase if necessary, but we really shouldn't even have a fraction of that number of simultaneously sleeping threads...)
Other atomic types are unaffected at the moment, in part because futexes are really restricted to 32-bit ints on Linux anyway
2022-02-23 23:20:26 +01:00
rdb
5196719f29
device: Fix XInput compile error compiling for newer Windows versions
2022-02-23 21:46:15 +01:00
rdb
fd033e66f1
pstats: Add support for profiling thread context switches
...
Disabled by default, enable with `pstats-thread-profiling true` in Config.prc
2022-02-22 18:02:39 +01:00
rdb
b4d51c24e9
event: Remove FunctionAsyncTask
...
To create a task from a lambda, it is more efficient to use the new AsyncTaskManager::add() short-hand which creates an AsyncTask subclass in-place.
2022-02-22 18:02:34 +01:00
rdb
7baeaf3809
event: New C++ AsyncTaskManager::add() no longer uses std::function
...
std::function has unnecessary overhead, better to just create an AsyncTask subclass in-place storing the closure
This obsoletes FunctionAsyncTask, it will be removed in a future commit
2022-02-22 17:02:42 +01:00
rdb
72c891c0df
display: Fix issues with PStats GPU timing:
...
- Leaking queries by never reusing / releasing them
- Clock synchronization was way off when driver waited on GPU during sync point
2022-02-22 17:00:47 +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