Merge branch 'mesa_7_5_branch'
[mesa.git] / src / gallium / winsys / xlib / xlib_brw_screen.c
index 5344c502ef7476fc04c1f94997dc89af77be4a6e..fe8dfff767209d610ed4d478924337c86abd105a 100644 (file)
 //#include "state_trackers/xlib/xmesaP.h"
 
 #include "pipe/internal/p_winsys_screen.h"
-#include "pipe/p_inlines.h"
 #include "util/u_math.h"
 #include "util/u_memory.h"
 #include "i965simple/brw_winsys.h"
 #include "i965simple/brw_screen.h"
+#include "i965simple/brw_context.h"
+
 
 #include "xlib_brw_aub.h"
 #include "xlib_brw.h"
 #include "xlib.h"
 
-
+static struct pipe_buffer *
+buffer_from_surface(struct pipe_surface *surface)
+{
+   struct brw_texture *texture = (struct brw_texture *)surface;
+   return texture->buffer;
+}
 
 struct aub_buffer {
+   struct pipe_reference reference;
    char *data;
    unsigned offset;
    unsigned size;
-   unsigned refcount;
    unsigned map_count;
    boolean dump_on_unmap;
 };
@@ -137,8 +143,7 @@ static void aub_buffer_unmap(struct pipe_winsys *winsys,
 
 
 static void
-aub_buffer_destroy(struct pipe_winsys *winsys,
-                  struct pipe_buffer *buf)
+aub_buffer_destroy(struct pipe_buffer *buf)
 {
    free(buf);
 }
@@ -182,7 +187,7 @@ aub_buffer_create(struct pipe_winsys *winsys,
    struct aub_pipe_winsys *iws = aub_pipe_winsys(winsys);
    struct aub_buffer *sbo = CALLOC_STRUCT(aub_buffer);
 
-   sbo->refcount = 1;
+   pipe_reference_init(&sbo->reference, 1);
 
    /* Could reuse buffers that are not referenced in current
     * batchbuffer.  Can't do that atm, so always reallocate:
@@ -226,7 +231,7 @@ aub_flush_frontbuffer( struct pipe_winsys *winsys,
 //   struct aub_pipe_winsys *iws = aub_pipe_winsys(winsys);
    brw_aub_dump_bmp( global_winsys->aubfile, 
                     surface,
-                    aub_bo(surface->buffer)->offset );
+                    aub_bo(buffer_from_surface(surface))->offset );
 }
 
 
@@ -318,6 +323,7 @@ xlib_create_brw_winsys( void )
 static struct pipe_screen *
 xlib_create_brw_screen( void )
 {
+#ifndef GALLIUM_CELL
    struct pipe_winsys *winsys;
    struct pipe_screen *screen;
 
@@ -335,6 +341,7 @@ fail:
    if (winsys)
       winsys->destroy( winsys );
 
+#endif
    return NULL;
 }
 
@@ -449,7 +456,7 @@ xlib_brw_display_surface(struct xmesa_buffer *b,
 {
    brw_aub_dump_bmp( global_winsys->aubfile, 
                     surf,
-                    aub_bo(surf->buffer)->offset );
+                    aub_bo(buffer_from_surface(surf))->offset );
 }