Commit Graph

109 Commits

Author SHA1 Message Date
rdb 9ebfef4b83 pgraph: Change TransformState hashing not to require grabbing lock
Instead, set it atomically, with a special hash value used instead of a flag for indicating that the hash is not known.
2021-11-16 17:30:36 +01:00
rdb 60c5589671 pgraph: Optimize handling/checking of identity/invalid transforms 2021-11-16 17:30:36 +01:00
rdb 0c5fedfc9b Merge branch 'release/1.10.x' 2021-07-02 16:03:41 +02:00
rdb 1415ccca61 pgraph: Fix assertion error in get_num_unused_states()
Fixes #1172
2021-07-02 15:11:33 +02:00
rdb e4573ef0fe cleanup: Remove more unnecessary nullptr checks before delete
Follow-up to #934
2020-05-05 14:46:30 +02:00
rdb f524f00e8e Merge branch 'release/1.10.x' 2020-03-14 15:01:38 +01:00
rdb 1b67931f16 express: invert return value of unref_if_one()
This is more consistent with how the return value of unref() works.  Someone might otherwise trip over this.
2020-03-14 14:59:20 +01:00
rdb c5c1d4557b pgraph: fix double free if weak ptr to state is locked while being gc'ed
Fixes #499
2020-03-10 12:10:23 +01:00
rdb 193ae8a3a6 pgraph: take advantage of constant initialization for states maps
SimpleHashMap has a constexpr default constructor, so there is no static init ordering issue that requires us to allocate the states maps on the heap and then to leak them.
2019-01-07 18:40:30 +01:00
rdb daa3100bf1 pgraph: mark TransformState as invalid in destructor
This, in combination with ebef9f3de8, makes it easier to catch issues in code that is accidentally letting get temporary TransformState objects get destroyed.  It does not affect release builds.
2018-12-19 20:47:57 +01:00
rdb 775e4cecff pgraph: fix freeze in garbage_collect(), esp. when rate-limit is on 2018-10-17 19:09:36 +02:00
Sam Edwards b2bfb31114 general: Remove `using std::*` from headers
Also remove most `using namespace std;` statements. The only one that remains is in py_panda.h.

Closes #350
Closes #335
2018-06-14 16:04:49 +02:00
Sam Edwards e2b4353800 general: Replace NULL (and 0 as pointer) with C++11 nullptr
Exceptions to this replacement are:
- .c files
- Headers included by a .c file
- stb_image.h
- dr_flac.h
- Strings
- Comments
2018-06-03 16:35:13 -06:00
rdb 3077316782 general: use proper deleted funcs instead of stubs with asserts
This gives better compile-time diagnostics and saves on code, while also better communicating intent.
2018-05-23 23:35:27 +02:00
rdb 8078fa2b38 More efficiently store SimpleHashMap with empty values 2017-10-17 23:04:16 +02:00
Younguk Kim e07e5d0203 Fix assert macros that cause a crash in non-debug 2017-07-05 19:49:46 +09:00
rdb 90f96fc1a9 Change SimpleHashMap implementation to improve performance of GC.
The new implementation stores elements contiguously and keeps a separate sparse array of indices, similar to the new PyPy and CPython implementations.  This vastly improves performance when iterating over the individual elements, such as when garbage collecting states, and decreases memory usage.
2017-06-12 19:58:02 +02:00
rdb 6b882ac767 Fix slow garbage collect after using a lot of states 2017-06-09 20:12:49 +02:00
rdb 6f8b379bda Big patch full of performance improvements
This particularly benefits applications with a lot of nodes.
2017-04-03 01:41:23 +02:00
tobspr 0fcfb8e372 New file headers, new comment style 2016-02-17 17:47:48 +01:00
rdb bdf91e206d Remove references to Python.h and py_config.h from Panda headers, to prevent picking up a dependency on Python libraries in third-party modules 2015-11-28 16:33:44 +01:00
rdb 7f7f85794d Fix various compilation and linker issues across several platforms 2015-10-07 21:09:35 +02:00
rdb af15797a25 Many, many performance optimizations and enhancements 2015-01-07 19:30:01 +01:00
rdb ab8ebe6e30 Fix issues with point rendering, both software and hardware. 2014-10-11 01:28:32 +00:00
rdb 566feda34d Commit patch by cfsworks to move pgraph stuff to extensions 2014-04-04 09:23:58 +00:00
David Rose 501470169f stdfloat_double 2011-10-10 05:25:10 +00:00
David Rose 369f93951f fix a memory leak in the garbage-collect-states case 2011-09-08 15:02:34 +00:00
David Rose e552c230a0 further debugging in TransformState (and one important bugfix) 2011-09-07 23:44:36 +00:00
David Rose 3ed8632a68 further bugfixes 2011-09-05 23:53:19 +00:00
David Rose 229cf67ae5 Finishing migration of RenderState and RenderAttrib to SimpleHashMap and garbage_collect() models, working towards threaded pipelining 2011-09-04 15:47:45 +00:00
David Rose 220ba658a0 new, experimental TransformState seems to work better for multithreading 2011-09-04 02:52:41 +00:00
David Rose c3d8f81581 progress on multithreaded Panda 2011-09-04 00:11:57 +00:00
David Rose f3df033696 fix is_2d() bug 2010-03-17 22:31:45 +00:00
David Rose aefe3d35c2 merge dev_bam_2009 to trunk 2009-06-10 17:54:40 +00:00
David Rose e41d03482f fix TransformState leak 2009-03-11 00:21:01 +00:00
David Rose 0e885a8481 update deprecated comment 2009-03-09 18:06:30 +00:00
David Rose d4c2c9858d SIMPLE_THREADS_NO_MUTEX -> LightMutex 2008-10-08 23:23:40 +00:00
David Rose 15f44d52b1 don't need all that hashtable output 2008-08-08 19:31:37 +00:00
David Rose fb9c56432a we are now using the modified BSD license 2008-05-28 18:37:20 +00:00
David Rose 1287bcf8fa better performance analysis 2007-07-24 19:04:33 +00:00
David Rose 9ffb5b84ae reorder static init timing 2007-07-23 17:36:38 +00:00
David Rose 15a52aa29f SimpleHashMap 2007-07-21 00:02:14 +00:00
David Rose 7b0bb21bbe fix RenderEffects cache problem 2007-07-16 18:02:28 +00:00
David Rose 68cd3322a9 better thread protection in reference counts, esp. TransformState etc. 2007-07-14 21:32:48 +00:00
David Rose 0df3c4849b name more mutexes 2007-06-21 20:07:59 +00:00
David Rose 5518abb092 temp uniquify-transforms etc. 2007-06-01 00:03:43 +00:00
David Rose 33a0c3af8e replacing CullBinOcclusionTest with PipeOcclusionCullTraverser, some linmath optimizations 2007-05-31 21:17:50 +00:00
David Rose 6f21efb679 fix compose between 2-d and 3-d mats 2006-11-13 18:22:25 +00:00
David Rose 1343e40e31 fix problem with non-normalized quat 2006-09-05 06:39:27 +00:00
David Rose b81fdf5f9d revisiting hashtables 2006-09-01 22:27:21 +00:00