XNA Graphics Profile Checker

The XNA Framework GraphicsAdapter.IsProfileSupported API allows you to check whether the current hardware supports the Reach or HiDef graphics profiles, but this only returns a simple boolean, with no details of why a failing profile is not supported. This utility provides more information about hardware capabilities, by performing the exact same checks that are used internally by the XNA Framework, but displaying their results as a detailed failure report. This can be useful for investigating driver compatibility problems, and also to see exactly what hardware capabilities are required for each profile.

Overview

The XNA Framework GraphicsAdapter.IsProfileSupported API allows you to check whether the current hardware supports the Reach or HiDef graphics profiles, but this only returns a simple boolean, with no details of why a failing profile is not supported. This utility provides more information about hardware capabilities, by performing the exact same checks that are used internally by the XNA Framework, but displaying their results as a detailed failure report. This can be useful for investigating driver compatibility problems, and also to see exactly what hardware capabilities are required for each profile.

Unlike most XNA samples, which are written in C#, this utility is written in C++/CLI (the .NET version of C++). This allows it to call directly into the native Direct3D API, thus obtaining more detailed caps information than is available through the XNA Framework graphics API. You will need to install three things before you can build this utility:

  1. XNA Game Studio 4.0
  2. A version of Visual Studio 2010 that includes C++ support (ie. not just C# Express)
  3. The native DirectX SDK (http://msdn.microsoft.com/en-us/directx)