2 Answers
2

This is actually an issue in MonoGame, if it was properly supporting the GraphicsProfiles introduced in XNA 4.0 the MaxTextureSize would be 2048 for Reach and 4096 for HiDef. You can check the Capabiities of your hardware by querying through SharpDX directly. Once you have access to a D3D9Driver instance, you'll have to create this yourself as I don't think there's a way to get from MonoGame, use the D3D9DeviceCaps to query the MaxTextureWidth and MaxTextureHeight.

Turns out the issue was not initializing and loading content in the correct order. I am building an engine and had to refactor it to work as a library for Windows 8 apps. When I shuffled some code around I removed some XNA-specific code and put in back in the wrong place.

Here's the basic flow of things:

Constructor

Instantiate GraphicsDeviceManage

Set Content.RootDirectory (optional)

Initialize

Update graphics options (optional)

LoadContent

Instantiate SpriteBatch, using your GraphicsDeviceManage from before

Load the content for the game.

Update:

The actual error was that the texture I was trying to create was too big on the Surface RT. After looking in to it a bit, this is related to the graphics card and driver. My Surface RT has a limit of 2048(211), but my laptop goes up to 8192(213).

Here is a snippet that allows you to determine the maximum texture size based on each device and 'caches' the result. (PLEASE update it if you know a more elegant way!)