{
enum pipe_prim_type mode:8; /**< the mode of the primitive */
ubyte vertices_per_patch; /**< the number of vertices per patch */
- ubyte index_size; /**< if 0, the draw is not indexed. */
+ unsigned index_size:4; /**< if 0, the draw is not indexed. */
+ unsigned view_mask:6; /**< mask of multiviews for this draw */
bool primitive_restart:1;
bool has_user_indices:1; /**< if true, use index.user_buffer */
bool index_bounds_valid:1; /**< whether min_index and max_index are valid;
bool increment_draw_id:1; /**< whether drawid increments for direct draws */
bool take_index_buffer_ownership:1; /**< callee inherits caller's refcount
(no need to reference indexbuf, but still needs to unreference it) */
- char _pad:3; /**< padding for memcmp */
+ char _pad:1; /**< padding for memcmp */
unsigned start_instance; /**< first instance id */
unsigned instance_count; /**< number of instances */
info.start_instance = baseInstance;
info.instance_count = numInstances;
info.drawid = 0;
+ info.view_mask = 0;
info.min_index = start;
info.max_index = start + count - 1;
info.start_instance = 0;
info.instance_count = 1;
info.drawid = 0;
+ info.view_mask = 0;
for (int i = 0; i < primcount; i++) {
draw[i].start = first[i];
info.start_instance = baseInstance;
info.instance_count = numInstances;
info.drawid = 0;
+ info.view_mask = 0;
info.index_bias = basevertex;
info.restart_index = ctx->Array._RestartIndex[index_size_shift];
info.start_instance = 0;
info.instance_count = 1;
info.drawid = 0;
+ info.view_mask = 0;
info.restart_index = ctx->Array._RestartIndex[index_size_shift];
if (info.has_user_indices)
info.take_index_buffer_ownership = false;
info.vertices_per_patch = ctx->TessCtrlProgram.patch_vertices;
info.restart_index = 0;
+ info.view_mask = 0;
st_flush_bitmap_cache(st);
st_invalidate_readpix_cache(st);