gallium: new CAP, state for primitive restart
This commit is contained in:
@@ -156,6 +156,15 @@ If there is an index buffer bound, and ``indexed`` field is true, all vertex
|
|||||||
indices will be looked up in the index buffer. ``min_index``, ``max_index``,
|
indices will be looked up in the index buffer. ``min_index``, ``max_index``,
|
||||||
and ``index_bias`` apply after index lookup.
|
and ``index_bias`` apply after index lookup.
|
||||||
|
|
||||||
|
When drawing indexed primitives, the primitive restart index can be
|
||||||
|
used to draw disjoint primitive strips. For example, several separate
|
||||||
|
line strips can be drawn by designating a special index value as the
|
||||||
|
restart index. The ``primitive_restart`` flag enables/disables this
|
||||||
|
feature. The ``restart_index`` field specifies the restart index value.
|
||||||
|
|
||||||
|
When primitive restart is in use, array indexes are compared to the
|
||||||
|
restart index before adding the index_bias offset.
|
||||||
|
|
||||||
If a given vertex element has ``instance_divisor`` set to 0, it is said
|
If a given vertex element has ``instance_divisor`` set to 0, it is said
|
||||||
it contains per-vertex data and effective vertex attribute address needs
|
it contains per-vertex data and effective vertex attribute address needs
|
||||||
to be recalculated for every index.
|
to be recalculated for every index.
|
||||||
|
@@ -452,6 +452,7 @@ enum pipe_cap {
|
|||||||
PIPE_CAP_BLEND_EQUATION_SEPARATE,
|
PIPE_CAP_BLEND_EQUATION_SEPARATE,
|
||||||
PIPE_CAP_SM3, /*< Shader Model, supported */
|
PIPE_CAP_SM3, /*< Shader Model, supported */
|
||||||
PIPE_CAP_STREAM_OUTPUT,
|
PIPE_CAP_STREAM_OUTPUT,
|
||||||
|
PIPE_CAP_PRIMITIVE_RESTART,
|
||||||
/** Maximum texture image units accessible from vertex and fragment shaders
|
/** Maximum texture image units accessible from vertex and fragment shaders
|
||||||
* combined */
|
* combined */
|
||||||
PIPE_CAP_MAX_COMBINED_SAMPLERS,
|
PIPE_CAP_MAX_COMBINED_SAMPLERS,
|
||||||
|
@@ -457,6 +457,12 @@ struct pipe_draw_info
|
|||||||
int index_bias; /**< a bias to be added to each index */
|
int index_bias; /**< a bias to be added to each index */
|
||||||
unsigned min_index; /**< the min index */
|
unsigned min_index; /**< the min index */
|
||||||
unsigned max_index; /**< the max index */
|
unsigned max_index; /**< the max index */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Primitive restart enable/index (only applies to indexed drawing)
|
||||||
|
*/
|
||||||
|
boolean primitive_restart;
|
||||||
|
unsigned restart_index;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user