gallium: add PIPE_CAP_MAX_GS_INVOCATIONS
[mesa.git] / src / gallium / drivers / nouveau / nv30 / nv30_context.c
index 716d2bbe4c15c4fc5fd1362a472755d4271f5fae..e137525c2b82b46cf62365613515e3a94ee2bc85 100644 (file)
@@ -115,7 +115,7 @@ nv30_invalidate_resource_storage(struct nouveau_context *nv,
 
    if (res->bind & PIPE_BIND_VERTEX_BUFFER) {
       for (i = 0; i < nv30->num_vtxbufs; ++i) {
-         if (nv30->vtxbuf[i].buffer == res) {
+         if (nv30->vtxbuf[i].buffer.resource == res) {
             nv30->dirty |= NV30_NEW_ARRAYS;
             nouveau_bufctx_reset(nv30->bufctx, BUFCTX_VTXBUF);
             if (!--ref)
@@ -123,13 +123,6 @@ nv30_invalidate_resource_storage(struct nouveau_context *nv,
          }
       }
    }
-   if (res->bind & PIPE_BIND_INDEX_BUFFER) {
-      if (nv30->idxbuf.buffer == res) {
-         nouveau_bufctx_reset(nv30->bufctx, BUFCTX_IDXBUF);
-         if (!--ref)
-            return ref;
-      }
-   }
 
    if (res->bind & PIPE_BIND_SAMPLER_VIEW) {
       for (i = 0; i < nv30->fragprog.num_textures; ++i) {
@@ -209,6 +202,12 @@ nv30_context_create(struct pipe_screen *pscreen, void *priv, unsigned ctxflags)
    nv30->base.screen = &screen->base;
    nv30->base.copy_data = nv30_transfer_copy_data;
 
+   pipe = &nv30->base.pipe;
+   pipe->screen = pscreen;
+   pipe->priv = priv;
+   pipe->destroy = nv30_context_destroy;
+   pipe->flush = nv30_context_flush;
+
    nv30->base.pipe.stream_uploader = u_upload_create_default(&nv30->base.pipe);
    if (!nv30->base.pipe.stream_uploader) {
       nv30_context_destroy(pipe);
@@ -216,12 +215,6 @@ nv30_context_create(struct pipe_screen *pscreen, void *priv, unsigned ctxflags)
    }
    nv30->base.pipe.const_uploader = nv30->base.pipe.stream_uploader;
 
-   pipe = &nv30->base.pipe;
-   pipe->screen = pscreen;
-   pipe->priv = priv;
-   pipe->destroy = nv30_context_destroy;
-   pipe->flush = nv30_context_flush;
-
    /*XXX: *cough* per-context client */
    nv30->base.client = screen->base.client;