u_vbuf: Mark vbufs incompatible if more were requested than HW supports
More vertex buffers are used than the hardware supports. In principle, we only need to make sure that less vertex buffers are used, and mark some of the latter vertex buffers as incompatible. For now, mark all vertex buffers as incompatible. Signed-off-by: Paul Cercueil <paul@crapouillou.net> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2807>
This commit is contained in:
parent
5f37e38b81
commit
88d041a6b9
|
@ -788,6 +788,17 @@ u_vbuf_create_vertex_elements(struct u_vbuf *mgr, unsigned count,
|
|||
}
|
||||
}
|
||||
|
||||
if (used_buffers & ~mgr->allowed_vb_mask) {
|
||||
/* More vertex buffers are used than the hardware supports. In
|
||||
* principle, we only need to make sure that less vertex buffers are
|
||||
* used, and mark some of the latter vertex buffers as incompatible.
|
||||
* For now, mark all vertex buffers as incompatible.
|
||||
*/
|
||||
ve->incompatible_vb_mask_any = used_buffers;
|
||||
ve->compatible_vb_mask_any = 0;
|
||||
ve->incompatible_elem_mask = u_bit_consecutive(0, count);
|
||||
}
|
||||
|
||||
ve->used_vb_mask = used_buffers;
|
||||
ve->compatible_vb_mask_all = ~ve->incompatible_vb_mask_any & used_buffers;
|
||||
ve->incompatible_vb_mask_all = ~ve->compatible_vb_mask_any & used_buffers;
|
||||
|
|
Loading…
Reference in New Issue