Splines: Skip the float U-line pre-tessellation on the exact Bezier path

The exact path evaluates its own columns, so the float SampleU results went
unused. Pursuit Force's frame dump replays 16% faster in the software
renderer.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Henrik RydgårdandClaude Opus 5.5 committed 2026-10-02 15:20:00 -06:00
1 parent 5de2a5070f
commit e6843b376f
1 file changed
+10 -8
+10 -8
View File
@@ -633,14 +633,16 @@ public:
const int index_u = surface.GetIndexU(patch_u, tile_u);
const Weight &wu = weights.u[index_u];
// Pre-tessellate U lines
tess_pos.SampleU(wu.basis);
if constexpr (sampleCol)
tess_col.SampleU(wu.basis);
if constexpr (sampleTex)
tess_tex.SampleU(wu.basis);
if constexpr (sampleNrm)
tess_nrm.SampleU(wu.deriv);
// Pre-tessellate U lines (the exact path evaluates its own columns).
if (!exactBezier) {
tess_pos.SampleU(wu.basis);
if constexpr (sampleCol)
tess_col.SampleU(wu.basis);
if constexpr (sampleTex)
tess_tex.SampleU(wu.basis);
if constexpr (sampleNrm)
tess_nrm.SampleU(wu.deriv);
}
for (int tile_v = start_v; tile_v <= surface.tess_v; ++tile_v) {
const int index_v = surface.GetIndexV(patch_v, tile_v);