You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 2a096f3
Browse filesBrowse the repository at this point in the historyBrowse files
Summary:
Pull Request resolved: #1570
`pymomentum.renderer`'s lighting coverage has been skipped on Windows because the CMake/SIMD build crashes with a stack overflow when running the Python renderer tests.
A previous attempt tried to fix this by forcing noinline boundaries and, in later versions, moving renderer calls onto a larger Windows thread stack. That still did not make the failing CI path reliable: the renderer remained dependent on MSVC stack layout for a deep Python -> pybind11 -> rasterizer call chain with large DrJit packet temporaries.
The heavy stack pressure is in the outer packetized triangle setup in `rasterizeMeshImp`, where MSVC has to materialize several DrJit packet matrix/vector temporaries (`Matrix3fP`, `Matrix3dP`, `Vector3fP`, `IntP`) before dispatching to the per-pixel rasterizer. This work is useful, but it is not the core pixel-loop SIMD path.
This change keeps the existing SIMD pixel loop, but for MSVC SIMD builds it processes the per-triangle setup scalarly:
- transform/project one triangle at a time
- compute the interpolation matrix, inverse, bounds, normals, and texture attributes scalarly
- call the existing `rasterizeOneTriangle` implementation so the pixel loop still uses DrJit SIMD
Non-MSVC builds keep the existing packetized triangle setup. A `MOMENTUM_RASTERIZER_FORCE_SCALAR_OUTER` compile-time knob is included so the fallback path can be built and tested on non-Windows machines.
With the Windows-specific renderer issue addressed, this also removes the Windows skips from the renderer texture-coordinate tests and stops excluding `test_lighting` from the Windows GitHub pixi and weekly workflows.
Reviewed By: cstollmeta
Differential Revision: D111848283
fbshipit-source-id: 3fe6075708a6115ec9ed7dac39b9b640e9a29c48
Copy file name to clipboardExpand all lines: .github/workflows/weekly.yml
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -153,5 +153,5 @@ jobs:
153
153
pixi run -e py312-cuda129 python -c "
154
154
import os, subprocess, sys
155
155
os.environ['MOMENTUM_MODELS_PATH'] = 'momentum/'
156
-
sys.exit(subprocess.call(['pytest', 'pymomentum/test/', '-k', 'not ((TestFBXIO and (test_save_motions_with_joint_params or test_save_motions_with_model_params)) or test_lighting)']))
156
+
sys.exit(subprocess.call(['pytest', 'pymomentum/test/', '-k', 'not (TestFBXIO and (test_save_motions_with_joint_params or test_save_motions_with_model_params))']))
0 commit comments