Skip to content

SteamVR selecting 72hz on AMD GPUs with Pimax Dream AIr #97

Description

@Williem3

Dream Air SLAM / AMD 72 Hz Diagnosis

Reported Behavior

System configuration:

  • Pimax Dream Air SLAM Edition
  • AMD Radeon RX 9070 XT
  • Sboys 1.3.0 beta series
  • Pimax EVO and SteamVR configured for 90 Hz

With Sboys/OpenPort enabled, SteamVR reports 90 Hz but actual presentation remains approximately 72 FPS. With the stock Pimax rendering path, the same headset and computer reach approximately 90 FPS.

Performance Was Ruled Out

The problem persists after reducing SteamVR render resolution from 70% to 20%.

At 20% resolution:

  • GPU frame time: approximately 6.9 ms
  • CPU frame time: approximately 1.6 ms
  • GPU utilization: approximately 50%
  • Dropped frames: zero
  • Reprojection: zero
  • Observed cadence: approximately 71.997 FPS/Hz

A 90 Hz frame budget is 11.1 ms, so there was sufficient performance overhead. The fixed cadence near 72 indicates display timing or compositor throttling rather than an application performance limit.

SteamVR Display Selection

SteamVR logs the following when using Sboys/OpenPort:

Using LiquidVR display mode 7104x3840 (-2124897296/30139776)
Updated HMD Prop_DisplayFrequency_Float to 90.000000

Interpreting the signed numerator as an unsigned 32-bit value gives:

2170070000 / 30139776 = 72.000203 Hz

This matches the measured runtime cadence.

SteamVR therefore reports the HMD property as 90 Hz while its AMD LiquidVR display path is actually initialized with a 72 Hz timing.

Headset Timing Data

The cached Dream Air EDID contains two full-resolution 7104×3840 DisplayID timings:

EDID order | Calculated refresh -- | -- First | 72.000203 Hz Second | 90.000142 Hz

Both timings carry the preferred flag, but the 72 Hz timing is listed first. The exact first timing matches the mode selected in the SteamVR LiquidVR log.

The Pimax runtime API separately reports approximately 90.000137 Hz. That value describes the requested or configured state; it does not prove the active display timing.

Tests That Did Not Change the Result

The following were tested independently:

  • Setting SteamVR’s display-frequency property to PVR’s reported 90 Hz before compositor startup
  • Updating SteamVR from 2.12.14 to public 2.16.7
  • Setting steamvr.preferredRefreshRate to 90
  • Disabling motion smoothing
  • Reducing SteamVR resolution to 20%
  • Restarting SteamVR Home after reducing resolution

In every Sboys/OpenPort test, the compositor continued selecting the same 72.000203 Hz LiquidVR mode.

Difference From the Stock Path

Pimax service logs show different display ownership behavior.

With OpenPort/Sboys:

no_render:1
no render mode, disable manual ctrl video!!!
m_supportManualCtrlVideo: 0

With stock Pimax rendering:

no_render:0
m_supportManualCtrlVideo: 1
mode select ok and panel report ok!!!
videoStable: 1

The stock AAPVR headset exposes an OpenVR driver-direct-mode component. The Sboys Dream Air path creates a new HMD without an underlying driver and does not expose that component. SteamVR consequently falls back to AMD LiquidVR for display ownership.

Current Diagnosis

The 72 FPS behavior is not caused by insufficient GPU performance, motion smoothing, SteamVR render resolution, or the reported OpenVR refresh property.

The discrepancy occurs during direct-display initialization:

  • PVR and OpenVR report 90 Hz.
  • Pimax disables its manual video control in OpenPort mode.
  • SteamVR takes display ownership through AMD LiquidVR.
  • LiquidVR selects the EDID timing corresponding to 72.000203 Hz.

The strongest suspicion is that the absence of driver-owned direct mode in the Sboys Dream Air path causes SteamVR/AMD to select the first full-resolution EDID timing rather than the requested 90 Hz timing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions