Microsoft brengt prestatieverbetering met nieuwe DirectStorage 1.2, zelfs op langzamere HDD’s

Microsoft brengt prestatieverbetering met nieuwe DirectStorage 1.2, zelfs op langzamere HDD’s

Microsoft heeft de nieuwste versie van zijn DirectStorage API uitgebracht. De nieuwe versie, 1.2, brengt een aantal nieuwe functies en bugfixes met zich mee. Er is ook een prestatieverbetering in petto dankzij enkele aangebrachte wijzigingen.

Met DirectStorage 1.2 brengt Microsoft gebufferde IO-modus. Het bedrijf zegt dat het een reactie is op ontwikkelaars die hetzelfde codepad willen gebruiken, zowel op solid-state drives (SSD’s) als op harde schijven (HDD’s). HDD’s werken in de gebufferde IO-modus omdat ze veel langere zoektijden hebben. Het bedrijf schrijft:

DirectStorage opent momenteel bestanden in niet-gebufferde modus. Hierdoor kunnen we onnodige kopieën voorkomen en de gegevens zo snel mogelijk op de GPU krijgen. We hebben echter van sommige ontwikkelaars gehoord dat ze graag dezelfde code willen gebruiken op zowel supersnelle SSD’s als oudere harde schijven. De oudere harde schijven hebben gebufferde IO nodig om de lange zoektijden te maskeren. Om deze reden hebben we de mogelijkheid toegevoegd om DirectStorage te configureren om bestanden in gebufferde modus te openen.

Afgezien van gebufferde IO, is er een nieuwe GetCompressionSupport API geïntroduceerd die de mogelijkheid toevoegt om het gebruikte decompressiepad op te vragen, of dit nu de GPU of het fallback CPU-pad is. De volledige changelog voor DirectStorage 1.2 vindt u hieronder:

Nieuwe functies

  • Voeg ondersteuning toe voor het inschakelen van gebufferde bestands-IO voor gebruik op HDD’s die kunnen profiteren van OS-bestandcachinggedrag.
  • Voeg IDStorageQueue2::GetCompressionSupport API toe om aan te geven welk pad de DirectStorage-runtime zal nemen bij het decomprimeren van een ondersteunde GPU-decompressie-indeling.
  • Werk dstorage.h en dstorageerr.h bij om te worden gedekt door de MIT-licentie.
  • Voeg Microsoft.Direct3D.DirectStorage.winmd toe om het genereren van niet-C++-bindingen met de API te vergemakkelijken.

Bugfixes

  • Voeg het veld “Gereserveerd1” toe aan DSTORAGE_REQUEST_OPTIONS. Dit maakt de lay-out in het geheugen van de structuur explicieter, maar verandert de lay-out van eerdere versies niet echt.
  • Fix DSTORAGE_REQUEST_DESTINATION_TEXTURE_REGION voor 3D-texturen.
  • Schemaprobleem opgelost dat zich voordeed bij het overbrengen van niet-gecomprimeerde gegevens van geheugen naar buffers

Prestatieverbeteringen

  • Verplaats de kopie na GPU-decompressie naar de rekenwachtrij voor GPU’s waar dit sneller is.

Meer details over de officiële blogpost vind je hier .

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *