{
struct nv30_context *nv30 = nv30_context(pipe);
struct nouveau_pushbuf *push = nv30->base.pushbuf;
+ int i;
/* For picking only a few vertices from a large user buffer, push is better,
* if index count is larger and we expect repeated vertices, suggest upload.
return;
}
+ for (i = 0; i < nv30->num_vtxbufs && !nv30->base.vbo_dirty; ++i) {
+ if (!nv30->vtxbuf[i].buffer)
+ continue;
+ if (nv30->vtxbuf[i].buffer->flags & PIPE_RESOURCE_FLAG_MAP_COHERENT)
+ nv30->base.vbo_dirty = TRUE;
+ }
+
+ if (!nv30->base.vbo_dirty && nv30->idxbuf.buffer &&
+ nv30->idxbuf.buffer->flags & PIPE_RESOURCE_FLAG_MAP_COHERENT)
+ nv30->base.vbo_dirty = TRUE;
+
if (nv30->base.vbo_dirty) {
BEGIN_NV04(push, NV30_3D(VTX_CACHE_INVALIDATE_1710), 1);
PUSH_DATA (push, 0);