Summary
On a Samsung Odyssey 3D (G90XF / SAM7861, 27", 3840x2160 @ 165 Hz) two plug-in init paths report different physical sizes and different refresh rates for the same panel, and one of them is badly wrong.
WARN [leia_hmd_create] Created Leia 3D display: 3840x2160 px, 0.344x0.194 m, nominal Z=0.65 m, 60.0 Hz
WARN [create_sr_context] SR D3D11 display (modern API): 2560x1440 px, physical 59.67cm x 33.57cm = 0.5967m x 0.3357m
WARN [leiasr_static_get_display_dimensions] Static display dimensions: 59.67cm x 33.57cm = 0.5967m x 0.3357m
| Path |
Physical size |
Implied diagonal |
Refresh |
leia_hmd_create |
0.344 x 0.194 m ❌ |
15.5" |
60.0 Hz ❌ |
create_sr_context / leiasr_static_get_display_dimensions |
0.5967 x 0.3357 m ✅ |
27.0" ✅ |
— |
0.344 x 0.194 m is a 15.5" diagonal on a 27" panel — a ~1.73x error. It looks like a small-panel/Lume-Pad-class default rather than anything derived from this display. 60.0 Hz is likewise wrong on a 165 Hz panel (EnumDisplaySettingsW confirms 3840x2160 @ 165Hz; available 4K rates are 59/60/120/165).
Kooima projection is driven by physical size over pixel pitch, so whichever value the projection path consumes decides whether geometry is right.
The 1920x1080 per eye number is right only because two errors cancel
WARN [create_sr_context] SR recommended view texture: 1920x1080 per eye
This currently looks correct, but it is 0.5 x the logical 2560x1440... which happens to equal 0.5 x the true 3840x2160/2 arrangement. Fixing either input in isolation will make this number wrong. Please treat the pixel source and the physical-size source as one change, and re-derive the recommended view texture from the corrected values rather than trusting that it currently matches.
Related, and the reason the pixel column above is muddled
create_sr_context reporting 2560x1440 is a separate, already-filed issue — the host process is not DPI-aware, and this box runs at 150% scaling (3840/1.5 = 2560, 2160/1.5 = 1440). Filed on the runtime side as DisplayXR/displayxr-runtime#1201. Real DPI-aware apps get the correct 3840x2160, so that half is not a plug-in bug.
The physical-size and refresh-rate disagreement in this issue is independent of DPI and reproduces regardless of the host's DPI awareness — a DPI-aware app still logs 0.344x0.194 m / 60.0 Hz from leia_hmd_create.
Reproduction
"C:\Program Files\DisplayXR\Runtime\displayxr-cli.exe" info
or launch any DisplayXR app and read %LOCALAPPDATA%\DisplayXR\DisplayXR_<exe>.<pid>_*.log.
Environment
- Plug-in: DisplayXR Leia SR v2.5.0 (ABI v5, loader-verified). Also reproduced on v2.3.0 — unchanged across the 2.3.0 -> 2.5.0 update.
- Runtime: v2.12.1
- SR Platform 1.34.12, LeiaSR Tracker 1.10.1 (plug-in falls back to the legacy C++ v1 SR API here:
srCreateInstance failed (-4))
- Panel: Samsung Odyssey 3D G90XF, EDID
SAM7861, 3840x2160 @ 165 Hz, 150% DPI scaling
- Host: Windows 11 Pro 26200, i9-12900K, RTX 2080 Ti (render) + Intel UHD 770 (panel scanout — split-adapter)
Note edid_reads=0 in the probe line — the monitor is correlated but no EDID blob is actually read, so neither the physical size nor the refresh appears to come from EDID on this box:
WARN [leia_edid_probe_display] EDID probe: gdi_monitors=1 setupdi_devices=1 edid_reads=0 correlated=1 diag=0 win32err=0
That may be the common root for both the size and the refresh being defaults rather than measured values.
Filed from the odyssey-lab test box at David's request (Slack #tmp-odyssey-lab).
Summary
On a Samsung Odyssey 3D (G90XF /
SAM7861, 27", 3840x2160 @ 165 Hz) two plug-in init paths report different physical sizes and different refresh rates for the same panel, and one of them is badly wrong.leia_hmd_create0.344 x 0.194 m❌create_sr_context/leiasr_static_get_display_dimensions0.5967 x 0.3357 m✅0.344 x 0.194 mis a 15.5" diagonal on a 27" panel — a ~1.73x error. It looks like a small-panel/Lume-Pad-class default rather than anything derived from this display.60.0 Hzis likewise wrong on a 165 Hz panel (EnumDisplaySettingsWconfirms3840x2160 @ 165Hz; available 4K rates are 59/60/120/165).Kooima projection is driven by physical size over pixel pitch, so whichever value the projection path consumes decides whether geometry is right.
The
1920x1080 per eyenumber is right only because two errors cancelThis currently looks correct, but it is
0.5x the logical2560x1440... which happens to equal0.5x the true3840x2160/2 arrangement. Fixing either input in isolation will make this number wrong. Please treat the pixel source and the physical-size source as one change, and re-derive the recommended view texture from the corrected values rather than trusting that it currently matches.Related, and the reason the pixel column above is muddled
create_sr_contextreporting2560x1440is a separate, already-filed issue — the host process is not DPI-aware, and this box runs at 150% scaling (3840/1.5 = 2560, 2160/1.5 = 1440). Filed on the runtime side as DisplayXR/displayxr-runtime#1201. Real DPI-aware apps get the correct3840x2160, so that half is not a plug-in bug.The physical-size and refresh-rate disagreement in this issue is independent of DPI and reproduces regardless of the host's DPI awareness — a DPI-aware app still logs
0.344x0.194 m/60.0 Hzfromleia_hmd_create.Reproduction
or launch any DisplayXR app and read
%LOCALAPPDATA%\DisplayXR\DisplayXR_<exe>.<pid>_*.log.Environment
srCreateInstance failed (-4))SAM7861, 3840x2160 @ 165 Hz, 150% DPI scalingNote
edid_reads=0in the probe line — the monitor is correlated but no EDID blob is actually read, so neither the physical size nor the refresh appears to come from EDID on this box:That may be the common root for both the size and the refresh being defaults rather than measured values.
Filed from the
odyssey-labtest box at David's request (Slack #tmp-odyssey-lab).