stripMaxAlphaColumnsPerDraw top-level constant

int const stripMaxAlphaColumnsPerDraw

Maximum alpha-texel span (u texcoord range) of one draw's strips.

Impeller does not pass drawVertices texcoords to the fragment shader as raw varyings the way Skia does: it renders the paint's shader into a snapshot texture covering the texcoord BOUNDS and samples that, so a batch whose global alpha indices ran to ~500k texels (a dense CAD sheet) asked for a 500k x 8 snapshot - over the 16384 max texture size - and drew NOTHING (silent blank strips on exactly the pages the router targets). Chunks therefore also split by alpha span, with texcoords REBASED to each chunk's first alpha texel (StripChunkData.alphaBase, added back by the shader's uBase uniform), keeping every snapshot within 8192 x 8. A single strip wider than the cap still draws alone (its span is bounded by the 16384 viewport clamp, inside the texture limit).

Implementation

const int stripMaxAlphaColumnsPerDraw = 8192;