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 

Weitere Informationen

Übersicht über Shader-Modell 6

Shader-Modell 6