Constrained GPU Mode

The renderer detects device capabilities at initialization and chooses high or constrained. Constrained mode caps canvas dimensions and avoids decoding a full raster background on the WebGL path when detail tiles are unavailable. 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, or physical screen area exceeds 8 million pixels.
  • 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.

Background behavior

This table covers converted raster backgrounds in WebGL. SVG rendering and Canvas2D fallback retain their existing image-loading behavior.

Aspect High tier Constrained tier
Maximum canvas dimension No tier-specific cap 2048 px
Overview Preview image Preview image
Zoom detail with tiles Bounded detail from tiles Bounded detail from tiles
Zoom detail without tiles Full-image fallback Preview only

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 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.

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.

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.

Type a feature, setting, endpoint or SDK method.