Skip to content

About RHI in Axmol v3

halx99 edited this page Nov 26, 2025 · 18 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.


Future RHI (may be implemented)

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

RHI list

  • axmol/rhi/vulkan (since Nov, 2025)
  • axmol/rhi/d3d (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 24H2 Build 26100.4061
  • 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 D3D11: 621,792 triangles
  • axmol-3.0.0 on ANGLE: 547,362 triangles
  • axmol-2.8.0 on ANGLE: 568,871 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?

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=d3d to force the switch of the render API from opengl to d3d11.

Clone this wiki locally