I am only vaguely familiar with the Unity plugin, but I assume:
- Unity plugin is written by Valve and interfaces the Unity app/engine and SteamVR
- Pimax over the “raw” SteamVR API works fine.
@MagiJedi in your bug report in GitHub you wrote:
The brand new OpenXR plugin works just fine with the Pimax, so this is definitely a Pimax->SteamVR bug that only manifests in 2020+.
Why do you think that?
Just to give more background:
Tracking is done in SteamVR (basically from the lighthouse driver to SteamVR runtime). SteamVR reports the tracking info to the app (in this case Unity plugin). Physically rotating the headset in the playspace works for direct SteamVR API access (and as you claim, apparently for the old plugins as well). Apart from the tracked pose (and the view camera geometry/projections), there is no other info coming from the driver (and consequently from the OpenVR client API).
I cannot see how Pimax headset (its driver) which is basically completely separated from the app, could induce the behavior you describe. There is also no way the app (the plugin) can affect the behavior of the driver.
To me it, looks like a bug in the plugin, which, for some reason incorrectly interprets the tracking info for Pimax headset. I remember there were some questionable things in the Unity plugin for OpenVR (last time I checked) related to the canted rendering and I would not be (too much) surprised if the problem manifested in the native mode.
But in parallel projection mode, I would expect the Pimax headset to behave as expected, because in this mode there is no way for an app to tell Pimax from any other headset geometry wise (at least in “Small” FOV).