Merge branch 'mesa_7_5_branch'
[mesa.git] / src / gallium / drivers / nv30 / nv30_transfer.c
index 6367374a61612c2fa54774ed86dd2c052b05cf7e..23675718781310c0cc1ee28cc183dd7d1f703154 100644 (file)
@@ -43,7 +43,6 @@ nv30_compatible_transfer_tex(struct pipe_texture *pt, unsigned level,
        template->nblocksx[0] = pt->nblocksx[level];
        template->nblocksy[0] = pt->nblocksx[level];
        template->last_level = 0;
-       template->compressed = pt->compressed;
        template->nr_samples = pt->nr_samples;
 
        template->tex_usage = PIPE_TEXTURE_USAGE_DYNAMIC |
@@ -64,7 +63,6 @@ nv30_transfer_new(struct pipe_screen *pscreen, struct pipe_texture *pt,
        if (!tx)
                return NULL;
 
-       tx->base.refcount = 1;
        pipe_texture_reference(&tx->base.texture, pt);
        tx->base.format = pt->format;
        tx->base.x = x;
@@ -138,12 +136,12 @@ nv30_transfer_new(struct pipe_screen *pscreen, struct pipe_texture *pt,
 }
 
 static void
-nv30_transfer_del(struct pipe_screen *pscreen, struct pipe_transfer **pptx)
+nv30_transfer_del(struct pipe_transfer *ptx)
 {
-       struct pipe_transfer *ptx = *pptx;
        struct nv30_transfer *tx = (struct nv30_transfer *)ptx;
 
        if (!tx->direct && ptx->usage != PIPE_TRANSFER_READ) {
+               struct pipe_screen *pscreen = ptx->texture->screen;
                struct nv30_screen *nvscreen = nv30_screen(pscreen);
                struct pipe_surface *dst;
 
@@ -160,10 +158,6 @@ nv30_transfer_del(struct pipe_screen *pscreen, struct pipe_transfer **pptx)
                pipe_surface_reference(&dst, NULL);
        }
 
-       *pptx = NULL;
-       if (--ptx->refcount)
-               return;
-
        pipe_surface_reference(&tx->surface, NULL);
        pipe_texture_reference(&ptx->texture, NULL);
        FREE(ptx);
@@ -195,7 +189,7 @@ void
 nv30_screen_init_transfer_functions(struct pipe_screen *pscreen)
 {
        pscreen->get_tex_transfer = nv30_transfer_new;
-       pscreen->tex_transfer_release = nv30_transfer_del;
+       pscreen->tex_transfer_destroy = nv30_transfer_del;
        pscreen->transfer_map = nv30_transfer_map;
        pscreen->transfer_unmap = nv30_transfer_unmap;
 }