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
@@ -149,4 +171,10 @@ Coverage rasterization and compositing are fused into a single compute dispatch.
149
171
150
172
Edge preparation (path flattening, fixed-point conversion, CSR construction) runs on the CPU. The `path.Flatten()` cost is shared with the CPU rasterizer pipeline. CSR construction is three passes over the edge set: count, prefix sum, scatter.
151
173
152
-
For the benchmark workload (7200x4800 US states GeoJSON polygon, 2px stroke, ~262K edges), NativeSurface performance is at parity with the CPU rasterizer (~28ms).
174
+
Both the CPU and GPU backends use per-band parallel stroke expansion — the CPU
175
+
via `DefaultRasterizer.RasterizeStrokeRows` and the GPU via
176
+
`StrokeExpandComputeShader`. Both share the same `StrokeEdgeFlags` enum and
177
+
`DashPathSplitter` (in the core project). The CPU backend fuses stroke expansion
178
+
directly into the rasterizer's band loop, while the GPU backend uses a separate
179
+
compute dispatch that writes outline edges into pre-allocated per-band output
180
+
slots sized by `ComputeOutlineEdgesPerCenterline()`.
0 commit comments