XEngine Kit (GPU acceleration engine service) provides performance enhancement solutions based on the Maleoon GPU, including GPU/AI upscaling, adaptive variable rate shading (VRS), subpass shading, ray tracing technologies (including ray-traced reflection, shadow, ambient occlusion, and global illumination), high-performance shader (HPS), and control-display separation. Through graphics algorithms and hardware-software optimization, XEngine Kit enables users to enjoy 3D games/apps and AR/VR experiences with higher image quality, better performance, and lower power consumption.
When the GPU performance is insufficient to support rendering high-resolution scenes, upscaling capabilities can be used to enhance user experience by reconstructing lower-resolution images into high-resolution images. Compared with direct rendering of high-resolution images, using super-resolution capabilities can reduce the GPU rendering load and decrease power consumption. Currently, the following three upscaling capabilities are supported:
GPU spatial upscaling: spatial super-sampling based on single-frame images, offering the lowest overhead.
AI spatial upscaling: GPU/NPU coordinated spatial super-sampling for enhanced results.
AI temporal upscaling: GPU/NPU coordinated temporal super-sampling for better anti-aliasing performance, higher image quality, and higher upscaling ratio.
When the GPU performance is limited and cannot provide the same rendering quality level for each pixel of the output image, adaptive VRS can be used to boost the rendering performance. By efficiently allocating computational resources across the image, adaptive VRS reduces rendering frequency without compromising visual quality. This allows different images to be rendered at different rates, effectively improving rendering performance.
For tile-based deferred rendering (TBDR) and Forward+ pipelines, subpass shading can effectively reduce bandwidth overhead and enhance the performance.
When the GPU supports hardware-based ray tracing, ray tracing rendering technologies can be used to improve the lighting and shadow effects and image quality.
Reflection, Shadow, and Ambient Occlusion
XEngine Kit provides out-of-the-box ray tracing rendering technologies, including APIs related to reflection, shadow, and ambient occlusion (AO). Compared with the traditional ray tracing implementation modes, XEngine Kit can achieve higher image quality with a small number of rays, lighter GPU payload for the same image quality, and better image quality under the same payload.
Global Illumination
The XEngine Kit global illumination solution, built on hardware-based ray tracing, AI rendering, and device-cloud rendering, implements real-time global illumination on mobile devices. It employs two technologies: Dynamic Diffuse Global Illumination (DDGI) and Neural Network Global Illumination (NNGI). DDGI is more lightweight and can achieve better power efficiency when working with device-cloud rendering, while NNGI provides better dynamic GI image quality on mobile devices.
High-performance GPU sorting sorts out-of-order information more quickly, reducing sorting latency and improving performance.
XEngine Kit introduces the innovative control-display separation solution for foldable-screen gaming scenarios. In the unfolded device state, the screen is divided into two symmetrical and independent regions, restoring the interaction logic of retro handheld consoles: the upper half presents the core rendering content, while the lower half is dedicated to touch interactions. This layout eliminates the traditional mobile game issue of on-screen controls obstructing the view and enables a new interaction paradigm for foldable-screen gaming.
Before calling XEngine Kit capabilities, you need to use SysCap to check whether your target device supports the SystemCapability.Graphic.XEngine system capability.
XEngine Kit features are supported only on devices that use the Maleoon GPU. The supported features vary across devices. You can query the features supported by a device in the following way:
For OpenGL ES, use the extension query API HMS_XEG_GetString.
For Vulkan, use the extension query API HMS_XEG_EnumerateDeviceExtensionProperties.
Both methods return the supported feature list. For details about how to use the features, please refer to their corresponding sample code.