Search Results for

    Adaptation Guide

    If your application was previously developed based on other XR platforms and you expect to adapt it to YVR 2 or Play For Dream MR devices, the following information may be helpful to you.

    Feature Description

    For common XR features, the current SDK has provided relevant support:

    1. Support for URP rendering pipeline
    2. The SDK is based on Unity XR development, and cross-platform Unity XR APIs can be used.
    3. Compatibility with Unity official XR features such as Unity Interaction Toolkit and Unity Hands
    4. Support for AR Foundation, including features such as Camera, Mesh, Plane Detection, and Image Tracking

    We provide enterprise users with functions for system configuration and information query, as well as solutions for large VR/MR spaces, including:

    1. VR Large Space Map Scanning and Positioning Solution
    2. MR Large Space Marker-based Positioning Solution
    3. Camera APIs, to obtain information including VST Camera and tracking Camera.
    4. Devices APIs, used to configure and query device information.
    5. Tobii Ocumen solution 120hz data acquisition
    • For enterprise features, please refer to Enterprise Developer Documentation
    • You can get minimal examples of each feature from Samples

    Performance Differences

    In terms of computing performance, YVR 2 and Play For Dream MR use different chips and recommended values for default rendering resolution. The comparison with other XR devices on the market is as follows:

    Device Chipset Default Eye Buffer Resolution
    YVR 2 Snapdragon XR2 Gen 1 1600x1600
    Play For Dream MR Snapdragon XR2+ Gen 2 2880x2664
    Pico 4 Snapdragon XR2 Gen 1 1504x1504
    Pico 4 Ultra Snapdragon XR2 Gen 2 1920x1920
    Quest 2 Snapdragon XR2 Gen 1 1440x1584
    Quest 3 Snapdragon XR2 Gen 2 1680x1760
    Apple Vision Pro Apple R1 + M2 1920x1824
    Tip

    For information on devices from various platforms, please refer to the corresponding official documentation. Due to the use of foveated rendering technology, the subjective rendering experience of Apple Vision Pro may differ from the Eye Buffer resolution read by the software.

    • For YVR 2 devices, its rendering resolution is similar to Pico 4 and Quest 2 with the same chipset, so there are usually no major problems when porting applications.
    • For Play For Dream MR devices, although the chipset used is slightly better than that of Quest 3 and Pico 4 Ultra, there is a large difference in rendering resolution (about 1.7 times that of Quest3, about 1.5 times that of Pico 4 Ultra, and 1.5 times that of Apple Vision Pro). Therefore, GPU Bound problems may be encountered when porting applications.

    Porting from Pico / Quest Platform

    If your application was previously developed on the Pico / Quest platform, there will not be much difference in CPU performance between YVR 2 and Play For Dream MR, but you may encounter some problems in terms of GPU.

    If your application has a heavy GPU load on Pico / Quest (80%+ GPU utilization), then it is very likely to encounter GPU Bound problems on Play For Dream MR. At this time, there are usually two solutions:

    1. Adjust the Eye Buffer resolution to a level similar to other XR platforms. At this time, the GPU Bound problem will be alleviated, but the display effect will also decrease accordingly. However, even if the resolution is similar to other XR platforms, Play For Dream MR devices will still provide users with a better visual experience than other XR platforms due to their excellent screens and optics. For information on adjusting the rendering resolution, see Eye Buffer Resolution.
    2. Use Quad Views rendering mode (a foveated rendering solution) to solve the GPU Bound problem. Under the default resolution configuration of Quad Views rendering mode, it only needs about 55% of the pixels of the default Play For Dream MR to provide 4K-level PPD in the user's gaze area, that is, using lower GPU overhead to obtain higher display effects.
      • It should be noted that enterprise devices do not enable foveated rendering by default. It can be enabled in Settings -> Display -> Advanced Options.

    Porting from Apple Vision Pro Platform

    If your application is developed on the Apple Vision Pro (hereinafter referred to as AVP) platform and needs to be ported to Play For Dream MR devices, in addition to the aforementioned differences in default rendering resolution, there are also large differences in the GPUs of AVP and Play For Dream MR devices. AVP uses a desktop-level M2 chip, and the accompanying R1 chip can reduce the overhead of Pass-Through rendering. Play For Dream MR devices use a mobile-level Snapdragon XR2+ Gen 2 chip. Even if its performance is strong on the mobile side, it is undeniable that its GPU performance is still significantly behind AVP's M2 chip.

    Therefore, when porting applications, it is very likely to encounter GPU Bound problems. In addition to the aforementioned Eye Buffer resolution adjustment and Quad Views rendering mode, some performance optimization of the project is also required.

    Performance Optimization

    The following optimization suggestions can help you achieve better performance on Play For Dream MR devices. Most of the following suggestions focus on the GPU side.

    1. Use URP rendering pipeline
    2. Set the application to 72 FPS, which will significantly reduce the overhead of the system Compositor
    3. Use Forward rendering mode. In Universal Renderer Asset, select Forward rendering mode in Rendering-Rendering Path, and set Depth Priming Mode to Disable
    4. Avoid using post-processing. You can disable the Post Processing option in Universal Renderer Asset
    5. Use MSAA for anti-aliasing: Anti-aliasing methods such as TAA that require multi-frame accumulation will increase the burden on the GPU, so it is recommended to use MSAA for anti-aliasing. 2x MSAA usually has a good balance between performance and effect.
    6. Disable Depth Texture and Opaque Texture: In Universal Renderer Asset, disable the Depth Texture and Opaque Texture options, which can reduce an additional copy operation.
    7. Disable SSAO: In URP, SSAO requires an additional Depth Priming Path and two blur passes to reduce noise, which will increase the burden on the GPU. In Universal Renderer Asset, make sure that Screen Space Ambient Occlusion Features is not enabled under Renderer Features
    8. Disable HDR: HDR rendering will significantly increase GPU bandwidth consumption. In Universal Pipeline Asset, find Quality-HDR and make sure it is disabled.
    9. Disable Decal: On the XR side, the Decal effect needs to use a depth map, which will increase the burden on the GPU. If it is a terrain effect, it is recommended to make it directly in the art assets. If it is for runtime shadows, it is recommended to implement shadows through Blob Shadow.
    10. Use ASTC texture compression: Ensure that the application's textures are compressed with ASTC, which can reduce GPU bandwidth consumption. It is recommended to use ASTC 6x6 compression format.
    11. Use 32x32 resolution for solid color or textures with very little content. High resolution should be strictly avoided for solid color textures.
    12. Enable Mipmap for textures to reduce GPU bandwidth consumption
    13. Reduce the use of Lit Shader: Lit Shader usually requires more GPU computing resources, and lighting effects should be baked as much as possible. For inconspicuous or relatively unimportant content, Simple Lit Shader can be used to achieve real-time lighting effects.
    14. Optimize art assets: It is recommended to keep the number of on-screen triangles below 200,000.
    15. When performing final performance testing, please disable the Performance Profiling Tool function, as this function will also increase the burden on the GPU.

    Reference

    Optimize for untethered XR devices in URP

    In This Article