Skip to content

About RHI in Axmol v3

halx99 edited this page Nov 27, 2025 · 26 revisions

About the upcoming Axmol v3

The v3 of Axmol Engine is still in active development, so if you need a stable release that works out of box then please use v2 versions. But if you want to play around with v3 and its new features, then this page will help you.

Roadmap: https://github.com/axmolengine/axmol/discussions/2650


Future RHI (may be implemented)

  • axmol/rhi/d3d12 (start working since Nov 22, 2025)

RHI list

  • axmol/rhi/d3d12 (since Nov 27, 2025)
  • axmol/rhi/vulkan (since Nov, 2025)
  • axmol/rhi/d3d11 (since Aug, 2025)
  • axmol/rhi/opengl
  • axmol/rhi/metal

D3D11 in v3

On Aug. 9, 2025, the works for developing D3D11 backend for Axmol started; as of now, 99% of cpp-tests now pass under the new D3D11 RHI.

Performance Tests

Test ENV:

  • OS: Windows 11 Pro 25H2 Build 26200.7309
  • GPU: NVIDIA GeForce RTX 4060 Laptop
  • CPU: 13th Gen Intel(R) Core(TM) i9-13900HX 2.20 GHz
  • RAM: 64.0 GB (63.7 GB usable) 4800Mhz
  • Axmol: release build with -O3
  • Axmol: disable axmol ImGui extensions, it's create GPU buffer per-frame.

Test Results

Triangle Rendering Count at 42 FPS

  • axmol-3.0.0 on Vulkan: 700,055 triangles
  • axmol-3.0.0 on D3D12: 692,246 triangles
  • axmol-3.0.0 on D3D11: 697,338 triangles
  • axmol-3.0.0 on ANGLE: 618,298 triangles
  • axmol-2.10.0 on ANGLE: 623,827 triangles

Performance Improvement of axmol-3.0.0 on D3D11

  • Compared to axmol-3.0.0 on ANGLE:
    [ \frac{621,792 - 547,362}{547,362} \times 100% \approx 13.6% ]
    ≈ 1.14× faster

  • Compared to axmol-2.8.0 on ANGLE:
    [ \frac{621,792 - 568,871}{568,871} \times 100% \approx 9.3% ]
    ≈ 1.09× faster


  • axmol-2.10.0 on GLES-3.0 (ANGLE D3D11)
image
  • axmol-3.0.0 on GLES-3.0 (ANGLE D3D11)
image
  • axmol-3.0.0 on D3D11
image
  • axmol-3.0.0 on Vulkan
image
  • axmol-3.0.0 on D3D12
image
  • cocos2d-x-4.0
image

FAQ for v3

Q. For WinUWP and Win32, how to switch the render API to D3D11/D3D12/Vulkan?

A. By default, WinUWP & Win32 will use GLES 300 rendered by Google ANGLE, but now in Axmol v3 you can specify a new CMake option -DAX_RENDER_API=d3d11 to force the switch of the render API from gl to d3d11. all valid RHI name for cmake option AX_RENDER_API are: gl, d3d11, d3d12, vk, mtl

  • valid RHI name for Win32: d3d12, d3d11, vk, gl
  • valid RHI name for WinUWP: d3d12, d3d11, gl
  • valid RHI name for Android: gl, vk
  • valid RHI name for Linux: gl, vk
  • valid RHI name for iOS/macOS/tvOS: mtl, gl

Clone this wiki locally