Share via


Software-Shader

Softwareshader werden implementiert, um die Entwicklung von Shadern ohne zugrunde liegende Hardwareunterstützung zu ermöglichen. Sie unterstützen den vollständigen Featuresatz. Da sie in Software implementiert sind, erzielen sie nicht die beste Leistung.

Version Funktionsgruppe Anforderungen
vs_2_sw Alle Features von vs_2_x Wird nur von der Softwarevertexverarbeitung und einem Referenzgerät unterstützt.
vs_3_sw Alle Features von vs_3_0 Wird nur von der Softwarevertexverarbeitung und einem Referenzgerät unterstützt.
ps_2_sw Alle Features von ps_2_x Wird nur von einem Referenzgerät unterstützt.
ps_3_sw Alle Features von ps_3_0 Wird nur von einem Referenzgerät unterstützt.

 

Einige Validierungen sind für Softwareshader gelockert. Dies ist für Debugging- und Prototyperstellungszwecke nützlich. Die folgenden Überprüfungen werden gelockert: (alle anderen Validierungen bleiben gleich)

Überprüfungstyp Entspannung
Anzahl der Anweisungen: Dies ist für vs_2_sw, vs_3_sw und ps_2_sw ps_3_sw gelockert. Unbegrenzte Anweisungen sind zulässig.
Anzahl der Gleitkommakonstanten: Dies ist für vs_2_sw, vs_3_sw und ps_2_sw ps_3_sw gelockert. Bis zu 8192 Konstanten sind zulässig.
Anzahl ganzzahliger Konstanten: Dies ist für vs_2_sw, vs_3_sw und ps_2_sw ps_3_sw gelockert. Bis zu 2048 Konstanten sind zulässig.
Anzahl boolescher Konstanten: Dies ist für vs_2_sw, vs_3_sw und ps_2_sw ps_3_sw gelockert. Bis zu 2048 Konstanten sind zulässig.
Tiefe abhängiger Lesevorgänge: Dies ist für ps_2_sw gelockert. Wie in vs_3_0 und ps_3_0 sind unbegrenzte abhängige Lesevorgänge zulässig.
Anzahl der Flusssteuerungsanweisungen und Bezeichnungen: Dies ist für vs_2_sw gelockert. Unbegrenzte Flusssteuerungsanweisungen und bis zu 2048 Bezeichnungen sind zulässig.
Schleifenanzahl/Start/Schritt: Diese sind für vs_2_sw, vs_3_sw, ps_2_sw und ps_3_sw entspannt. Iterationsstart- und Interationsschrittegröße für Wiederholungs- und Schleifenanweisungen sind 32-Bit-Interger mit Vorzeichen. Die Anzahl der Interationen kann bis zu MAX_INT/64 sein.
Grenzwerte für Leseports: vs_2_sw, vs_3_sw, ps_2_sw und ps_3_sw haben kein Leseportlimit.
Anzahl der Interpolatoren: Es gibt 16 Register – vs_3_0 (o#) in vs_3_sw und 10 ps_3_0 Register (v#) für ps_3_sw.

 

Referenz zum Asm-Shader