Constrained GPU Mode
The renderer detects device capabilities at initialization and chooses high or constrained. Constrained mode keeps large full-resolution raster backgrounds out of memory. No host code change is required to use automatic detection.
Automatic detection
A device is classified as constrained when any of these checks applies:
- Device pixel ratio is at least 3.
- Touch input is available and the primary pointer is coarse.
- The GPU texture-upload benchmark takes more than 30 ms.
The benchmark uploads a 512 × 512 RGBA texture ten times and measures completion. Advertised maximum texture size alone does not determine the tier. These checks describe a rendering policy, rather than a guarantee for a particular phone model.
From Renderer 1.75, screen size does not affect the tier. Earlier versions also classify a device as constrained when its physical screen area exceeds 8 million pixels, which includes desktops with a 4K or large external display. On Renderer 1.74, such a desktop rendering in WebGL keeps the preview for backgrounds without detail tiles.
Background behavior
This table covers converted raster backgrounds. SVG rendering retains its existing image-loading behavior. Canvas2D is the default renderer. WebGL is used only when you set switchToWebGL: true and the browser supports it, so a default integration follows the Canvas2D row.
| Aspect | High tier | Constrained tier |
|---|---|---|
| Overview | Preview image | Preview image |
| WebGL zoom detail with tiles | Bounded detail from tiles | Bounded detail from tiles |
| WebGL zoom detail without tiles | Full-image fallback | Preview only |
| Canvas2D background | Full image | Largest image up to 8.4 million pixels |
With detail tiles, the renderer combines only the tiles needed for the visible region into a bounded detail crop. It disposes of the detail texture when zooming out and discards obsolete results during rapid movement.
From Renderer 1.74, a constrained device rendering in WebGL without detail tiles keeps the preview at every zoom level. Background details can therefore appear less sharp. The full image is not decoded to manufacture a crop on this path. High-tier rendering retains that fallback.
From Renderer 1.75, the Canvas2D renderer on a constrained device loads the largest background image of up to about 8.4 million pixels, the area of a 4096 × 2048 image: the full image when it fits, otherwise the largest reduced-resolution level generated for large backgrounds. When no image fits, it keeps the preview, which looks less sharp when zoomed in. The full-resolution image of a large venue is not decoded on this path.
Configuration
Omit gpuTier for automatic detection:
const renderer = new SeatmapBookingRenderer(container, {
publicKey: 'your-public-key',
});
Set gpuTier when your target device fleet needs a fixed policy:
const renderer = new SeatmapBookingRenderer(container, {
publicKey: 'your-public-key',
gpuTier: 'constrained',
});
The accepted values are high and constrained. An explicit setting takes precedence over the gpuTier URL parameter, which takes precedence over automatic detection. For a test override, append ?gpuTier=constrained to the page hosting the renderer. Forcing high also restores the full-resolution Canvas2D background on devices detected as constrained, so those devices decode the full image again.
Verification
Enable debug: true to inspect tier selection and background loading in the browser console. Check both tiled and preview-only charts on the physical devices your application supports. Desktop emulation cannot establish a phone’s memory behavior; forcing a tier is useful for exercising the rendering path.