ps _ 2 _ x
Ein programmierbarer Pixelshader besteht aus einer Reihe von Anweisungen, die mit Pixeldaten arbeiten. Registriert Datenübertragungen in und aus der ALU. Es kann ein zusätzliches Steuerelement angewendet werden, um die Anweisung, die Ergebnisse oder die geschriebenen Daten zu ändern.
- ps _ 2 _ x Instructions enthält eine Liste der verfügbaren Anweisungen.
- ps _ 2 _ x Register listet die verschiedenen Registertypen auf, die von der Vertex-Shader-ALU verwendet werden.
- Modifizierer Werden verwendet, um die Funktionsweise einer Anweisung zu ändern.
- Zielregister-Schreibmaske bestimmt, welche Komponenten des Zielregisters geschrieben werden.
- Die Quellregistermodifizierer des Pixelshader ändern die Quellregisterdaten, bevor die Anweisung ausgeführt wird.
- Das Quellenregister swizzling bietet zusätzliche Kontrolle darüber, welche Registerkomponenten gelesen, kopiert oder geschrieben werden.
Dynamisches Flow-Steuerelement
DynamicFlowControlDepth stellt die Schachtelungstiefe dynamischer Ablaufsteuerungsanweisungen dar: , wenn , wenn _ comp, wenn vor _ , break - ps, und break comp - _ ps. Der Wert entspricht der Schachtelungstiefe des if _ comp-Blocks. Wenn diese Obergrenze 0 (null) ist, unterstützt das Gerät keine Anweisungen zur dynamischen Flusssteuerung.
Anzahl temporärer Register
Die Anzahl der vom Gerät unterstützten temporären Register. Der Bereich liegt zwischen 12 und 32.
Schachtelungstiefe für statische Flow-Steuerelement
StaticFlowControlDepth stellt die Schachtelungstiefe von zwei Typen statischer Ablaufsteuerungsanweisungen dar: / Schleifenreplik und Aufruf / von callnz. Schleifenanweisungen /rep können bis zu StaticFlowControlDepth deep geschachtelt werden. Unabhängig davon können Aufrufanweisungen von /callnz bis zu StaticFlowControlDepth deep geschachtelt werden.
Anzahl der Anweisungsslots
Die Anzahl der Anweisungsslots kann zwischen 96 und maximal 512 liegen und wird von MaxPixelShaderInstructionSlotsangegeben. Die Gesamtzahl der Anweisungen, die ausgeführt werden können, wird von MaxPixelShaderInstructionsExecuted definiert. Dies kann aufgrund von Schleifen- und Unterroutinenaufrufen größer als die Anzahl der Anweisungsslots sein.
Beliebiger Swizzle
Wenn D3DD3DPSHADERCAPS2 _ 0 _ ARBITRARYSWIZZLE festgelegt ist, wird beliebige Swizzle unterstützt. Weitere Informationen finden Sie unter Source Register Swizzling.
Farbverlaufsanweisungen
Wenn D3DD3DPSHADERCAPS2 _ 0 _ GRADIENTINSTRUCTIONS festgelegt ist, werden Farbverlaufsanweisungen unterstützt. Siehe dsx – ps, dsy – psund texldd – ps.
Prädikation
Wenn D3DD3DPSHADERCAPS2 _ 0 _ PREDICATION festgelegt ist, wird die Anweisungsprädikation unterstützt. Weitere Informationen finden Sie unter Prädikatregister.
Abhängiger Lesegrenzwert
Wenn D3DD3DPSHADERCAPS2 _ 0 _ NODEPENDENTREADLIMIT festgelegt ist, gibt es keine abhängigen Leselimits.
Grenzwert für Texturanweisung
Wenn D3DD3DPSHADERCAPS2 _ 0 _ NOTEXINSTRUCTIONLIMIT festgelegt ist, gibt es keine Beschränkung für Texturanweisungen.
Sampleranzahl
Die Anzahl der verfügbaren Textur-Sampler beträgt 16.