Allocate dual-solver memory inside mj_projectConstraint, no more than required.

PiperOrigin-RevId: 714093658
Change-Id: Id7e710c5dffd24871019a72a7bf2aa6eb3f7a36e
This commit is contained in:
Yuval Tassa
2025-01-10 10:18:14 -08:00
committed by Copybara-Service
parent 2409a6e537
commit d4ca66a47b
2 changed files with 42 additions and 6 deletions
+3
View File
@@ -23,6 +23,9 @@ General
- The field ``mjData.qLDiagSqrtInv`` has been removed. This field is only required for the dual solvers. It is now
computed as-needed rather than unconditionally. Relatedly, added the corresponding argument to :ref:`mj_solveM2`.
- Reduced the memory footprint of the PGS solver's :ref:`A matrix<soDual>`. This was the last remaining dense-memory
allocation in MuJoCo, allowing for a significant reduction of the :ref:`dynamic memory allocation heuristic<CSize>`.
Bug fixes
^^^^^^^^^
- Fixed a bug in the box-sphere collider, depth was incorrect for deep penetrations (:github:issue:`2206`).