<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vega/src/symbols-gl.h, branch master</title>
<subtitle>Surface runtime projecting Pure views across pixel, terminal, CLI, and web.
</subtitle>
<id>http://git.yeowoo.org/vega/atom?h=master</id>
<link rel='self' href='http://git.yeowoo.org/vega/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/vega/'/>
<updated>2026-09-27T12:45:31Z</updated>
<entry>
<title>Name Vega's parts: lib/, surfaces/ and symbols/</title>
<updated>2026-09-27T12:45:31Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-27T12:45:31Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/vega/commit/?id=2920e389f624263efe515d9a5f33f6b822efff5e'/>
<id>urn:sha1:2920e389f624263efe515d9a5f33f6b822efff5e</id>
<content type='text'>
src/ held two parts, the surfaces that show modules to people and the
symbol format with its CPU and GPU drawing. As in Pure (design 009), top
level directories are now the parts, and the README says what each builds.

</content>
</entry>
<entry>
<title>Draw symbols on the GPU from the point table as it is</title>
<updated>2026-09-27T12:02:41Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-27T12:02:41Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/vega/commit/?id=ba76d3810713bb67569114e9458416df0f78687a'/>
<id>urn:sha1:ba76d3810713bb67569114e9458416df0f78687a</id>
<content type='text'>
OpenGL ES 3.1: the file's points go up as one storage buffer, each symbol
gets 16 row bands listing the curves they reach (cut by integer division of
doubled coordinates, so CPU and shader agree), and every pixel of a symbol's
box sums the exact area of its bands' curves, as vega_coverage does.
vega-symbols gpu draws every symbol against the CPU reference and times
1080p pages.

On the Pi 5's V3D it matches the reference (mean 0.001-0.1 levels, worst
4) but takes 142-757 ms a page, 83% of it in the area function. A sorting
network in registers made it 2.3x faster yet computes wrong rows in the
fragment stage with this driver, while the same code is exact in a compute
shader; so drawing each glyph size once into an atlas by compute comes next.

</content>
</entry>
</feed>
