News DirectSR Vorschau verfügbar: DLSS, FSR, XeSS sind jetzt ein­facher in Spielen zu verankern

Was sollen denn die Vulkan-Leute machen? Ihr Schnittstelle Closed Source machen? 🤪
 
  • Gefällt mir
Reaktionen: up.whatever
Sehr interessant das Ganze, bin super gespannt. Die Bedenken bleiben weiterhin, dass Entwickler weniger Wert auf Optimierung legen und einfach Upscaler integrieren. Gruß
 
canada schrieb:
Da FSR 2.x frei verfügbar ist, wird das MS wohl fest integriert haben. Dürfe ja besser funktionieren als nur über Treiber eingebunden? FSR 3.x ist ja noch nicht frei verfügbar oder? Das wird dann bestimmt auch über Treiber gehen seitens AMD, alles andere wäre unlogisch. Später wird MS evtl. dann auch FSR3.x fest integrieren.
Ich glaube du solltest dich nochmal informieren. Über den Treiber geht nur RSR (FSR 1)
 
  • Gefällt mir
Reaktionen: gruuli
canada schrieb:
Das wird dann bestimmt auch über Treiber gehen seitens AMD, alles andere wäre unlogisch.
FSR 2? Nein, der Treiber hat auf gewisse Informationen im Spiel keinen Zugriff, die FSR 2+ aber benötigen (deswegen nur FSR 1 im Treiber), ich denke das wird sich technisch nicht ändern, deswegen geht der Weg ja jetzt über eine API-Implementierung, zwischen Treiber und Spiel.
 
und wie hat dann MS DLSS nur per Treiber eingebunden in ihr DirectX SR?
 
Das wirft tatsächlich interessante Fragen auf, welche Firmen über welche Technik-Abhängigkeiten voneinander profitieren.
 
canada schrieb:
und wie hat dann MS DLSS nur per Treiber eingebunden in ihr DirectX SR?

Haben sie doch gar nicht.
Prinzip nicht verstanden?

Was MS hier anbietet ist eine Programmierschnittstelle (API). So gibt es eine fest definierte Schnittstelle über die alle Upscaler der verschiedenen Hersteller angesprochen werden können.

Vorher hat ein Entwickler DLSS, FSR und XeSS jweils einzeln integrieren müssen. Also explizit drei technologien separat integrieren und den code dafür anpassen.

Mit DX SR muss nur noch die DX SR Schnittstelle vom Spiel angesprochen werden. Heißt, der Entwickler muss die Arbeit nur noch einmal statt dreimal machen. Die Schnittstelle nimmt die Befehle vom Spiel entgegen und gibt sie dann an den jeweiligen Treiber weiter der dann je nach verbauter Hardware entweder DLSS, XeSS oder FSR anwendet.

Praktisch kann der Entwickler damit in einem Rutsch alle Upscaler auf einmal integrieren und spart sich damit Arbeit.
 
  • Gefällt mir
Reaktionen: raPid-81
lynxx83 schrieb:
aber wie sieht es bei der "Optimierung" aus?
Aus AMDs Blog über die Implementierung in DirectSR:
C:
DSR_SUPERRES_UPSCALER_EXECUTE_PARAMETERS params
{
    .pTargetTexture            = target,
    .TargetRegion              = D3D12_RECT{ 0, 0, targetResX, targetResY },
    .pSourceColorTexture       = pSourceColor,
    .SourceColorRegion         = D3D12_RECT{ 0, 0, sourceResX, sourceResY },
    .pSourceDepthTexture       = sourceDepth,
    .SourceDepthRegion         = D3D12_RECT{ 0, 0, sourceResX, sourceResY },
    .pMotionVectorsTexture     = motionVectors,
    .MotionVectorsRegion       = D3D12_RECT{ 0, 0, sourceResX, sourceResY },
    .MotionVectorScale         = DSR_FLOAT2{ 1.f, 1.f },
    .CameraJitter              = DSR_FLOAT2{ cameraJitterX, cameraJitterY },
    .ExposureScale             = 1.f,
    .PreExposure               = 1.f,
    .Sharpness                 = 1.f,
    .CameraNear                = 0.f,
    .CameraFar                 = INFINITY,
    .CameraFovAngleVert        = 1.f,
    .pExposureScaleTexture     = nullptr,
    .pIgnoreHistoryMaskTexture = nullptr,
    .IgnoreHistoryMaskRegion   = D3D12_RECT{ 0, 0, sourceResX, sourceResY },
    .pReactiveMaskTexture      = reactiveMask,
    .ReactiveMaskRegion        = D3D12_RECT{ 0, 0, sourceResX, sourceResY },
};

Das sind die aktuellen Parameter die DirectSR frisst. Was da nicht drin ist, bekommt die Implementierung nicht, oder müsste sich der Treiber Spiel-Abhängig würfeln. Aber das enthält ja schon Einiges. Und auch die Dinge die FSR2 eingeführt hat als optional (IgnoreHistoryMask & reactiveMask).
lynxx83 schrieb:
Ich nehme an der Teil der Arbeit entfällt dadurch nicht - wie läuft das dann konkret ab,
Höhere Abstraktion heißt auch immer das spezifische Optimierungen weniger werden. Die erfordern genau dass man weniger abstrakt arbeitet. Dann kann die Implementierung aber auch nicht Algorithmus-agnostisch sein.

Nur die alten Konsolen ohne OS waren so fix und in Stein gemeißelt, dass die Entwickler angefangen haben ihre Spiele auf Eigenschaften des Systems zu optimieren, die weder garantiert noch spezifiziert waren. Führt dann natürlich dazu, dass die Software auf einem, die Spezifikationen vollständig erfüllenden, Nachbau nicht richtig läuft. Und die Hersteller konnten nicht einfach ein Upgrade ausliefern, weil jede Änderung irgendeine nicht-spezifizierte Optimierung brechen könnte.
 
  • Gefällt mir
Reaktionen: Zagrthos und lynxx83
Mimir schrieb:
Haben sie doch gar nicht.
Prinzip nicht verstanden?
Was ist dann der Unterschied "FSR 2.2 fest integriert, DLSS und XeSS via Treiber"?
 
@canada hat doch recht. Microsoft bringt mit DirectSR eine Schnittstelle mit der zukünftige Treiber die zur jeweiligen Zeit jeweils aktuelle upscaling Technologien (DLSS, XeSS, FSR ab 3 (weil FSR2.2 eh schon in DirectSR integriert ist)) mit Bewegungsdaten usw einbringen können. Unabhängig davon können bereits verfügbare Treiber von AMD jetzt schon zusätzlich oder alternativ RSR (quasi FSR1 - ohne Bewegungsdaten).
 
Ich finde die Formulierungen auch recht verwirrend. "DLSS über Treiber" klingt ja erstmal nach RSR, AFMF etc.

Ich gehe mal davon aus, dass die Schnittstelle von DirectSR einfach die nvngx_dlss.dll ersetzt, die bisher die Kommunikation zwischen Spiel und Treiber übernommen hat.

Aber den Unterschied zu FSR verstehe ich hier dann trotzdem nicht so recht.
Muss hier keine Kommunikation mit dem Treiber stattfinden? Musste sie das bei bisherigen Implementierungen auch schon nicht?
 
Zuletzt bearbeitet:
canada schrieb:
Was ist dann der Unterschied "FSR 2.2 fest integriert, DLSS und XeSS via Treiber"?
Da FSR open source ist kann es komplett in funktionsfähiger Form in DirectSR integriert werden.

DLSS und XeSS sind proprietär und nur über den Herstellertreiber auf den jeweiligen Grafikkarten nutzbar, deswegen muss Microsoft dort den Weg über den Treiber gehen.
 
  • Gefällt mir
Reaktionen: Tanzmusikus und guggi4
metoer schrieb:
komplett in funktionsfähiger Form in DirectSR integriert werden.

DLSS und XeSS sind proprietär und nur über den Herstellertreiber auf den jeweiligen Grafikkarten nutzbar,
Das hatte ich ja geschrieben und alle anderen meinten ich verstehe das Prinzip nicht 😁
 
canada schrieb:
Das hatte ich ja geschrieben
Du hattest geschrieben, dass sie DLSS "nur per Treiber" eingebunden haben, zusammen mit deiner vorherigen Bemerkung dass eine direkte Implementierung von FSR ja besser funktionieren sollte, als "nur über den Treiber".

Der Vergleich ist in dem Zusammenhang halt falsch, da du hier reine Treiberfeatures die keinen Zugriff auf Spieldateien haben, mit der Funktion von DirectSR in Verbindung mit DLSS/XeSS gleichstellst.

Wenn man so will, ist DLSS auch schon immer über den Treiber integriert, aber eben nur in dem Sinne, dass der Nvidia Treiber über die vorhandene dlss.dll mit dem Spiel kommuniziert. Es ist ja trotzdem im Spiel integriert.
Wenn man es aber so schreibt, wie du es getan hast, klingt es halt so, als wäre DLSS einfach wie RSR über den Treiber auf das Spiel drauf geklatscht.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Tanzmusikus, Mimir und metoer
Taxxor schrieb:
Aber den Unterschied zu FSR verstehe ich hier dann trotzdem nicht so recht.
Muss hier keine Kommunikation mit dem Treiber stattfinden? Musste sie das bei bisherigen Implementierungen auch schon nicht?
Ich denke das FSR einfach relativ allgemeine Befehle nutzt die von jeder DX12 Hardware sowieso unterstützt werden müssen, deswegen braucht es da keine Treiberintegration und es ist bis runter zur RX 400 Serie nutzbar.

Das UE5 TSR upscaling funktioniert ja auch auf allen GPUs die mindestens das Shader Model 5 unterstützen, da muss im Treiber nichts spezielles gemacht werden.
 
  • Gefällt mir
Reaktionen: Taxxor
Ja, FSR und TSR sind „simple“ computeshader die das Spiel selbst oder eben via DX SR ausgeführt werden können. Das sind keine Features, die Treiberunterstützung brauchen. Sie brauchen aber die Inputs vom Spiel. Entweder direkt oder via DX SR Schnittstelle.
Ein DLSS bekommst du aber nur zum laufen, wenn ein Nvidia Grafiktreiber installiert ist. (Läuft nur auf nvidia Karten)

Gut, die Formulierungen mögen verwirrend sein, aber wenn man weiß was der Sinn einer API ist, dann erklärt sich das alles doch von selbst.
 
metoer schrieb:
Da FSR open source ist kann es komplett in funktionsfähiger Form in DirectSR integriert werden.

DLSS und XeSS sind proprietär und nur über den Herstellertreiber auf den jeweiligen Grafikkarten nutzbar, deswegen muss Microsoft dort den Weg über den Treiber gehen.
Zusätzlich:
Wenn FSR auch in Zukunft auf beispielsweise GTX 1xxx Karten nutzbar sein soll, muss es vollständig in DirectSR integriert sein, NVidia wird es wohl kaum in den Treiber implementieren
 
Ich frage mich ob man als Nvidia oder AMD User kein XeSS mehr nutzen kann, wenn das Upscaling über DX SR läuft?

Für Nvidia User zumindest mit RTX Karten kein Verlust, aber besonders für AMD User wäre es schmerzhaft, wenn man keine Alternative zu FSR mehr hätte.
 
BrollyLSSJ schrieb:
Also laut der Microsoft Developer Seite wohl alles ab RTX 20.
Also die 16xx können zumindest FSR

hier in LS22
1717143728362.png
 
Taxxor schrieb:
Ich finde die Formulierungen auch recht verwirrend. "DLSS über Treiber" klingt ja erstmal nach RSR, AFMF etc.
canada schrieb:
Was ist dann der Unterschied "FSR 2.2 fest integriert, DLSS und XeSS via Treiber"?

Das sind 2 verschiedene Dinge "über Treiber". Bei den anderen Beispielen heißt "über Treiber", dass das eine Option ist, die nicht mit dem Spiel integriert ist. Das Spiel weiß davon also nichts und der Treiber hat nur beschränkten Zugriff auf die Daten im Spiel und setzt mehr oder weniger erst gaaanz am Ende auf dem fertigen Bild vom Spiel auf.

Hier, mit DirectSR reden wir mit "vom Treiber" nur vom Ort wo der Code liegt, der die eigentliche Arbeit macht.

DirectSR ist die Integration mit dem Spiel. Das Spiel kann ja sogar sehen welche Techniken der Treiber bereitstellt, kommuniziert mit der gewählten SR Lösung mitten aus dem Spiel heraus mit verschiedenen zusätzlichen Infos. Es ist also genauso gut mit dem Spiel integriert wie vorher.

Aber der Punkt ist ja, dass es Herstellerunabhängig werden soll. Deshalb kann man nicht mehr wie bisher die 60 MiB DLLs von Nvidia mit dem Spiel ausliefern, in denen der Code ist um DLSS zu machen (die dann der Spielentwickler für eine neuere Version austauschen muss). Sondern der Code liegt im Treiber, wird von diesem für das Spiel bereitgestellt und kann dann auch Spiel-Unabhängig aktualisiert werden. Solange Microsofts vereinheitlichte und generische Parameter passen für alles was die Hersteller in Zukunft machen möchten.

Wie andere schon gesagt haben, da FSR OpenSource ist und Herstellerunabhängig läuft, haben sie es kurzerhand mit in die DirectSR Runtime gebacken. Da wird der Code also mit der Schnittstelle mit ausgeliefert. Heißt, um dieses FSR zu aktualisieren, muss das Spiel vermutlich die DirectSR Library updaten, wie bisher. Aber auf der anderen Seite geht das auch, selbst wenn kein Treiber da ist, der weitere Varianten anbietet. Evtl könnte AMD aber zusätzlich zur reingebackenen alten FSR Variante auch eine Variante aus ihrem Treiber anbieten, die dann auch mit dem Treiber aktualisiert wird.

Wenn FSR nicht mit in die DirectSR Library gebacken wäre, dann müsste jeder Treiberentwickler (Nvidia, Intel) selbst eine Kopie von FSR ausliefern. Oder FSR gäbe es nur als Option auf AMD Systemen.
Wobei es schade ist, dass sie das nicht auch mit der Herstelleragnostischen Version von XeSS gemacht haben.
Aber auf der anderen Seite zwingt wahrscheinlich niemand, das nur GPU Treiber solche Upscaler für DirectSR anbieten können. Die könnten wenn notwendig vermutlich auch genauso gut als eigenständige Dinge installiert werden, falls jemand XeSS auf nicht-Intel GPUs nutzen mag (ob sich Intel und Microsoft die Mühe dafür machen ist eine andere Frage).
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Taxxor
Zurück
Oben