raylib performance — backend comparison
rlgl vs rlvk | GPU NVIDIA GeForce RTX 4090 (24138 MB) | Driver 32.0.15.9597 (NVIDIA 595.97) | OS Windows 11 (10.0.26100) | 3 runs × 10000 ms full speed
Green = best backend for that example/metric, red = worst. Frame time & FPS are the representative run. The rlsw (software rasterizer) column was removed from this archived page; regenerate on the capture machine for the three-backend view.
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 | 8343 | 22219 | 2.66x |
| textures_tiled_drawing | 10546 | 21916 | 2.08x |
| textures_particles_blending | 12125 | 23131 | 1.91x |
| shapes_starfield_effect | 12162 | 23847 | 1.96x |
| models_loading | 14949 | 24449 | 1.64x |
| models_heightmap_rendering | 16179 | 32250 | 1.99x |
| models_skybox_rendering | 15814 | 31476 | 1.99x |
| models_waving_cubes | 744 | 1219 | 1.64x |
| models_first_person_maze | 16732 | 31978 | 1.91x |
| core_3d_camera_free | 14332 | 24428 | 1.70x |
| shaders_basic_lighting | 10554 | 20334 | 1.93x |
| shaders_basic_pbr | 9776 | 17991 | 1.84x |
| shaders_mandelbrot_set | 9871 | 20344 | 2.06x |
| shaders_raymarching_rendering | 4127 | 4027 | 0.98x |
| performance_stress_test | 96 | 123 | 1.28x |
| performance_stress_test_direct | 59 | 58 | 0.98x |
| bench_idle | 17482 | 18806 | 1.08x |
| bench_drawcalls | 105 | 713 | 6.79x |
| bench_instanced | 6754 | 8933 | 1.32x |
Median frame time, ms (lower is better)
Median per-frame CPU wall time.| Example | rlgl | rlvk | rlvk speedup |
|---|
| shapes_basic_shapes | 0.111 | 0.039 | 2.85x |
| textures_tiled_drawing | 0.083 | 0.040 | 2.08x |
| textures_particles_blending | 0.076 | 0.040 | 1.90x |
| shapes_starfield_effect | 0.068 | 0.038 | 1.79x |
| models_loading | 0.057 | 0.037 | 1.54x |
| models_heightmap_rendering | 0.052 | 0.029 | 1.79x |
| models_skybox_rendering | 0.052 | 0.029 | 1.79x |
| models_waving_cubes | 1.324 | 0.806 | 1.64x |
| models_first_person_maze | 0.049 | 0.028 | 1.75x |
| core_3d_camera_free | 0.059 | 0.037 | 1.59x |
| shaders_basic_lighting | 0.082 | 0.045 | 1.82x |
| shaders_basic_pbr | 0.090 | 0.049 | 1.84x |
| shaders_mandelbrot_set | 0.090 | 0.045 | 2.00x |
| shaders_raymarching_rendering | 0.228 | 0.226 | 1.01x |
| performance_stress_test | 10.464 | 6.891 | 1.52x |
| performance_stress_test_direct | 16.900 | 17.219 | 0.98x |
| bench_idle | 0.048 | 0.040 | 1.20x |
| bench_drawcalls | 9.441 | 1.376 | 6.86x |
| bench_instanced | 0.117 | 0.096 | 1.22x |
Average frame time, ms (lower is better)
Mean per-frame wall time.| Example | rlgl | rlvk | rlvk speedup |
|---|
| shapes_basic_shapes | 0.120 | 0.045 | 2.67x |
| textures_tiled_drawing | 0.095 | 0.046 | 2.07x |
| textures_particles_blending | 0.082 | 0.043 | 1.91x |
| shapes_starfield_effect | 0.082 | 0.042 | 1.95x |
| models_loading | 0.067 | 0.041 | 1.63x |
| models_heightmap_rendering | 0.062 | 0.031 | 2.00x |
| models_skybox_rendering | 0.063 | 0.032 | 1.97x |
| models_waving_cubes | 1.345 | 0.821 | 1.64x |
| models_first_person_maze | 0.060 | 0.031 | 1.94x |
| core_3d_camera_free | 0.070 | 0.041 | 1.71x |
| shaders_basic_lighting | 0.095 | 0.049 | 1.94x |
| shaders_basic_pbr | 0.102 | 0.056 | 1.82x |
| shaders_mandelbrot_set | 0.101 | 0.049 | 2.06x |
| shaders_raymarching_rendering | 0.242 | 0.248 | 0.98x |
| performance_stress_test | 10.461 | 8.157 | 1.28x |
| performance_stress_test_direct | 16.936 | 17.238 | 0.98x |
| bench_idle | 0.057 | 0.053 | 1.08x |
| bench_drawcalls | 9.501 | 1.402 | 6.78x |
| bench_instanced | 0.148 | 0.112 | 1.32x |
CPU utilization, %
Average process CPU as percent of the whole machine.| Example | rlgl | rlvk | rlvk speedup |
|---|
| shapes_basic_shapes | 3.0 | 2.7 | 1.11x |
| textures_tiled_drawing | 3.4 | 2.8 | 1.21x |
| textures_particles_blending | 3.6 | 2.9 | 1.24x |
| shapes_starfield_effect | 3.2 | 2.9 | 1.10x |
| models_loading | 2.8 | 2.9 | 0.97x |
| models_heightmap_rendering | 2.9 | 3.0 | 0.97x |
| models_skybox_rendering | 2.7 | 2.9 | 0.93x |
| models_waving_cubes | 3.6 | 3.0 | 1.20x |
| models_first_person_maze | 2.9 | 3.0 | 0.97x |
| core_3d_camera_free | 2.8 | 3.0 | 0.93x |
| shaders_basic_lighting | 2.9 | 3.0 | 0.97x |
| shaders_basic_pbr | 3.0 | 2.8 | 1.07x |
| shaders_mandelbrot_set | 3.4 | 3.0 | 1.13x |
| shaders_raymarching_rendering | 1.3 | 0.6 | 2.17x |
| performance_stress_test | 4.1 | 2.8 | 1.46x |
| performance_stress_test_direct | 0.0 | 0.0 | — |
| bench_idle | 3.2 | 2.7 | 1.19x |
| bench_drawcalls | 3.4 | 3.0 | 1.13x |
| bench_instanced | 2.9 | 2.8 | 1.04x |
RAM, MB
Average working-set memory.| Example | rlgl | rlvk | rlvk speedup |
|---|
| shapes_basic_shapes | 65.2 | 88.6 | 0.74x |
| textures_tiled_drawing | 65.5 | 88.7 | 0.74x |
| textures_particles_blending | 63.7 | 88.5 | 0.72x |
| shapes_starfield_effect | 65.5 | 88.6 | 0.74x |
| models_loading | 76.7 | 101.7 | 0.75x |
| models_heightmap_rendering | 80.6 | 104.3 | 0.77x |
| models_skybox_rendering | 74.8 | 110.0 | 0.68x |
| models_waving_cubes | 80.7 | 102.8 | 0.79x |
| models_first_person_maze | 72.7 | 101.6 | 0.72x |
| core_3d_camera_free | 73.8 | 100.7 | 0.73x |
| shaders_basic_lighting | 73.9 | 109.5 | 0.67x |
| shaders_basic_pbr | 88.8 | 110.6 | 0.80x |
| shaders_mandelbrot_set | 69.4 | 109.4 | 0.63x |
| shaders_raymarching_rendering | 65.9 | 109.0 | 0.60x |
| performance_stress_test | 96.7 | 152.6 | 0.63x |
| performance_stress_test_direct | 65.5 | 106.8 | 0.61x |
| bench_idle | 72.4 | 88.4 | 0.82x |
| bench_drawcalls | 73.0 | 103.2 | 0.71x |
| bench_instanced | 77.5 | 110.5 | 0.70x |
GPU VRAM, MB
Average per-process video memory (DXGI).| Example | rlgl | rlvk | rlvk speedup |
|---|
| shapes_basic_shapes | 13.1 | 19.2 | 0.68x |
| textures_tiled_drawing | 15.1 | 19.4 | 0.78x |
| textures_particles_blending | 15.1 | 19.2 | 0.79x |
| shapes_starfield_effect | 13.1 | 19.2 | 0.68x |
| models_loading | 17.1 | 24.0 | 0.71x |
| models_heightmap_rendering | 17.3 | 22.2 | 0.78x |
| models_skybox_rendering | 19.1 | 25.4 | 0.75x |
| models_waving_cubes | 13.1 | 19.2 | 0.68x |
| models_first_person_maze | 15.1 | 19.9 | 0.76x |
| core_3d_camera_free | 13.1 | 19.2 | 0.68x |
| shaders_basic_lighting | 24.1 | 43.1 | 0.56x |
| shaders_basic_pbr | 49.1 | 69.4 | 0.71x |
| shaders_mandelbrot_set | 17.9 | 22.3 | 0.80x |
| shaders_raymarching_rendering | 13.1 | 21.2 | 0.62x |
| performance_stress_test | 57.9 | 100.1 | 0.58x |
| performance_stress_test_direct | 22.0 | 36.7 | 0.60x |
| bench_idle | 22.0 | 36.7 | 0.60x |
| bench_drawcalls | 22.0 | 36.9 | 0.60x |
| bench_instanced | 24.0 | 36.9 | 0.65x |