cell: update cell driver after gallium reference count changes
authorBrian Paul <brianp@vmware.com>
Wed, 4 Mar 2009 16:34:46 +0000 (09:34 -0700)
committerBrian Paul <brianp@vmware.com>
Wed, 4 Mar 2009 16:34:46 +0000 (09:34 -0700)
src/gallium/drivers/cell/ppu/cell_state_shader.c
src/gallium/drivers/cell/ppu/cell_texture.c
src/gallium/winsys/xlib/xlib_cell.c

index bf517ea563520fb41aa714a5a71d147b9d886811..6568c784fec1f0dfdc30348b2bb2199422bdf9f0 100644 (file)
@@ -193,9 +193,7 @@ cell_set_constant_buffer(struct pipe_context *pipe,
    draw_flush(cell->draw);
 
    /* note: reference counting */
-   pipe_buffer_reference(pipe->screen,
-                         &cell->constants[shader].buffer,
-                         buf->buffer);
+   pipe_buffer_reference(&cell->constants[shader].buffer, buf->buffer);
 
    if (shader == PIPE_SHADER_VERTEX)
       cell->dirty |= CELL_NEW_VS_CONSTANTS;
index bc6afa94a8bb4c49e772511b803feb58f94ab8ef..e26594448f000e0e81a8a9237862eb4f9824ce01 100644 (file)
@@ -129,7 +129,7 @@ cell_texture_destroy(struct pipe_texture *pt)
    struct cell_texture *ct = cell_texture(pt);
 
    if (ct->mapped) {
-      pipe_buffer_unmap(screen, ct->buffer);
+      pipe_buffer_unmap(ct->buffer->screen, ct->buffer);
       ct->mapped = NULL;
    }
 
@@ -308,7 +308,7 @@ cell_get_tex_surface(struct pipe_screen *screen,
 
 
 static void 
-cell_tex_surface_destroy(struct pipe_surface *s)
+cell_tex_surface_destroy(struct pipe_surface *surf)
 {
    pipe_texture_reference(&surf->texture, NULL);
    FREE(surf);
@@ -336,7 +336,6 @@ cell_get_tex_transfer(struct pipe_screen *screen,
    ctrans = CALLOC_STRUCT(cell_transfer);
    if (ctrans) {
       struct pipe_transfer *pt = &ctrans->base;
-      pipe_reference_init(&pt->reference, 1);
       pipe_texture_reference(&pt->texture, texture);
       pt->format = texture->format;
       pt->block = texture->block;
index a5dbdf30f6534646fe19710dfd01380cabcc8ca1..13e609f58fe059242782e1c3c36cf77c380da3b8 100644 (file)
@@ -107,22 +107,21 @@ xm_buffer_unmap(struct pipe_winsys *pws, struct pipe_buffer *buf)
 }
 
 static void
-xm_buffer_destroy(struct pipe_winsys *pws,
+xm_buffer_destroy(/*struct pipe_winsys *pws,*/
                   struct pipe_buffer *buf)
 {
    struct xm_buffer *oldBuf = xm_buffer(buf);
 
-   if (oldBuf->data) {
-      {
+   if (oldBuf) {
+      if (oldBuf->data) {
          if (!oldBuf->userBuffer) {
             align_free(oldBuf->data);
          }
-      }
 
-      oldBuf->data = NULL;
+         oldBuf->data = NULL;
+      }
+      free(oldBuf);
    }
-
-   free(oldBuf);
 }
 
 
@@ -371,7 +370,7 @@ xlib_create_cell_winsys( void )
 
 
 static struct pipe_screen *
-xlib_create_cell_screen( struct pipe_winsys *pws )
+xlib_create_cell_screen( void )
 {
    struct pipe_winsys *winsys;
    struct pipe_screen *screen;