Skip to content

Application Spacewarp URP modifications not working in Unity 6 #37

Description

@robbbbbb

Application Spacewarp as an OS feature can be succesfully enabled and disabled both through the OpenXR feature system or directly through PXR_Manager. However, the URP package modifications required to provide the per frame motion vector data don't work in Unity 6 (and possibly in even earlier Unity versions).

The latest Pico SDK documentation (https://developer.picoxr.com/document/unity/application-spacewarp/ points to the modified RP package on github (https://github.com/Pico-Developer/Unity-Graphics/tree/AppSpacewarpForUnity) but looking at the code it doesn't appear to have merged in any changes for around 4 years.

As expected, importing that customised package in to a Unity 6 project results first in a bunch of compile errors and then later in a bunch of broken shaders and render pipeline code.

Is Application Spacewarp on Pico actually supported for Unity 6+? The requirements on that Pico page certainly suggest it should be:

Requirements

Make sure to meet the following development environment requirements before using AppSW:

  • PICO device models: PICO Neo3 series, PICO 4 series, and PICO 4 Ultra series
  • PICO device's system version: 5.4.0 or laterUnity Editor: 2021 LTS or later (Unity 2021 is recommended, as there may be compatibility issues with Unity 2022 and 2023 when using AppSW)
  • For Unity 6 or a higher version, the following requirements should also be met:
    • URP: 17.0.3 or later
    • Render Graph: Compatibility Mode (Render Graph Disabled) is enabled

Should we not be using the modified RP packages on Unity 6+ and just relying on Unity's own implementation?

Should we use the Meta branches of that repository which seem to have been iteratively developed as Unity versions (and matching render pipeline packages) have changed?

The Pico documentation definitely seems to suggest this should all just work, but it seems impossible that it ever would unless there's something obvious we're missing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions