3D Render Test: see how your GPU handles real-time ray marching

This is not a spinning cube. Every pixel fires a ray into a 3D volume and steps through it up to a thousand times per frame, evaluating the Mandelbulb formula at each step. That is why a scene with no textures and no triangles can bring a GPU to its knees, and why it is a fair test of shader throughput.

30 seconds. Phones start on Low.

How the render works

For each of the roughly one million pixels on the canvas, the fragment shader shoots a ray from the camera into the scene and walks along it in small steps. At every step it evaluates the Mandelbulb distance formula to ask "am I inside the shape yet?". When the answer flips, it refines the hit point with a few bisection steps and shades it.

The quality preset sets how many times the Mandelbulb formula iterates at each step. Low is two iterations, Ultra is twelve. Each extra iteration multiplies the arithmetic for every step of every ray, which is why Ultra is roughly six times the work of Low on the same pixel count.

Shading is a simple reflection model with a colour taken from the distance to the centre, which is where the rainbow surface comes from. There is no texture lookup anywhere in the pipeline; the whole image is computed.

What the render stresses

Fragment shader throughput

Almost all the work is floating-point maths inside the pixel shader: powers, trig and square roots, hundreds of times per pixel. This is the same unit games lean on for lighting and post-processing.

Loops and branches

Rays exit early when they hit the surface or leave the volume, so neighbouring pixels do different amounts of work. GPUs that handle divergent branches well keep their FPS; others stall.

Fill rate at 1024 × 1024

The canvas is a fixed square of about one million pixels, scaled to fit your window. That keeps results comparable between a phone and a 4K monitor.

What it does not stress

No single test covers a GPU. These parts are idle here.

Part of the GPUWhy it is idleWhere to test it
Vertex and geometry unitsThe scene is two triangles covering the screen. All the shape comes from the pixel shader.A polygon-heavy game or 3DMark
Texture units and VRAM bandwidthNo textures are sampled and nothing lives in memory beyond the shader itself.A texture or VRAM test
Video decodeNo video is played.A 4K video playback test
Temperature and clocksBrowsers cannot read sensors.HWiNFO, GPU-Z, MSI Afterburner

Interpreting the number

Rough expectations on the Medium preset. Your screen's refresh rate caps the top end.

If you seeIt usually means
Average pinned at your refresh rate, lowest close behindThe GPU has headroom. Move up a preset to find its limit.
Average well below the cap, lowest close to averageA steady, honest measure of this GPU on this preset.
Average fine, lowest much lowerStutter. Something interrupted the run: background tabs, a notification, or the first seconds of throttling.
Single digits on a dedicated GPUThe browser is probably on the integrated GPU, or hardware acceleration is off.

Tips for a clean run

  • Close other tabs that play video or run WebGL; they share the GPU.
  • Leave the window size alone during the run. The canvas is rescaled on resize, which costs a frame.
  • Do not drag or zoom during the timed test. The camera is locked for the 30 seconds so every run uses the same view.
  • Run it twice. The first run includes shader compilation on some drivers.

3D render test FAQ

Common questions about what this rendering test measures.

1

Is this a real 3D benchmark?

It is a real GPU workload, but a narrow one: it measures pixel-shader throughput and branch handling, not geometry or memory. Treat it as one axis of GPU performance, not a replacement for a game benchmark.

2

Why are there no textures?

So the result depends on the GPU's maths units alone. Adding textures would mix memory bandwidth into the number and make it harder to interpret.

3

What is a Mandelbulb?

A three-dimensional relative of the Mandelbrot set. Its surface is defined by a formula rather than a mesh, so the GPU has to compute where the surface is for every ray. That is what makes it a good stress scene.

4

Why is the canvas square?

A fixed 1024 × 1024 canvas means every device renders the same number of pixels, so a phone and a desktop can be compared on the same preset.

5

Does my monitor resolution change the score?

No. The canvas is always 1024 × 1024 and is scaled to fit. Your screen's refresh rate does matter: it caps the FPS.

6

Why does rotating the view change the FPS?

Rays that hit the surface early stop early. Views where more of the screen is empty space take more steps and run slower. That is why the timed test locks the camera.