raylib performance — backend comparison
rlgl vs rlvk | GPU AMD Radeon RX 7900 XTX (RADV NAVI31) (24560 MB) | Driver radv Mesa 26.1.6-arch1.1 | OS Arch Linux (kernel 7.1.5-arch1-2) | 3 runs × 10000 ms full speed
Green = best backend for that example/metric, red = worst. Frame time & FPS are the representative run; software (rlsw) has no GPU so its VRAM is ~0. Shader-heavy examples may not execute custom shaders on the software backend.
speedup = rlvk relative to rlgl, per metric direction (>1x favors rlvk); ° on a ratio means at least one side sits at its floor. Column injected into this archived report; regenerating on the capture machine rebuilds it from the rini data.
Frames per second (higher is better)
Sustained FPS at full speed (uncapped).| Example | rlgl | rlvk | rlvk speedup |
|---|
| shapes_basic_shapes | 9549 | 10977 | 1.15x |
| textures_tiled_drawing | 9519 | 10951 | 1.15x |
| textures_particles_blending | 9423 | 10864 | 1.15x |
| shapes_starfield_effect | 9445 | 10952 | 1.16x |
| models_loading | 9465 | 10906 | 1.15x |
| models_heightmap_rendering | 9480 | 11001 | 1.16x |
| models_skybox_rendering | 5406 | 5069 | 0.94x |
| models_waving_cubes | 501 | 1203 | 2.40x |
| models_first_person_maze | 5420 | 5071 | 0.94x |
| core_3d_camera_free | 5398 | 5053 | 0.94x |
| shaders_basic_lighting | 8946 | 10848 | 1.21x |
| shaders_basic_pbr | 8453 | 10736 | 1.27x |
| shaders_mandelbrot_set | 5058 | 4621 | 0.91x |
| shaders_raymarching_rendering | 2386 | 2500 | 1.05x |
| performance_stress_test | 72 | 162 | 2.25x |
| performance_stress_test_direct | 42 | 44 | 1.05x |
| bench_idle | 9509 | 10950 | 1.15x |
| bench_drawcalls | 184 | 1519 | 8.26x |
| bench_instanced | 7036 | 9691 | 1.38x |
Median frame time, ms (lower is better)
Median per-frame CPU wall time.| Example | rlgl | rlvk | rlvk speedup |
|---|
| shapes_basic_shapes | 0.095 | 0.057 | 1.67x |
| textures_tiled_drawing | 0.092 | 0.054 | 1.70x |
| textures_particles_blending | 0.094 | 0.057 | 1.65x |
| shapes_starfield_effect | 0.094 | 0.055 | 1.71x |
| models_loading | 0.096 | 0.054 | 1.78x |
| models_heightmap_rendering | 0.094 | 0.057 | 1.65x |
| models_skybox_rendering | 0.179 | 0.191 | 0.94x |
| models_waving_cubes | 1.969 | 0.826 | 2.38x |
| models_first_person_maze | 0.179 | 0.191 | 0.94x |
| core_3d_camera_free | 0.180 | 0.191 | 0.94x |
| shaders_basic_lighting | 0.106 | 0.068 | 1.56x |
| shaders_basic_pbr | 0.111 | 0.071 | 1.56x |
| shaders_mandelbrot_set | 0.197 | 0.215 | 0.92x |
| shaders_raymarching_rendering | 0.397 | 0.400 | 0.99x |
| performance_stress_test | 13.781 | 6.177 | 2.23x |
| performance_stress_test_direct | 23.519 | 22.659 | 1.04x |
| bench_idle | 0.075 | 0.059 | 1.27x |
| bench_drawcalls | 5.433 | 0.650 | 8.36x |
| bench_instanced | 0.136 | 0.093 | 1.46x |
Average frame time, ms (lower is better)
Mean per-frame wall time.| Example | rlgl | rlvk | rlvk speedup |
|---|
| shapes_basic_shapes | 0.105 | 0.091 | 1.15x |
| textures_tiled_drawing | 0.105 | 0.091 | 1.15x |
| textures_particles_blending | 0.106 | 0.092 | 1.15x |
| shapes_starfield_effect | 0.106 | 0.091 | 1.16x |
| models_loading | 0.106 | 0.092 | 1.15x |
| models_heightmap_rendering | 0.105 | 0.091 | 1.15x |
| models_skybox_rendering | 0.185 | 0.197 | 0.94x |
| models_waving_cubes | 1.995 | 0.831 | 2.40x |
| models_first_person_maze | 0.184 | 0.197 | 0.93x |
| core_3d_camera_free | 0.185 | 0.198 | 0.93x |
| shaders_basic_lighting | 0.112 | 0.092 | 1.22x |
| shaders_basic_pbr | 0.118 | 0.093 | 1.27x |
| shaders_mandelbrot_set | 0.198 | 0.216 | 0.92x |
| shaders_raymarching_rendering | 0.419 | 0.400 | 1.05x |
| performance_stress_test | 13.850 | 6.172 | 2.24x |
| performance_stress_test_direct | 23.553 | 22.754 | 1.04x |
| bench_idle | 0.105 | 0.091 | 1.15x |
| bench_drawcalls | 5.449 | 0.658 | 8.28x |
| bench_instanced | 0.142 | 0.103 | 1.38x |
CPU utilization, %
Average process CPU as percent of the whole machine.| Example | rlgl | rlvk | rlvk speedup |
|---|
| shapes_basic_shapes | 4.0 | 4.4 | 0.91x |
| textures_tiled_drawing | 3.4 | 4.2 | 0.81x |
| textures_particles_blending | 3.8 | 4.3 | 0.88x |
| shapes_starfield_effect | 3.7 | 4.3 | 0.86x |
| models_loading | 3.9 | 4.1 | 0.95x |
| models_heightmap_rendering | 3.4 | 4.0 | 0.85x |
| models_skybox_rendering | 2.3 | 2.5 | 0.92x |
| models_waving_cubes | 6.2 | 6.3 | 0.98x |
| models_first_person_maze | 2.1 | 2.5 | 0.84x |
| core_3d_camera_free | 2.6 | 2.6 | 1.00x |
| shaders_basic_lighting | 5.9 | 5.2 | 1.13x |
| shaders_basic_pbr | 6.0 | 5.3 | 1.13x |
| shaders_mandelbrot_set | 2.4 | 2.1 | 1.14x |
| shaders_raymarching_rendering | 1.0 | 1.2 | 0.83x |
| performance_stress_test | 7.4 | 6.2 | 1.19x |
| performance_stress_test_direct | 0.1 | 0.1 | 1.00x |
| bench_idle | 2.7 | 3.8 | 0.71x |
| bench_drawcalls | 9.9 | 6.3 | 1.57x |
| bench_instanced | 5.7 | 6.1 | 0.93x |
RAM, MB
Average working-set memory.| Example | rlgl | rlvk | rlvk speedup |
|---|
| shapes_basic_shapes | 163.7 | 114.6 | 1.43x |
| textures_tiled_drawing | 161.4 | 114.4 | 1.41x |
| textures_particles_blending | 163.7 | 114.8 | 1.43x |
| shapes_starfield_effect | 161.3 | 114.6 | 1.41x |
| models_loading | 170.3 | 115.7 | 1.47x |
| models_heightmap_rendering | 164.7 | 117.9 | 1.40x |
| models_skybox_rendering | 172.6 | 159.9 | 1.08x |
| models_waving_cubes | 161.1 | 114.2 | 1.41x |
| models_first_person_maze | 162.4 | 114.9 | 1.41x |
| core_3d_camera_free | 163.4 | 114.3 | 1.43x |
| shaders_basic_lighting | 162.2 | 150.7 | 1.08x |
| shaders_basic_pbr | 174.2 | 151.0 | 1.15x |
| shaders_mandelbrot_set | 161.2 | 150.8 | 1.07x |
| shaders_raymarching_rendering | 162.1 | 153.4 | 1.06x |
| performance_stress_test | 162.9 | 151.3 | 1.08x |
| performance_stress_test_direct | 166.1 | 150.6 | 1.10x |
| bench_idle | 161.3 | 114.7 | 1.41x |
| bench_drawcalls | 163.8 | 114.6 | 1.43x |
| bench_instanced | 163.4 | 150.9 | 1.08x |
GPU VRAM, MB
Average per-process video memory.| Example | rlgl | rlvk | rlvk speedup |
|---|
| shapes_basic_shapes | 40.7 | 23.2 | 1.75x |
| textures_tiled_drawing | 40.7 | 23.4 | 1.74x |
| textures_particles_blending | 40.7 | 23.2 | 1.75x |
| shapes_starfield_effect | 40.7 | 23.2 | 1.75x |
| models_loading | 46.7 | 27.9 | 1.67x |
| models_heightmap_rendering | 48.9 | 26.2 | 1.87x |
| models_skybox_rendering | 42.8 | 29.2 | 1.47x |
| models_waving_cubes | 36.7 | 23.2 | 1.58x |
| models_first_person_maze | 44.7 | 23.7 | 1.89x |
| core_3d_camera_free | 36.7 | 23.2 | 1.58x |
| shaders_basic_lighting | 58.5 | 47.7 | 1.23x |
| shaders_basic_pbr | 89.6 | 73.4 | 1.22x |
| shaders_mandelbrot_set | 42.3 | 26.8 | 1.58x |
| shaders_raymarching_rendering | 38.7 | 23.2 | 1.67x |
| performance_stress_test | 103.7 | 114.5 | 0.91x |
| performance_stress_test_direct | 46.7 | 36.5 | 1.28x |
| bench_idle | 44.7 | 36.5 | 1.22x |
| bench_drawcalls | 46.7 | 36.5 | 1.28x |
| bench_instanced | 50.7 | 36.5 | 1.39x |