Aller au contenu
Dev & Open Source||2 sources

Kolkov porte en pur Go le rasteriseur par tuiles GPU de Vello

Kolkov a porté le rasteriseur par tuiles de Vello en Go pur pour gogpu/gg, offrant une rasterisation vectorielle scalable sur CPU. Cette implémentation de 6 700 lignes traite seulement les tuiles affectées, contrairement aux méthodes traditionnelles inefficaces sur haute résolution.
Kolkov, développeur de la bibliothèque gogpu/gg, a transposé en pur Go, en août 2024, le rasteriseur par tuiles GPU de Vello, créé par Raph Levien et l'équipe linebender, au sein du module tilecompute de son projet hébergé sur GitHub. Ce portage, comptant 6 700 lignes de code, reproduit fidèlement le pipeline de calcul GPU original de Vello, développé entre 2020 et 2023, et convertit les chemins vectoriels en valeurs de couverture par pixel dans des tuiles de 16x16 pixels. Cette implémentation permet un rendu graphique scalable sans dépendre d'un GPU. Les rasteriseurs traditionnels à balayage de lignes traitent une rangée de pixels à la fois, ce qui limite leur évolutivité : sur une toile 4K (3840x2160), ils parcourent 8,3 millions de pixels, même pour des formes simples comme un cercle. À l'inverse, les rasteriseurs par tuiles divisent la toile en petites sections et ne traitent que celles intersectées par les chemins vectoriels. Ainsi, un cercle dans un coin d'une toile 4K ne nécessite que 40 tuiles environ, rendant le processus bien plus efficace pour les graphiques vectoriels épars et complexes. Vello a pionnier cette approche via des shaders de calcul GPU, issus initialement du projet piet-gpu en 2020 et renommés Vello en 2022. Au-delà du pipeline original, Kolkov a également porté l'algorithme récent Sparse Strips de Vello, qui utilise des tuiles de 4x4 pixels depuis août 2024. Dans gogpu/gg, cela permet d'exécuter des commandes comme dc.DrawCircle(400, 300, 100) directement en Go pur, favorisant des applications graphiques serveur ou embarquées sans accélération matérielle. Le code source est disponible sur GitHub dans gogpu/gg (paquet internal/gpu/tilecompute). Les développeurs Go peuvent l'installer facilement via la commande go get github.com/gogpu/gg@latest et contribuer à la discussion. Ce portage ouvre des perspectives pour des bibliothèques graphiques en Go plus performantes et indépendantes du matériel, dans un écosystème où les outils vectoriels scalables restent rares.

2 sources

Article enrichi par l'IA

Cet article a été enrichi avec du contexte additionnel provenant des connaissances de l'IA (historique, comparaisons, données techniques). Les sources éditoriales restent la base factuelle.

Porting Vello's GPU Tile Rasterizer to Pure Go

Source éditoriale·Dev.to·28 févr. 2026

Background on tile-based vs scanline rasterization, Vello project evolution from piet-gpu, Go graphics libraries context

Contexte IA

Restez informé avec Morni

Créez un compte gratuit pour accéder aux articles complets, aux flux personnalisés et aux résumés générés par IA.