WaveActiveBallot-Funktion

Gibt einen uint4-Wert zurück, der eine Bitmaske der Auswertung des booleschen Ausdrucks für alle aktiven Lanes in der aktuellen Welle enthält.

Syntax

uint4 WaveActiveBallot(
   bool expr
);

Parameter

expr

Der auszuwertende boolesche Ausdruck.

Rückgabewert

Ein uint4-Element, das eine Bitmaske der Auswertung des booleschen Ausdrucks für alle aktiven Lanes in der aktuellen Welle enthält. Das bit mit der geringsten Bedeutung entspricht der Lane mit index null. Die Bits, die inaktiven Lanes entsprechen, sind null. Die Bits, die größer oder gleich WaveGetLaneCount sind, sind null.

Bemerkungen

Verschiedene GPUs weisen unterschiedliche SIMD-Prozessorbreiten (Anzahl der Lanes) auf. Die meisten dieser WaveXXX-Funktionen sind in der Lage, auf der Ebene der Abstraktion zu arbeiten, bei der die SIMD-Maschinenbreite verborgen ist. Um die Portabilität von Code über GPUs hinweg zu maximieren, verwenden Sie die systeminternen Funktionen, die nicht auf der Maschinenbreite basieren. Verwenden Sie z.B. Folgendes:

uint result = WaveActiveCountBits( bBit );

Verwenden Sie anstelle von

uint result = countbits( WaveActiveBallot( bBit ) );

Diese Funktion wird vom Shadermodell 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 Shadermodell 6

Shadermodell 6