All Topics
All Topics
Technology
Technology
AI
AI
Business
Business
Entertainment
Entertainment
News
News
Programming
Programming
Security
Security
Science
Science
Design
Design
Environment
Environment
Finance
Finance
Crypto
Crypto
Politics
Politics
Sports
Sports
Education
Education
Gaming
Gaming
Art
Art
Music
Music
Health
Health
Books
Books
Food
Food
Travel
Travel
Personal
Personal
Bluesky
Twitter

How Microlink speeds up WebGL screenshots on GPU-less servers with Mesa llvmpipe

By

Microlink

5d ago· 8 min readenInsight

Summary

Microlink's browser fleet runs on GPU-less Linux nodes, making WebGL rendering a major bottleneck. The article explains how Chrome delegates WebGL to ANGLE, which translates it to OpenGL or Vulkan, and how the choice of CPU-based renderer matters: SwiftShader (a software rasterizer) is slow, while Mesa's llvmpipe (which JIT-compiles the graphics pipeline using LLVM) is significantly faster — reducing screenshot time from 24 seconds to 6 seconds. The piece also covers the Xvfb surface requirement and a silent 2D fallback that must be guarded against in CI.

Source

Hacker NewsHow Microlink speeds up WebGL screenshots on GPU-less servers with Mesa llvmpipemicrolink.io

Key quotes

· 5 pulled
WebGL is everywhere now: 3D maps, seat charts, product configurators, shader-art landing pages.
Our browser fleet runs on commodity Linux nodes with no graphics card and no /dev/dri. Cheaper, simpler, fewer drivers to babysit.
But WebGL is a GPU API, so without one, something has to emulate it on the CPU.
Which something was the difference between a 24-second screenshot and a 6-second one.
Chrome doesn't render WebGL. ANGLE does.
Snippet from the RSS feed
A deep dive into how Microlink renders WebGL screenshots on a GPU-less fleet: the ANGLE delegation chain, why SwiftShader is slow, how Mesa llvmpipe JIT-compiles the pipeline with LLVM, the Xvfb surface requirement, and the silent 2D fallback we guard aga

You might also wanna read

Comments

Sign in to join the conversation.

No comments yet. Be the first.