Skip to content

Live GPU Tests

These four tests run in the tab and print live FPS. Each one loads a different part of the graphics pipeline. Volume Shader ray marches a Mandelbulb. The 3D test draws meshes and lights. The shader test loops fragment math. The VRAM test samples large textures. Start the one that matches the question you have. Do not average the four scores.

Volume ray march

Volume Shader

A Mandelbulb drawn with ray marching. Live FPS on the canvas. The test this site is named for.

Continuous. Simple, Standard, Advanced, Extreme

Raster 3D

3D rendering test

A dense tetrahedra grid with lighting and extra draws each frame. Closest match to a general graphics card check.

Timed. Low, Medium, High, Ultra

Fragment shading

Shader test

Fullscreen procedural noise. Raises fragment work without a Mandelbulb and without a mesh pile.

Continuous. Low to Ultra

Texture bandwidth

VRAM texture test

Uploads checker atlases and samples them every frame. Reports atlas size we built, not the card's true VRAM.

Continuous. Atlas size and sample taps

How the four tests differ

A GPU has more than one bottleneck. Vertex work, rasterization, fragment math, and texture sampling can fail independently. One FPS number from one scene cannot stand in for all four. That is why these tests exist as separate canvases instead of one slider on Volume Shader.

Volume Shader spends almost all of its time in a per pixel ray march. The kernel iterates a Mandelbulb until it finds a surface. Mesh count is not the story. If Standard looks easy and Extreme still holds 60 FPS, the card has headroom on this volume load. If Extreme falls under 20 FPS on a phone, the SoC is working. That is a valid result.

The 3D test transforms thousands of tetrahedra, lights them, and draws the scene more than once per frame. Vertex throughput, rasterization, and some fragment lighting show up here. Use it when you want a timed score and a verdict (headroom, holding, strained, overloaded). Medium is the number to write down. Ultra exists so a 120 Hz display is not the whole story.

The shader test fills the screen with fractal Brownian motion: stacked noise octaves and warps. Almost every pixel runs the same arithmetic. If this canvas drops while the 3D test holds, fragment shading is the weaker part of the chip for this kind of work. It is not the Volume Shader kernel. The look is a moving field on purpose.

The VRAM test uploads several atlases and samples them with dependent taps. That leans on texture cache and bandwidth. The megabyte figure is the atlas we allocated. It is not GPU-Z capacity and it is not proof of how many gigabytes the board has. A hitch when you step from Medium to Ultra is more useful than the headline bytes.

Which test to open

Open Volume Shader for the classic clip, a visual GPU check, or a clip you already know from phones. Open the 3D rendering test for a general graphics check with a timer. Open the shader test if you want fragment pressure without ray marching. Open the VRAM test if hitch looks like sampling or cache, not draw count.

If you want the chip to stay busy until heat shows, run Volume Shader at Extreme or the 3D test at Ultra for one to two minutes. How to hold that load is on GPU stress test. If you want two phones or two PCs compared fairly, match the same URL, the same level, and cooled devices. How to lock those variables is on GPU benchmark.

How to read FPS here

FPS is frames of this scene, in this browser, at this complexity. A 60 Hz or 120 Hz panel will not show more frames than it refreshes. On the 3D, shader, and VRAM tests the HUD labels that as headroom. Raise the level until FPS falls. That drop is the GPU. Volume Shader prints the counter on the canvas. Standard is the usual compare point for the volume test. Medium is the usual compare point for the other three.

Heat, battery saver, and extra tabs change the number as much as the chip. Cool the device, turn power saving off, and close leftover apps before you treat a score as a verdict. If a canvas never appears, try another browser or check that WebGL is on before you assume the GPU is gone. A longer read on the counter is what FPS means.