Commit Graph

1431 Commits

Author SHA1 Message Date
rdb 9bd66baa1c Merge branch 'release/1.10.x' 2022-11-21 19:02:50 +01:00
rdb 8a48c3b711 pgraph: Remove recursive lock grab in `Light.set_color()`
Harmless, but unnecessary
2022-11-21 18:26:19 +01:00
rdb e961ea99ac Merge branch 'release/1.10.x' 2022-11-13 12:10:38 +01:00
rdb fe94e43bc4 pgraph: Fix issues with flattening TexMatrixAttrib
If multiple texture stages reference the same texcoord set, Panda wouldn't flatten the tex matrices even if they were the exact same

Fixes #1392
2022-11-13 11:11:32 +01:00
rdb 63017864ab pgraph: Support any number of attribs in `RenderState::make()` in Python 2022-11-07 18:17:48 +01:00
rdb 502607e450 pgraph: Make CullTraverserData.view_frustum settable from Python
Perhaps useful for in cull callbacks
2022-11-06 11:19:56 +01:00
rdb 9d73c9b786 pgraph: Fix a missed `std::move` opportunity in ScissorEffect 2022-11-06 11:19:04 +01:00
rdb fea66ea087 pgraph: Fix rare case of assertion in cull with ScissorEffect
Fixes #1344
2022-11-06 11:13:42 +01:00
rdb 91191a9d75 pgraph: Fix weird comment formatting in renderAttrib.h 2022-11-03 13:49:08 +01:00
rdb 9768cbb6c2 Merge branch 'release/1.10.x' 2022-10-25 16:44:24 +02:00
rdb fc8c07a949 pgraph: Remove unused vertices during premunge phase
Disable with premunge-remove-unused-vertices config var - let me know if causes issues for you, performance or otherwise, though!
2022-10-25 16:34:28 +02:00
rdb 4d5d7047af pgraph: Slight efficiency refactoring of `remove_unused_vertices()` 2022-10-25 16:34:28 +02:00
rdb cc24b5373d pgraph: Fix `PandaNode::_nested_vertices` not updating properly
The problem was that `PandaNode::update_cached()` queries the node's `_internal_vertices` *before* calling `get_internal_bounds()` (which is what actually calculates it).
2022-10-25 11:35:29 +02:00
rdb 6f9897fe49 pgraph: Remove deprecated `PandaNode::set_bound()` method
It's been deprecated with warning for so long, with easy replacement
2022-10-24 13:25:41 +02:00
rdb 14f08361ce Merge branch 'release/1.10.x' 2022-10-24 13:24:03 +02:00
rdb d4b8bb63ba pgraph: Proper deprecated marking for `PandaNode::set_bound()`
[skip ci]
2022-10-24 01:42:03 +02:00
rdb a44d26bfbf pgraph: Allow moving a NodePath into a WorkingNodePath efficiently 2022-10-22 17:04:00 +02:00
rdb 4d2a13537a pgraph: Mark `RenderState::unref()` as final
This will allow the compiler to devirtualize these calls
2022-10-22 16:53:39 +02:00
rdb f0446a6e9c Merge remote-tracking branch 'origin/release/1.10.x' 2022-10-22 16:51:57 +02:00
rdb d0b7574384 pgraph: Add missing `PandaNodePipelineReader::get_into_collide_mask()` 2022-10-22 15:49:40 +02:00
rdb 8bed85740f pgraph: Fix race condition when destructing/constructing NodePaths
Fixes #1366
2022-10-22 15:48:23 +02: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 a0be50c769 general: Fix assorted compiler warnings 2022-03-01 16:09:07 +01:00
rdb 7ccf38a948 pgraph: Remove obsolete PandaNodeChain class
Obsoleted by 6bc22d1822
2022-02-24 14:13: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 ba4173b32c pgraph: Add constexpr to CacheStats constructor 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 d7bbcfb0b7 pstats: Some collector reorganisation:
- "App:Show code:General" is gone, it was causing too much trouble
- Replace odd "Client::GuiObjects" with "Nodes:GUI"
- Regroup "Dirty PipelineCyclers" underneath "PipelineCyclers"
2022-02-17 12:48:36 +01:00
rdb 94570f20aa pgraph: Remove need for grabbing lock in RenderState destructor 2022-02-05 22:25:51 +01:00
rdb 40f54a766c Merge branch 'release/1.10.x' 2022-01-07 10:52:28 +01:00
rdb d66ef59ecc pgraph: Fix assertion in PythonLoaderFileType with debug Python build 2022-01-07 10:44:03 +01:00
rdb 7a2a83572c Merge branch 'release/1.10.x' 2022-01-05 08:50:11 +01:00
rdb d65ca1edd6 pgraph: Fix nodes with same key but diff value getting flattened
This was a regression from 69b3468b2c
2022-01-05 08:14:08 +01:00
rdb d46651c032 Merge branch 'release/1.10.x' 2022-01-04 16:35:19 +01:00
rdb 822d8ce4c4 Revert "pgraph: Don't dupe shared GeomVertexData when premunging Geom"
This reverts commit f058bad802.

Reverting because I realised the current behaviour is happening due to different mungers, which my fix ignores.

Unfixes #1185
2022-01-03 11:31:54 +01:00
rdb f8df5cac32 Merge branch 'release/1.10.x' 2022-01-02 20:11:41 +01:00
rdb 11d5a49d6f pgraph: Fix LightAttrib::replace_{on|off}_light()
Fixes #1153
2022-01-02 13:02:04 +01:00
rdb f058bad802 pgraph: Don't dupe shared GeomVertexData when premunging Geom
Fixes #1185
2022-01-02 11:45:33 +01:00
rdb a4d53a8ced pgraph: Fix unnecessary double state munge in prepare_scene()
[skip ci]
2021-12-13 13:23:38 +01:00
rdb 9e7ca63662 Add missing @since to docstrings of some new methods 2021-11-29 16:02:22 +01:00
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 fac6916151 pgraph: Major traversal optimizations
In particular, these optimize the traversal of nodes that are not in view, which are discarded more efficiently.
This change affects both the cull and collision traversers.
2021-11-16 17:30:33 +01:00
rdb 20e4704be2 Merge branch 'release/1.10.x' into incoming 2021-11-16 16:35:08 +01:00
rdb 32584f0a68 pgraph: Fix prepare_scene() not properly invoking the shader generator 2021-11-09 15:46:14 +01:00
rdb 0bc0709b72 Merge branch 'release/1.10.x' 2021-11-02 15:20:41 +01:00
rdb 04c6636744 pgraph: Add some missing properties to PlaneNode 2021-11-02 15:02:40 +01:00
rdb 1739cef318 Merge branch 'release/1.10.x' into incoming 2021-08-31 14:03:57 +02:00
rdb 2cc1633a77 pgraph: Clarify in find() documentation that this node not included 2021-08-30 14:03:17 +02:00
rdb 53741ffa13 pgraph: Implement new DepthBiasAttrib to replace DepthOffsetAttrib
Fixes #1157
2021-08-26 10:47:07 +02:00