XNA Game Studio 4: Profiles comparison
Microsoft’s Shawn Hargreaves posted a really handy table comparing the Reach & HiDef profile available in the XNA Game Studio 4.0 development toolkit. The…
Microsoft’s Shawn Hargreaves posted a really handy table comparing the Reach & HiDef profile available in the XNA Game Studio 4.0 development toolkit.
- The features listed in black are required and supported consistently across all platforms and hardware
- The few features which are not 100% consistent are listed in red
- HiDef is a strict superset of Reach
- If you run a Reach game on a HiDef platform, the framework will still enforce Reach rules. This lets you test your phone game on Xbox 360 or a high end Windows PC, and get helpful exception messages if you accidentally try to use a feature that is not supported on the phone.
Reach |
HiDef |
|
| Supported platforms | Windows Phone 7 Series, Xbox 360, and any Windows PC with a DirectX 9 GPU that supports at least shader model 2.0 | Xbox 360, and any Windows PC with a DirectX 10 (or equivalent: see below) GPU |
| Shader model | 2.0 (but Windows Phone does not support custom shaders) | 3.0+ (Xbox 360 supports custom shader extensions such as vfetch, which are not available on Windows) |
| Max texture size | 2048 | 4096 |
| Max cubemap size | 512 | 4096 |
| Max volume texture size | Volume textures are not supported | 256 |
| Non power of two textures | Conditional: cannot use wrap addressing mode, mipmaps, or DXT compression when the size is not a power of two | Yes |
| Non power of two cubemaps | No | Yes |
| Non power of two volume textures | Volume textures are not supported | Yes |
| Max primitives per draw call | 65535 | 1048575 |
| Index buffer formats | 16 bit | 16 and 32 bit |
| Vertex element formats | Color, Byte4, Single, Vector2, Vector3, Vector4, Short2, Short4, NormalizedShort2, NormalizedShort4 | All of the Reach formats, plus HalfVector2, HalfVector4 |
| Texture formats | Color, Bgr565, Bgra5551, Bgra4444, NormalizedByte2, NormalizedByte4, Dxt1, Dxt3, Dxt5 | All of the Reach formats, plus Alpha8, Rg32, Rgba64, Rgba1010102, Single, Vector2, Vector4, HalfSingle, HalfVector2, HalfVector4. Floating point texture formats do not support filtering. |
| Vertex texture formats | Vertex texturing is not supported | Single, Vector2, Vector4, HalfSingle, HalfVector2, HalfVector4 |
| Render target formats | Variable (see below) | Variable (see below) |
| Multiple render targets | No | Up to 4. Must all have the same bit depth. Supports alpha blending and independent write masks per rendertarget. |
| Occlusion queries | No | Yes |
| Separate alpha blend | No | Yes |
| Blend.SourceAlphaSaturation | Only for SourceBlend, not DestinationBlend | Yes |
| Max vertex streams | 16 | 16 |
| Max stream stride | 255 | 255 |
As you can see the Reach profile is the one used to develop Windows Phone 7 applications/games. Programmable shaders on WP7 are not supported yet in this version of XNA, but Microsoft is providing 5 predefined Shaders for developers (BassidEffect, DualTexttureEffect, AplhaTestEffect, SkinnedEffect & EnvironementMapEffect) check them out in action here:
BassicEffect:
– 0-3 Directional lights
– Blinn-Phong Shading
– Optional Texture
– Optional Fog
– Optional Vertex Color
DualTextureEffect:
– For lightmaps, detail textures, decals
– Blends two textures
– Separate texture coordinates
– Modulate 2X combine mode
– Good visuals at low pixel cost
AplhaTestEffect:
– For billboards & imposters
– Adds alpha test operations (pixel kill)
– Standard blending is free with all effects
– Only need alpha test if you want too disable depth/stencil writes
SkinnedEffect:
– For animated models and instancing
– Game code animates bones on GPU
– Vertex skinning performed by the GPU
– Up to 72 bones
– One, tow or four weights per vertex
EnvironementMapEffect:
– Oh Shinny!
– Difuse Texture + cube environement map
– Cheap way to fake many complex lights
– Frsnel term simulates behaviour when lights reaches a surface and some reflects, some penetrates
Don’t forget to follow Shawn’s awesome blog here .
How we test
Buyer action
Where to buy or check next
Use this as the final check before ordering a phone, changing network or trusting a headline monthly price.


















