Waveactiveballot-Funktion
Gibt einen uint4-Wert zurück, der eine Bitmaske der Auswertung des booleschen Ausdrucks für alle aktiven Bereiche in der aktuellen Wave enthält.
Syntax
uint4 WaveBallot(
bool expr
);
Parameter
-
expr
-
Der auszuwertende boolesche Ausdruck.
Rückgabewert
Ein uint4-Wert, der eine Bitmaske der Auswertung des booleschen Ausdrucks für alle aktiven Bereiche in der aktuellen Wave enthält. Das unwichtigste Bit entspricht dem Bereich mit dem Index 0 (null). Die Bits, die inaktiven Bereichen entsprechen, sind 0 (null). Die Bits, die größer oder gleich wavegetlanecount sind, sind 0 (null).
Bemerkungen
Unterschiedliche GPUs verfügen über unterschiedliche SIMD-Prozessor breiten (Lane Counts). Die meisten dieser wavexxx -Funktionen können auf Abstraktions Ebene betrieben werden, wenn die Breite des SIMD-Computers verborgen ist. Verwenden Sie die systeminternen Funktionen, die nicht auf der Computer Breite basieren, um die Portabilität von Code über GPUs zu maximieren. Verwenden Sie z.B. Folgendes:
uint result = WaveActiveCountBits( bBit );
anstelle von:
uint result = countbits( WaveActiveBallot( bBit ) );
Diese Funktion wird vom Shader-Modell 6,0 in allen shaderphasen unterstützt.
Beispiele
// get a bitwise representation of the number of currently active lanes:
uint4 waveBits = WaveActiveBallot( true ); // convert to bits