Software Rasterizer im Test: Wenn Crysis im WARP-Modus läuft
Unter Windows 10 gibt es einen integrierten Software-Renderer, der sogar DX12-Spiele auf der CPU berechnet. Wir haben ihn ausprobiert.

Vor gut 20 Jahren war es völlig normal, dass Spiele wie Doom oder Quake auf dem Prozessor liefen. 1996 änderte sich das: Mit der Voodoo Graphics war Software-Rendering auf der CPU mit einem Schlag obsolet und die Ära der 3D-Pixelbeschleuniger begann. Tatsächlich ist Software-Rendering auch heute noch Standard in jedem PC mit Windows 10, genauer gesagt die WARP.
Die Abkürzung steht für Windows Advanced Rasterization Platform, einen von Microsoft entwickelten Software Rasterizer. Vorgestellt wurde dieser mit einer Preview von Windows 7 samt Benchmarks von - wie sollte es anders sein - des erst ein Jahr zuvor erschienenen Crysis. Ein damaliger Core i7 (Nehalem) mit 3 GHz und 4C/8T kam in 800 x 600 bei niedrigen Details auf magere 7 fps - ein heutiger Ryzen 7 5800X (Test) schafft gleich 47 fps.
Seit dem Aufkommen von 3D-Hardware für Spiele rückte Software-Rendering schnell in den Hintergrund, einer der letzten Titel mit einer solchen Unterstützung ist Unreal Tournament 2004, genauer von Pixomatic. Verglichen zum D3D9-Renderpfad wird allerdings nur Farbtiefe von 16 Bit verwendet, und es fehlen unter anderem die trilineare Filterung sowie das Multi-Texturing für detaillierte Pixeltapeten. Beim WARP hingegen missen wir keine Funktionen, da er für Performance und Konformität ausgelegt ist.
Die ursprüngliche Version unterstützte Direct3D 10 inklusive der Feature Level 9_1 bis 10_1, später kamen FL 11_0 und FL 11_1 hinzu. Die seit Windows 10 integrierte Windows Advanced Rasterization Platform beherrscht Direct3D 12 einschließlich Feature Level 12_1, so dass selbst aktuelle Spiele wie Assassin's Creed Valhalla prinzipiell starten. WARP beherrscht diverse Texturformate, eine anisotrope Filterung und eine Kantenglättung bis zu 8x MSAA (Multi Sample Anti Aliasing).
Um die WARP zu nutzen, reicht es, im Geräte Manager die Grafikkarte zu deaktivieren. Wer das nicht will, kann unter "C:\Windows\System32" die "DXCPL.exe" (DirectX Control Panel) nutzen, per Liste die Ausführungsdatei eines Spiels auswählen und WARP per Häkchen forcieren. Das Resultat ist das gleiche - der Titel läuft per Software Rasterizer statt per 3D-Hardware. Konkret wird der Microsoft Basic Render Driver mit etwa der "D3d10warp.dll", sprich Windows Advanced Rasterization Platform verwendet.
Unseren Tests zufolge stürzen manche D3D-Spiele ab, vermutlich aufgrund bestimmter Abhängigkeiten oder schlicht, weil die WARP nicht in der Liste der unterstützten Grafikkarten enthalten ist. So ließen sich Counter Strike Global Offensive, Fortnite, die Halo Master Chief Edition und Word of Warcraft Shadowlands nicht starten, weil angeblich keine D3D11-fähige Grafikkarte vorhanden sei. Gears Tactics und Horizon Zero Dawn blieben im Intro hängen, bei Assassin's Creed Valhalla ruckelte das Hauptmenü mit Sekunden pro Frame statt mit Frames pro Sekunde vor sich hin.
API | Pixel | Fps | Details | Anmerkung | |
---|---|---|---|---|---|
Counter Strike Source | D3D9 | 1280 x 720 | 96 | Niedrig | Auflösung per Console |
Crysis | D3D10 | 1280 x 720 | 12 | Niedrig | Auflösung per Console |
Dawn of Man | D3D11 | 1280 x 720 | 4 | Niedrig | Auflösung per Ini-Datei |
Defense Grid | D3D9 | 1280 x 720 | 51 | Niedrig | Auflösung per Fenster-Modus |
Far Cry | D3D9 | 1024 x 768 | 36 | Hoch | Auflösung per Fenster-Modus |
Freelancer | D3D8 | 2560 x 1440 | 32 | Hoch | nativ flüssig |
Grim Dawn | D3D11 | 1280 x 720 | 16 | Niedrig | Auflösung per Fenster-Modus |
Mafia | D3D8 | 2560 x 1440 | 56 | Hoch | nativ flüssig |
Minecraft (Bedrock) | D3D12 | 1280 x 720 | 11 | Niedrig | Auflösung per Fenster-Modus |
Morrowind | D3D8 | 1024 x 768 | 45 | Hoch | Auflösung per Fenster-Modus |
Oblivion | D3D9 | 1280 x 720 | 13 | Mittel | Auflösung per Ini-Datei |
Skyrim | D3D9 | 1280 x 720 | 14 | Niedrig | Auflösung per Ini-Datei |
Skyrim SE | D3D11 | 1280 x 720 | 4 | Niedrig | Auflösung per Ini-Datei |
Starcraft Broodwar | DirectDraw | 1280 x 960 | 66 | Hoch | nativ flüssig |
Titan Quest | D3D9 | 1280 x 720 | 33 | Niedrig | Auflösung per Ini-Datei |
Trine | D3D9 | 1280 x 720 | 31 | Niedrig | kein SSAA |
Andere Titel wie Counter Strike Source, Crysis, Dawn of Man, Defense Grid, Far Cry, Freelancer, Grim Dawn, Mafia, Minecraft, Morrowind, Oblivion, Skyrim, Starcraft Broodwar und Titan Quest hingegen konnten wir zum Starten bringen. Die Bildrate fiel mit angepassten Einstellungen bei fast allen Spielen zumindest soweit flüssig aus, dass oft sogar 720p mit über 30 fps lief. Allerdings nutzt der Microsoft Basic Render Driver immer die native Panel-Auflösung, was bei uns in fixen 1440p resultierte.
Niedrige Auflösung nicht immer möglich
Um dennoch 1.280 x 720 Pixel oder 800 x 600 Pixel zu berechnen, mussten wir uns des Fenster-Modus (Far Cry, Morrowind) oder der spielinternen Konsole (CSS, Crysis) oder der Ini-Datei (Oblivion, Titan Quest) der einzelnen Titel bedienen. Hinzu kommt, dass die Windows Advanced Rasterization Platform - der Name impliziert es - ein reiner Software Rasterizer ist, also eine Video-Beschleunigung fehlt. Lokale Clips oder Youtube laufen daher nur mit hoher CPU-Last oder ruckeln aufgrund fallengelassener Frames.
Seit Windows 10 v1709 hat die WARP zudem offenbar keine Updates mehr erhalten, moderne CPU-Befehlssatzerweiterungen wie AVX(2) werden nicht unterstützt. Stattdessen werden alle Stages der Shader-Pipeline maximal als SSE4.1-Vector-Code ausgeführt, was die Geschwindigkeit auf halbwegs modernen Prozessoren einschränkt.
Disclaimer: Die Idee für diesen Artikel kam uns, nachdem Linus Tech Tips mit Swift Shader und Ian 'TechTechPotato' Cutress mit WARP vorgelegt hatten.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Wie ich schon sagte bräuchte es dafür eine neue Architektur sowas macht man nicht mal...
Erstens: Validierung. Grafiktreiber haben oft Bugs, wenn der Code auf dem Software...
Du kannst auch mal PCem ausprobieren. Mit dem Programm wird ein alter x86 PC akkurat...
in dxdiag: Direct3D-Beschleunigung Deaktiviert. Google etc: Nö, nix hilft. Lösung...
Nein. Denn selbst mit 64 Kernen in einer Softwareemulation von DirectX ist man langsamer...
Kommentieren