Hello everyone.

The Mixed Reality Forums here are no longer being used or maintained.

There are a few other places we would like to direct you to for support, both from Microsoft and from the community.

The first way we want to connect with you is our mixed reality developer program, which you can sign up for at https://aka.ms/IWantMR.

For technical questions, please use Stack Overflow, and tag your questions using either hololens or windows-mixed-reality.

If you want to join in discussions, please do so in the HoloDevelopers Slack, which you can join by going to https://aka.ms/holodevelopers, or in our Microsoft Tech Communities forums at https://techcommunity.microsoft.com/t5/mixed-reality/ct-p/MicrosoftMixedReality.

And always feel free to hit us up on Twitter @MxdRealityDev.
Options

Can't Change Hyper-V HoloLens Emulator Memory Settings

To start, I'm on a Windows 10 Enterprise machine which is real, not virtual. 16GB of memory and Intel Core i7-4600u. My team is on the waiting list for a physical HoloLens device but we're actively trying to develop an application in the meantime. I was able to successfully work through the YouTube tutorials dealing with the Origami project via Unity. Our client has provided us an FBX asset for a product they plan to release and our goal was to integrate it into the HoloLens application.

My problem occurs when I attempt to the deploy the applicable to the emulator. The Origami project had no issues. But the provided asset I added to my scene is quite large, around 2GB by itself. Once the emulator starts, the Unity splash screen loads and then the application crashes. The Debug output is as follows:

d3d11: failed to create vertex buffer of size 3039624 [0x8007000E]

DynamicHeapAllocator allocation probe 1 failed - Could not get memory for large allocation 393204.

d3d11: failed to create index buffer of size 393204 [0x8007000E]

d3d11: failed to create vertex buffer of size 2780280 [0x8007000E]

d3d11: failed to create index buffer of size 393204 [0x8007000E]

d3d11: failed to create vertex buffer of size 2941128 [0x8007000E]

d3d11: failed to create index buffer of size 393204 [0x8007000E]

d3d11: failed to create vertex buffer of size 2888064 [0x8007000E]

d3d11: failed to create index buffer of size 393204 [0x8007000E]

d3d11: failed to create vertex buffer of size 2860920 [0x8007000E]

d3d11: failed to create index buffer of size 393204 [0x8007000E]

DynamicHeapAllocator allocation probe 2 failed - Could not get memory for large allocation 393204.

DynamicHeapAllocator allocation probe 3 failed - Could not get memory for large allocation 393204.

DynamicHeapAllocator allocation probe 4 failed - Could not get memory for large allocation 393204.

DynamicHeapAllocator out of memory - Could not get memory for large allocation 393204!

DynamicHeapAllocator allocation probe 1 failed - Could not get memory for large allocation 2667544.

Could not allocate memory: System out of memory!
Trying to allocate: 393204B with 16 alignment. MemoryLabel: VertexData
Allocation happend at: Line:75 in C:\buildslave\unity\build\Runtime/Allocator/STLAllocator.h
Memory overview

[ ALLOC_DEFAULT ] used: 18655296B | peak: 0B | reserved: 24959608B 
[ ALLOC_TEMP_JOB ] used: 0B | peak: 0B | reserved: 2097152B 
[ ALLOC_GFX ] used: 472550844B | peak: 0B | reserved: 476110412B 
[ ALLOC_CACHEOBJECTS ] used: 1037064B | peak: 0B | reserved: 10485760B 
[ ALLOC_TYPETREE ] used: 0B | peak: 0B | reserved: 0B 
[ ALLOC_PROFILER ] used: 72128B | peak: 0B | reserved: 8388608B 
[ ALLOC_TEMP_THREAD ] used: 89977B | peak: 0B | reserved: 3014656B 

Could not allocate memory: System out of memory!
Trying to allocate: 393204B with 16 alignment. MemoryLabel: VertexData
Allocation happend at: Line:75 in C:\buildslave\unity\build\Runtime/Allocator/STLAllocator.h
Memory overview

[ ALLOC_DEFAULT ] used: 18655296B | peak: 0B | reserved: 24959608B 
[ ALLOC_TEMP_JOB ] used: 0B | peak: 0B | reserved: 2097152B 
[ ALLOC_GFX ] used: 472550844B | peak: 0B | reserved: 476110412B 
[ ALLOC_CACHEOBJECTS ] used: 1037064B | peak: 0B | reserved: 10485760B 
[ ALLOC_TYPETREE ] used: 0B | peak: 0B | reserved: 0B 
[ ALLOC_PROFILER ] used: 72128B | peak: 0B | reserved: 8388608B 
[ ALLOC_TEMP_THREAD ] used: 89977B | peak: 0B | reserved: 3014656B 


(Filename: C:\buildslave\unity\build\Runtime/Allocator/MemoryManager.cpp Line: 1017)


The program '[2828] Origami.exe' has exited with code -1 (0xffffffff).

There appear to be no settings I can adjust from within the Visual Studio for the solution or project. My only other option was to look into the Hyper-V settings. When I open the Hyper-V Manager, I see a single virtual machine listed of for "HoloLens Emulator 10.0.11082.0". The "Startup Memory" is set to 2048 MB and "Dynamic Memory" set to disabled. I've tried opening the settings for this VM and both upping to the Startup RAM to double and/or enabling the Dynamic Memory setting. No matter what I change, when the emulator starts all the settings revert back to the 2048 MB and dynamic disabled. I've tried starting the VM within Hyper-V before deploying the application within Visual Studio and same result.

I have two questions:

  1. Can I adjust the Hyper-V VM settings permanently so allow enough memory for my application to run?
  2. Is it wrong for me to be building applications larger than 2GB because the real HoloLens won't be able to run them?

Answers

  • Options

    Hi Celston,
    The HoloLens emulator is designed to emulate an actual device. When you do receive your physical device, you are going to have to deal with your application's memory situation then, so you might as well fix it in the emulator now. Regardless, given Windows 10 in the HoloLens is 32-bit, you're going to have a hard time running any application that is approaching 2GB in size.
    Tim

  • Options

    @celston,
    I would recommend investigating decimating the model. There are a number of tools available that promise to reduce the triangle count while maintaining model detail.

    Thanks!
    David

Sign In or Register to comment.