The textures in the UWP version of the game I’m helping with use between 2 to 5 times as much memory when run as x64 compared to x86. The difference in memory usage is much more significant than what you’d expect to see between regular x86/x64 apps. Is it possible for us to get texture memory usage on x64 closer to x86?
A significant number of textures are loaded in the LoadContent method of Game1. At the end of the LoadContent method, the x86 version uses around 130MB RAM, while the x64 version will be using about 720MB at the same breakpoint. There are no architecture-specific conditional compiler symbols in the project, so the code and content are identical between the architectures.
After starting a new game and loading game world textures, memory usage on x86 settles around 370MB, and 1.2 GB on x64.
Textures are loaded using the standard Content.LoadContent(“texture/path”). We’ve confirmed that it’s the textures causing the memory increase by setting breakpoints where textures are loaded and watching the process memory. Also commenting out loading some of the larger textures saves hundreds of MBs on x64, and saves a proportionally similar amount on x86 (though less is saved as much less memory is used on x86 overall).