CullDistance
CullDistance
Decorating a variable with the CullDistance built-in decoration will
make that variable contain the mechanism for controlling user culling.
If any member of this array is assigned a negative value for all vertices
belonging to a primitive, then the primitive is discarded before
rasterization.
In fragment shaders, the values of the CullDistance array are linearly
interpolated across each primitive.
If CullDistance decorates an input variable, that variable will contain
the corresponding value from the CullDistance decorated output variable
from the previous shader stage.
Valid Usage
VUID-CullDistance-CullDistance-04196
The CullDistance decoration must be used only within the
MeshEXT, MeshNV, Vertex, Fragment,
TessellationControl, TessellationEvaluation, or Geometry
Execution Model
VUID-CullDistance-CullDistance-04197
The variable decorated with CullDistance within the MeshEXT,
MeshNV or Vertex Execution Model must be declared using the
Output Storage Class
VUID-CullDistance-CullDistance-04198
The variable decorated with CullDistance within the Fragment
Execution Model must be declared using the Input Storage Class
VUID-CullDistance-CullDistance-04199
The variable decorated with CullDistance within the
TessellationControl, TessellationEvaluation, or Geometry
Execution Model must not be declared using a Storage Class other than
Input or Output
VUID-CullDistance-CullDistance-04200
The variable decorated with CullDistance must be declared as an
array of 32-bit floating-point values