SlimDX Features

Supported Systems

SlimDX supports a wide range of APIs, operating systems, and configurations. All versions of Windows XP, Vista, Server 2003, Server 2008, and 7 are supported, for both 32 and 64 bit. There is a minimum requirement of .NET 2.0, but any subsequent version (including or excluding service packs) will work.

Supported APIs

  • Math Library
  • Direct3D9
  • Direct3D9Ex
  • Direct3D10
  • Direct3D 10.1
  • Direct3D 11
  • Direct2D
  • D3DCompiler
  • DirectWrite
  • DirectInput
  • DirectSound
  • DXGI
  • DXGI 1.1
  • Windows Multimedia
  • Raw Input
  • X3DAudio
  • XAPO
  • XACT3
  • XAudio2
  • XInput


SlimDX has full support for sharing DirectX objects with other libraries. All SlimDX objects expose their native pointers for use by other code, and SlimDX can wrap native pointers with its own objects. This allows seamless cooperation with libraries such as DirectShow.NET, CUDA.NET, native code DirectX libraries, and more.

64-bit Systems and "Any CPU"

SlimDX includes x64 bit assemblies, and is the only DirectX interface for .NET to do so. The redistributable and SDK installers automatically register the correct assemblies. Applications can also compile for the "Any CPU" architecture when using SlimDX, and the correct version will be selected. As a result, SlimDX based applications can smoothly target both x86-32 and x86-64 bit machines without the headaches introduced by other similar libraries. (Itanium IA64 is not a supported configuration, sorry.)


Performance is a crucial factor in all of the design work done on SlimDX, and the team works carefully to ensure that overhead is kept to a minimum. SlimDX has proven to be faster than both XNA and MDX in several performance tests, although the margin is often negligible. Additionally, an experimental offshoot of SlimDX called SlimGen that is still under development promises to bring SIMD support straight into the math library, boosting performance considerably.

.NET 4.0 Support

SlimDX is the only DirectX interface for .NET to provide full .NET 4.0 binaries. This means no having to go through extra configuration steps to ensure that your .NET 4.0 application can use SlimDX properly.

Choosing a Managed Game API

There are several APIs available for developing games in .NET. The following table and feature discussions demonstrate the differences between these APIs, hopefully making it easy to pick the one that is best suited for your needs.

Features SlimDX XNA MDX Windows Code Pack OpenTK
Actively Developed
Native .NET 4 Binaries
Source License
Support for x64
WPF Interop
GAC Installer
Platforms SlimDX XNA MDX Windows Code Pack OpenTK
Xbox 360
Windows Phone 7
Graphics APIs SlimDX XNA MDX Windows Code Pack OpenTK
Direct3D 9
Direct3D 10
Direct3D 11
Input APIs SlimDX XNA MDX Windows Code Pack OpenTK
Xbox 360 Gamepad
Audio APIs SlimDX XNA MDX Windows Code Pack OpenTK

When to use XNA Game Studio

Use XNA when you need Xbox360 or Windows Phone 7 support. If you are only targeting the Windows operating system and are comfortable with the added complexity, SlimDX provides access to newer rendering APIs such as Direct3D 11 and Direct2D. Even if you end up using XNA, SlimDX is still a viable choice for creating tools and plugins for the content pipeline.

When to use MDX

Don't. MDX has been deprecated for many years now. It still targets an older .NET framework version and suffers from many bugs and flaws such as loader lock that will never be fixed. SlimDX supports everything exposed by MDX and much more, so there's no excuse for choosing MDX for a new project.

When to use the Windows API Code Pack

It is the opinion of the SlimDX team that the Code Pack is an inferior choice when it comes to DirectX support for .NET. While its offering is certainly adequate, it is not better than SlimDX in any area and lacks quite a few features that are present in SlimDX. Additionally it does not support Direct3D 9, which can be a deal breaker if you require Windows XP support.

When to use OpenTK

Use OpenTK whenever you want OpenGL support, or must support the Mac and Linux platforms. If you are only targeting Windows, you may be better off with Windows specific technologies like DirectX.