SteamVR

SteamVR

SteamVR locks up when forcing the new Segment Heap in Windows 10
Microsoft has been working on a new heap allocator, that's more efficient in regards to memory fragmentation and management structures needed for itself. They say they could reduce the memory usage of the Chromium-version of their Edge browser by up to 27% (I presume lots of fragmentation, slack space and overhead due to allocation patterns), and I guess it's faster.

Said allocator has been shipping out with the current v2004 release of Windows 10, but is currently strictly opt-in via the application manifest.

You can however enable it globally via the registry. I have done so, and so far most things work flawlessly.

Except SteamVR. I had the very least create exceptions for steamvr.exe (creates window, doesn't show UI), vrcompositor.exe and vrmonitor.exe (results in teal fill), needing to force the old/current NT Heap for it to work. After the last one, I added vrdashboard.exe, too, to be safe.

SteamVR is doing weird things, that'll break if the system's heap allocator changes in behaviour. That's not good. Why you might ask? Because there's the very option of Microsoft eventually pulling the trigger and making it the default in future, and therefore breaking SteamVR. Might be next spring, might be way later.

It would be nice to look into this, debug and fix it. Ideally, please avoid the "unsupported configuration" shpiel, because at some point MS is going to pull the rug from under you and everyone's wondering why SteamVR broke this time.

Thanks.

Reference material:

https://blogs.windows.com/msedgedev/2020/06/17/improving-memory-usage/

https://docs.microsoft.com/en-us/windows/win32/sbscs/application-manifests#heaptype

https://www.blackhat.com/docs/us-16/materials/us-16-Yason-Windows-10-Segment-Heap-Internals.pdf
< >
Showing 1-3 of 3 comments
J Bot  [developer] Jun 22, 2020 @ 5:18pm 
Thanks for this report. We can repro the issue, and are looking into it.
J Bot  [developer] Jun 23, 2020 @ 5:40pm 
Jacques de Gatineau Jun 24, 2020 @ 12:34pm 
Can confirm the cyan fill to be gone.

I have all exceptions removed, except for vrmonitor.exe (FrontEndHeapDebugOptions = 0x4 to force the NT Heap), otherwise the SteamVR app window stays black and vrmonitor.exe becomes unresponsive immediately (I guess they're the same thing).

The virtual environment inside the Index works fine, tho, at least the dashboard and void environment, anyway, even with vrmonitor.exe unresponsive.

Thanks for looking into this.
Last edited by Jacques de Gatineau; Jun 24, 2020 @ 12:36pm
< >
Showing 1-3 of 3 comments
Per page: 1530 50

Date Posted: Jun 21, 2020 @ 9:08am
Posts: 3