A DirectX 12 – a legtöbb grafikus API-hoz hasonlóan – különböző olyan képességeket is kínál, amelyek a hardverek egy részét használhatók csak ki. Így van ez már az API 2015-ös megjelenése óta, és a Microsoft kínál is rá egy olyan funkcióellenőrző modult, amely garantálja, hogy a megírt kódban az egyes képességek csak a megfelelő implementációkon futnak.
Gond ebből korábban nem volt, de az elmúlt évek alatt számos új, esetlegesen opcionális funkcióval egészült ki a szóban forgó API, aminek következtében az eredeti funkcióellenőrző modul használata nehézkessé vált. A legnagyobb baj, hogy az ellenőrizendő képességet nem lehet csak úgy megadni, előbb definiálni kell a funkciócsoportot, aminek a része, viszont a dokumentáció a funkciókra van megírva nem a konkrét képességekre, vagyis az egész, amúgy pár soros kód megírása során nagyrészt arra megy el az idő, hogy szűrni kívánt képesség pontos funkciócsoportját meghatározza a fejlesztő.
Ugyan a Microsoft próbált egyszerűsíteni az úgynevezett funkciószintekkel, de ez csak az elején volt hasznos. Manapság már maga a Windows 10 sem tekinthető egy teljesen átfogó platformnak, ugyanis az egyes felhasználók az operációs rendszer különböző verzióit futtatják. Ez például azért baj, mert a legújabb funkciószint képességeit már régebb óta tartalmazzák az egyes Windows 10 verziók, de az ezeket csoportosító funkciószintet csak az újabb változatok kapták meg. Ergo hiába létezik a maga a funkciószint, úgyis egyenként kell a programon belül ellenőrizni a képességeket, gondolva a régebbi Windows 10 verziókon történő futtathatóságra. Ráadásul a jelenlegi legjobb funkciószint nem tartalmazza az összes definiált képességet, tehát elméletben már most szükség lenne egy még újabb funkciószint bevezetésére.
A fentiek miatt a Microsoft bevezeti a CD3DX12FeatureSupport osztályt, amely egy új, funkcióellenőrzésre szánt modul az API-n belül. Ennek a célja radikális mértékben csökkenteni a szűrni kívánt képességek ellenőrzésének komplexitását. Már maga a beírandó kód is jóval rövidebb lesz, de ami ennél fontosabb, hogy nem szükséges meghatározni a képesség funkciócsoportját, így a dokumentációkat sem kell sokáig bújni ehhez a művelethez. Mindemellett, ha egy képességet nem sikerült felismerni, mondjuk azért, mert túl régi futtatási környezet, akkor az nem hibakódot ad vissza, hanem konkrétan a funkció hiányát jelzi majd. Ezáltal nem kell a hibakódot külön kezelni programkódban.
Az új ellenőrzőmodul már elérhető az alábbi oldalon keresztül, a frissített D3D12 header állományban. A Microsoft írt egy példaprogramot is, hogy össze lehessen hasonlítani a régi és az új modul működését. Ebben ténylegesen látszik, hogy mennyivel egyszerűbb az új funkcióellenőrzőt használni.