News DirectStorage 1.4: Mit Zstandard werden Spieldaten noch schneller entpackt

Jetzt arbeite Microsoft „eng mit GPU-Hardwareherstellern zusammen, um eine optimale Leistung der Zstd-Dekomprimierung auf verschiedenster Gaming-Hardware zu gewährleisten“, heißt es weiter. Per Treiberupdate soll die Leistung bei der GPU-Dekomprimierung via zstd optimiert werden. AMD und Nvidia haben neue Treiber für die zweite Jahreshälfte in Aussicht gestellt. Bei Intel ist von Optimierungen in den kommenden Monaten die Rede und Qualcomm will optimierte Treiber-Updates noch vor Jahresende bereitstellen.

[...]

Als Grund dafür gilt eine aufwendige Implementierung, wie PC World in einer Analyse schrieb: „DirectStorage ist mehr als nur eine Option, die man aktivieren kann, um Assets schnell zu laden. Es bedeutet einen grundlegenden Wandel im Spieldesign mit neuen Methoden zum Packen, Komprimieren und Dekomprimieren von Assets während des Spielablaufs“.
Da liegt doch der Hund begraben; Dass man mit den GPU-Herstellern zusammenarbeitet liegt auf der Hand, aber für eine breite Verbreitung muss man halt auch direkt Unreal, Unity und ggf. auch Godot mitnehmen, damit es dann eben doch nur ein einzelnes Häkchen in den Optionen ist, das bestenfalls ohne Seiteneffekte per Default eingeschaltet ist, sobald Win11 als Zielplattform ausgewählt ist.

Zumal ich den ganzen Ansatz ungeschickt finde; Die API neben der DirectX 3D API zu positionieren macht zwar im Hinblick auf die Modularität Sinn, aber nicht, wenn man eine breite Verwendung erreichen will. Effektiv ist das nämlich für alle großen Engines und Entwickler ein gelöstes Problem, heißt man müsste jetzt neuen Code schreiben um eine neue IO-Pipeline zu unterstützen, mit der man "nur wahrscheinlich" Vorteile hat - und zwar solche, die ohne Benchmark bzw. direkten Vergleich kaum einer bemerken wird.

Dass da kaum einer freudig Geld in die Hand nimmt, um den Kram zu implementieren, überrascht mich also recht wenig. :evillol:
 
  • Gefällt mir
Reaktionen: NMA, hans_meiser und CMDCake
0x8100 schrieb:
zstd gab es bereits (lange) als directstorage entwickelt wurde. warum wurde es dann nicht schon damals gewählt?
ragnarok666 schrieb:
Ich sehe nur eine Zukunft dafür, wenn es stattdessen einen dezidierten Fixed-Fuction Block auf der GPU gibt, der dies handhabt.
So ist es ja bei den aktuellen Konsolen auch realisiert - mit dezidierter HW.
G00fY schrieb:
Bin auch überrascht das Microsoft "erst jetzt" auf zstd setzen will. Ist doch schon lange etabliert.
Zstd ist ein kleinwenig kompliziert. Die Kompressionsrate gehen von -7 zu 22. Diese Kompressionsstufen unterscheiden sich dabei nicht nur in den Parametern wie Größe von Suchfenstern, sondern auch in mindestens neun verschiedenen "Strategien"[1], die sich bedingt im verwendeten Algorithmus zur Komprimierung unterscheiden. Solang da nicht sehr eng definiert wird, mit welcher Strategie da vorgegangen werden muss, ist das Ganze recht kompliziert. Die Komplexität bedingt auch, dass das wahrscheinlich für die Erstvorstellung gemieden wurde und dass fixe Hardwareeinheiten eher nicht zum Einsatz kommen.

[1] https://facebook.github.io/zstd/zstd_manual.html
Kano schrieb:
Wenn das Spiel eine dstorage.dll bzw. dstoragecore.dll hat wird es in irgendeiner weiße DirectStorage nutzen. Sonst wäre das ausliefern der DLL ja unnötig.
Das Spiele Assets mitbringen, die nirgends im Spiel genutzt werden, ist mehr oder weniger normal.
 
  • Gefällt mir
Reaktionen: M@tze und NMA
Muss man sich doch nicht wundern, unter Windows 10 wurde DirectStorage ja nur teilweise unterstützt.
Warum sollte nen Entwickler den Aufwand betreiben, das einzubauen und dann noch für Win10 und Win11 anzupassen.

Das Ei hat sich Microsoft selbst gelegt.
 
  • Gefällt mir
Reaktionen: Cleanor
ragnarok666 schrieb:
Das Problem an Direct Storage ist halt, das es die Shader der GPU zur Dekompression verwendet, was zu merklichen Rucklern führen kann. Ich sehe nur eine Zukunft dafür, wenn es stattdessen einen dezidierten Fixed-Fuction Block auf der GPU gibt, der dies handhabt.
Na Klasse, noch mehr Silizium, dass in jedem anderen Szenario ungenutzt rumgammelt. Würde man die dafür notwendigen Transistoren in mehr Shadereinheiten stecken, dann stünden diese auch allen anderen Anwendungen zur Verfügung. Davon hat man auf Dauer mehr. Vor allem: Wenn sich DirectStorage auch dann immer noch nicht durchsetzt, dann schleppt man jahrelang diese unnützen Funktionsblöcke mit sich rum, bis dann nach 20 Jahren mal alte Zöpfe abgeschnitten werden. Nein Danke.

Vor allem ist es ja nicht so, dass man das Problem nicht softwaretechnisch adressieren könnte. Klingt für mich eher nach einem Scheduling- und Optimierungs-Problem. Wenn die Applikation die Daten drei Sekunden früher anfordert, dann lässt sich die Dekomprimierung im Grundrauschen unterbringen. Die Daten werden ja nicht für jedes Frame dekomprimiert, sondern nur gelegentlich. Auch das spricht übrigens gegen HW-Funktionsblöcke - die hätten schlicht nichts zu tun, bis sich das darzustellende Szenario wieder ändert.
 
  • Gefällt mir
Reaktionen: derSafran und Bright0001
Tech-Dino schrieb:
Nutzt Monster Hunter Wilds das nicht? Oder nicht richtig?
Seven2758 schrieb:
1773363433366.png
 
  • Gefällt mir
Reaktionen: Tech-Dino und Seven2758
Yosup schrieb:
Vor allem ist es ja nicht so, dass man das Problem nicht softwaretechnisch adressieren könnte. Klingt für mich eher nach einem Scheduling- und Optimierungs-Problem.
Nur als Diskussion, das genau will DS ja addressieren. 'Ne game engine kann das nicht so einfach selber machen, die Daten fließen oder DS nicht direkt von SSD zur GPU, kann man nicht einfach so einschalten ohne DS.
 
ragnarok666 schrieb:
Das Problem an Direct Storage ist halt, das es die Shader der GPU zur Dekompression verwendet, was zu merklichen Rucklern führen kann.
glaube ich nicht, das sind extra dediziierte Hardwareunits

Der Witz an DS ist, das man die CPU entlastet, also sollte man sich Stellen mit CPU-Bottleneck anschauen,
wo die üblichen Nachladeruckler verschwinden sollten oder zumindestens nicht mehr so stark sind.
 
Zuletzt bearbeitet:
@GerryB Das hat nix mit Glaben zu tun, es ist bekannter Fakt, dass es bei NV über die Shader läuft. Nur die aktuellen Konsolen haben dafür dezidierte HW, bei der PS5 ist das ein angepasster ZEN CPU-Kern.

Wenn man nun mit VRR bei 100% GPU load spielt und DirectStroage knallt einen Burst load auf die Shader, kommt es zu merklichen Rucklern, das lässt sich nur vermeiden, indem man mit einem fps-Limit spielt, so dass bei der GPU jederzeit noch etwas freie Shaderleistung zur Verfügung steht.
 
  • Gefällt mir
Reaktionen: Schinken42
Wer ist denn so naiv und spielt mit 100% GPU-Limit?
(setz mal ein Fps-Limit)
 
Kano schrieb:
Wenn das Spiel eine dstorage.dll bzw. dstoragecore.dll hat wird es in irgendeiner weiße DirectStorage nutzen. Sonst wäre das ausliefern der DLL ja unnötig.
ich hab eben danach gesucht. Hunt hat die Dstorage.dll
 

Anhänge

  • Screenshot 2026-03-13 061427.png
    Screenshot 2026-03-13 061427.png
    7,3 KB · Aufrufe: 32
Mal direkt die neue Version 1.4.2603.504 drüberkopieren und schauen, ob es Verbesserungen gibt^^
 
GerryB schrieb:
Wer ist denn so naiv und spielt mit 100% GPU-Limit?
(setz mal ein Fps-Limit)
FPS Limit. :freaky: Kommt bei mir nur bei RPGs, MOBAs etc zum Einsatz - Shooter etc werden selbstverständlich auf 100% GPU Limit betrieben. :smokin:
 
  • Gefällt mir
Reaktionen: banenet und Unreal_Playa
Da bist Du evtl. auch vom Sys her ne Ausnahme, 5060Ti + 7800x3D, wo die CPU das schafft.
Weniger betuchte Gamer haben da vllt. noch nen R5 5600 am werkeln.

Ich will da auch Niemandem was vorschreiben, war nur so meine Idee, das Fps-Limit irgendwo zw.
CPU-Limit und GPU-Limit zu setzen, ... könnte dann Beiden helfen, wenn die Pipeline nicht so auf Anschlag läuft.

btw.
Wolfgang könnte eigentlich mal Ratchet & Clank nachtesten mit der neuen DS-Version.
(ob das immer noch auf NV hakelt, und/oder ob man mit Fps-Limit das smoothen kann)
und bitte bei NV nachfragen, wie die dedizierten Hardwareeinheiten für RTX I/O genau aussehen, ob das wirklich
normale ShaderUnits mit beackern
Interessant ist vllt. auch, wie bei DS-Games dann das rBar-Whitelisting ausschaut, ob sich das gegenseitig behindert.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Rhoxx
Wenn man dedizierte Hardware-Einheiten nutzen würde, dann könnten wir doch direkt zum N64 zurück.
"Das neue Spiel X auf Windows 11? Hast du denn auch das DirectStorage Expansion Pak"?
 
GerryB schrieb:
Wer ist denn so naiv und spielt mit 100% GPU-Limit?
(setz mal ein Fps-Limit)
Ich kenn mich aus und setz so ein Limit nur wenn es mir sinnvoll erscheint.
Natürlich ist es sinnvoll wenn das Spiel z.B. meistens über 60fps läuft den Limiter bei 60 zu aktivieren. Aber, das musst du erstmal herausfinden! Wenn ich das Spiel zufällig an der einen Stelle einstelle bei der ich mehr als 60fps habe und dann überall sonst nicht, dann hilft mir dieses Limit herzlich wenig.

Wenn das Spiel gute Frametimes im GPU Limit hat dann spiele ich doch sehr gerne auf meinem VRR Display ohne Limit.

Naiv würde ich also eher sagen wenn man immer ohne wenn und aber ein FPS Limit einstellt.
 
TESO nicht bei, Schade...
 
GerryB schrieb:
Wer ist denn so naiv und spielt mit 100% GPU-Limit?
(setz mal ein Fps-Limit)
Jeder der mit VRR spielt mit fps unterhalb der max Hz des Monitors spielt im 100% GPU Limit.
Selbst mit meiner RTX5080 schaffe ich in neuen Titeln selten feste 120fps auf meinem 4k Display, versuche daher die Settings immer so zu setzen, dass die fps möglichst nicht unter 60 fallen, den Rest überlasse ich G-Sync.
 
ragnarok666 schrieb:
Das Problem an Direct Storage ist halt, das es die Shader der GPU zur Dekompression verwendet, was zu merklichen Rucklern führen kann. Ich sehe nur eine Zukunft dafür, wenn es stattdessen einen dezidierten Fixed-Fuction Block auf der GPU gibt, der dies handhabt.
So ist es ja bei den aktuellen Konsolen auch realisiert - mit dezidierter HW.
Also auf den Konsolen läuft das generell?
Meine Meinung, wenn die Implementierung für PC Games derart "kompliziert/aufwendig" ist dann muss MS das so umsetzen, das das eigentlich nur ein "Schalter" beim Kompilieren ist den man an/aus schaltet - der Rest muss dann "automatisisert" laufen und gut..

Gut wenn man auf der GPU Leistung "weg" nimmt muss das intelligent passieren sonst - klar Ruckeln...
 
Kano schrieb:
Wenn das Spiel eine dstorage.dll bzw. dstoragecore.dll hat wird es in irgendeiner weiße DirectStorage nutzen. Sonst wäre das ausliefern der DLL ja unnötig.
Haha, zu erfahren wie oft einfach diverse Redistributables eines SDK mitgelifert werden, egal ob man sie am Ende noch braucht oder nicht, würde das Forum verunsichern... 😄
 
  • Gefällt mir
Reaktionen: M@tze
Zurück
Oben