I've been having a lot of fun recently building custom kernels on a fresh install of Fedora 37 and decided to see how two of the current leaders - XanMod and Zen+, stacked up against Fedora's native kernel.


Want to say thanks for an ad-free, subscription free experience and top-notch content?

Buy me a coffeeBuy me a coffee

Hardware specs

For my test, I used a simple i5 laptop with integrated graphics. Here are the specs:

CPU: Intel i5-10210U (8) @ 4.200GHz
GPU: CometLake-U GT2 (integrated UHD Graphics)
Memory: 5388MiB / 7716MiB

Benchmarking software

For my test software, I used the all new Geekbench 6 to measure overall performance and GLMark2 to measure graphical capabilities.

Kernels tested

  • Fedora 37 kernel version 6.1.11
  • XanMod kernel version 6.1.11
  • Zen+ kernel version 6.1.12

Benchmark results

I imagine that repeating these benchmarks on my custom built Ryzen 9 machine with a dedicated NVIDIA graphics card might produce more of a disparity in performance between kernels, but I could also be wrong. As the results stand, I saw mostly small to negligible performance differences between each kernel. However, for those looking to squeeze every last ounce of performance out of their hardware, the tests suggest that Zen+ has a slight edge in graphical and single-core performance, while XanMod had the best multi-core performance.

Zen+ versus Fedora 37 Kernel versus Xanmod Benchmarks

While the custom kernels did eek out just a bit more performance from my hardware, it's worth noting that Fedora's kernel was never far behind, so hats off to Fedora for building such a solid native kernel for use right out of the box.

GLMark2 Raw Data

For those interested, I'm including the raw scores from the GLMark2 tests (below).

=======================================================
    glmark2 2023.01 FEDORA KERNEL VER 6.1.11
=======================================================
    OpenGL Information
    GL_VENDOR:      Intel
    GL_RENDERER:    Mesa Intel(R) UHD Graphics (CML GT2)
    GL_VERSION:     4.6 (Compatibility Profile) Mesa 22.3.5
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 3048 FrameTime: 0.328 ms
[build] use-vbo=true: FPS: 3868 FrameTime: 0.259 ms
[texture] texture-filter=nearest: FPS: 3633 FrameTime: 0.275 ms
[texture] texture-filter=linear: FPS: 3609 FrameTime: 0.277 ms
[texture] texture-filter=mipmap: FPS: 3670 FrameTime: 0.273 ms
[shading] shading=gouraud: FPS: 3566 FrameTime: 0.280 ms
[shading] shading=blinn-phong-inf: FPS: 3514 FrameTime: 0.285 ms
[shading] shading=phong: FPS: 3151 FrameTime: 0.317 ms
[shading] shading=cel: FPS: 3048 FrameTime: 0.328 ms
[bump] bump-render=high-poly: FPS: 1888 FrameTime: 0.530 ms
[bump] bump-render=normals: FPS: 3879 FrameTime: 0.258 ms
[bump] bump-render=height: FPS: 3752 FrameTime: 0.267 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 2578 FrameTime: 0.388 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 1144 FrameTime: 0.874 ms
[pulsar] light=false:quads=5:texture=false: FPS: 3658 FrameTime: 0.273 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 1178 FrameTime: 0.850 ms
[desktop] effect=shadow:windows=4: FPS: 2258 FrameTime: 0.443 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 699 FrameTime: 1.432 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 767 FrameTime: 1.304 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 745 FrameTime: 1.344 ms
[ideas] speed=duration: FPS: 3166 FrameTime: 0.316 ms
[jellyfish] <default>: FPS: 2643 FrameTime: 0.378 ms
[terrain] <default>: FPS: 180 FrameTime: 5.561 ms
[shadow] <default>: FPS: 1964 FrameTime: 0.509 ms
[refract] <default>: FPS: 302 FrameTime: 3.314 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 2837 FrameTime: 0.353 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 2894 FrameTime: 0.346 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 2804 FrameTime: 0.357 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 2876 FrameTime: 0.348 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 2949 FrameTime: 0.339 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 2885 FrameTime: 0.347 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 2854 FrameTime: 0.350 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 2874 FrameTime: 0.348 ms
=======================================================
                                  glmark2 Score: 2571 
=======================================================
=======================================================
    glmark2 2023.01 ZEN+ VER 6.1.12
=======================================================
    OpenGL Information
    GL_VENDOR:      Intel
    GL_RENDERER:    Mesa Intel(R) UHD Graphics (CML GT2)
    GL_VERSION:     4.6 (Compatibility Profile) Mesa 22.3.5
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 3027 FrameTime: 0.330 ms
[build] use-vbo=true: FPS: 3818 FrameTime: 0.262 ms
[texture] texture-filter=nearest: FPS: 3583 FrameTime: 0.279 ms
[texture] texture-filter=linear: FPS: 3622 FrameTime: 0.276 ms
[texture] texture-filter=mipmap: FPS: 3700 FrameTime: 0.270 ms
[shading] shading=gouraud: FPS: 3502 FrameTime: 0.286 ms
[shading] shading=blinn-phong-inf: FPS: 3402 FrameTime: 0.294 ms
[shading] shading=phong: FPS: 3151 FrameTime: 0.317 ms
[shading] shading=cel: FPS: 3057 FrameTime: 0.327 ms
[bump] bump-render=high-poly: FPS: 1890 FrameTime: 0.529 ms
[bump] bump-render=normals: FPS: 4015 FrameTime: 0.249 ms
[bump] bump-render=height: FPS: 3827 FrameTime: 0.261 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 2593 FrameTime: 0.386 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 1138 FrameTime: 0.879 ms
[pulsar] light=false:quads=5:texture=false: FPS: 3693 FrameTime: 0.271 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 1156 FrameTime: 0.865 ms
[desktop] effect=shadow:windows=4: FPS: 2249 FrameTime: 0.445 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 709 FrameTime: 1.412 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 770 FrameTime: 1.300 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 743 FrameTime: 1.348 ms
[ideas] speed=duration: FPS: 3175 FrameTime: 0.315 ms
[jellyfish] <default>: FPS: 2611 FrameTime: 0.383 ms
[terrain] <default>: FPS: 181 FrameTime: 5.547 ms
[shadow] <default>: FPS: 1979 FrameTime: 0.505 ms
[refract] <default>: FPS: 306 FrameTime: 3.275 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 2913 FrameTime: 0.343 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 2885 FrameTime: 0.347 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 2844 FrameTime: 0.352 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 2858 FrameTime: 0.350 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 2947 FrameTime: 0.339 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 2874 FrameTime: 0.348 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 2883 FrameTime: 0.347 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 2898 FrameTime: 0.345 ms
=======================================================
                                  glmark2 Score: 2574 
=======================================================
=======================================================
    glmark2 2023.01 XANMOD VER 6.1.11
=======================================================
    OpenGL Information
    GL_VENDOR:      Intel
    GL_RENDERER:    Mesa Intel(R) UHD Graphics (CML GT2)
    GL_VERSION:     4.6 (Compatibility Profile) Mesa 22.3.5
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 3035 FrameTime: 0.330 ms
[build] use-vbo=true: FPS: 3865 FrameTime: 0.259 ms
[texture] texture-filter=nearest: FPS: 3620 FrameTime: 0.276 ms
[texture] texture-filter=linear: FPS: 3663 FrameTime: 0.273 ms
[texture] texture-filter=mipmap: FPS: 3671 FrameTime: 0.272 ms
[shading] shading=gouraud: FPS: 3478 FrameTime: 0.288 ms
[shading] shading=blinn-phong-inf: FPS: 3392 FrameTime: 0.295 ms
[shading] shading=phong: FPS: 3144 FrameTime: 0.318 ms
[shading] shading=cel: FPS: 3043 FrameTime: 0.329 ms
[bump] bump-render=high-poly: FPS: 1910 FrameTime: 0.524 ms
[bump] bump-render=normals: FPS: 3886 FrameTime: 0.257 ms
[bump] bump-render=height: FPS: 3722 FrameTime: 0.269 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 2593 FrameTime: 0.386 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 1139 FrameTime: 0.878 ms
[pulsar] light=false:quads=5:texture=false: FPS: 3663 FrameTime: 0.273 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 1174 FrameTime: 0.852 ms
[desktop] effect=shadow:windows=4: FPS: 2277 FrameTime: 0.439 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 715 FrameTime: 1.399 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 775 FrameTime: 1.291 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 745 FrameTime: 1.344 ms
[ideas] speed=duration: FPS: 3172 FrameTime: 0.315 ms
[jellyfish] <default>: FPS: 2624 FrameTime: 0.381 ms
[terrain] <default>: FPS: 181 FrameTime: 5.536 ms
[shadow] <default>: FPS: 1972 FrameTime: 0.507 ms
[refract] <default>: FPS: 306 FrameTime: 3.271 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 2819 FrameTime: 0.355 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 2921 FrameTime: 0.342 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 2824 FrameTime: 0.354 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 2840 FrameTime: 0.352 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 2947 FrameTime: 0.339 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 2890 FrameTime: 0.346 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 2837 FrameTime: 0.353 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 2897 FrameTime: 0.345 ms
=======================================================
                                  glmark2 Score: 2566 
=======================================================
Share this post