已移除的批处理覆盖面
状态:仅保留为历史记录。运行时 batch 代码和 shader 已经移除。
这页记录被移除的 prototype 曾试图覆盖哪些内容。它在评估未来 rewrite 时仍有价值,因为它展示了上一版 surface area 是如何变得过大的。
已移除覆盖范围
text
RoundedBox / RoundedBoxEx:
solid fill
two-stop linear/radial/conic fill
multi-stop fill up to 5 stops
stripe/smoke pattern data
scalar radius
optional inner stroke
ChamferBox / ChamferBoxEx:
solid fill
two-stop linear/radial/conic fill
multi-stop fill up to 5 stops
stripe/smoke pattern data
scalar/table cuts
optional inner stroke
Line / LineEx:
solid line
two-stop gradient line
multi-stop gradient by data/LUT path
Poly / PolyEx:
convex fill-only solid
convex two-stop linear gradient
radial/conic/multi-stop through data texture
stripe/smoke pattern data
fill+stroke data path
stroke-only via line batch
ProgressBar / ProgressBarEx:
data texture batch
solid/two-stop/multi-stop horizontal fill
per-record track/fill/stroke/radius/value/padding/fx flags
pattern data path
SegmentBar / SegmentBarEx:
data texture batch
solid/two-stop horizontal fill
per-record fill/track/value/radius/segments/gap
pattern data path
active-cell decomposition through rounded rect batch
Ring / RingEx / Arc / ArcEx:
solid and gradient fill
pattern data path
stroke, inner glow, and expanded outer-glow passSector / SectorEx 在这个已移除 prototype 期间还不存在。当前 sector primitive 是 immediate ring-shader mode,应看当前 API 文档,而不是这份历史覆盖矩阵。
为什么移除
覆盖范围对真实 GMod UI 成本模型来说太宽。每个 family 都需要:
text
style-to-batch rule code
record allocation and normalization
ordering and overlap checks
flush barriers
data texture parameter packing
extra material status and fallback plumbing
shader variants
telemetry and devtoolsScoreboard profiling 中,这些成本每帧出现,而有用 batch draw 很少。Immediate path 更快也更简单。
当前覆盖策略
当前 MGFX shape rendering coverage 属于 immediate path。新的 API feature 应先实现为 immediate shader/fallback behavior。
未来 batch 实验不应试图恢复这张矩阵。先从一个经过实测的窄目标 pattern 开始,证明代表性 frame 中有真实收益后再增加覆盖面。