[Mesa-dev] [PATCH 3/3] gallium: remove user_buffer_create from the interface

Marek Olšák maraeo at gmail.com
Sat May 12 04:14:18 PDT 2012


Nothing uses it now.
---
 src/gallium/auxiliary/util/u_inlines.h       |    8 -----
 src/gallium/auxiliary/util/u_slab.h          |    2 +-
 src/gallium/drivers/galahad/glhd_screen.c    |   23 --------------
 src/gallium/drivers/i915/i915_resource.c     |    1 -
 src/gallium/drivers/identity/id_screen.c     |   23 --------------
 src/gallium/drivers/llvmpipe/lp_texture.c    |    2 --
 src/gallium/drivers/noop/noop_pipe.c         |   18 -----------
 src/gallium/drivers/nv30/nv30_resource.c     |    1 -
 src/gallium/drivers/nv50/nv50_resource.c     |    1 -
 src/gallium/drivers/nvc0/nvc0_resource.c     |    1 -
 src/gallium/drivers/r600/r600_buffer.c       |   25 ---------------
 src/gallium/drivers/r600/r600_pipe.h         |    3 --
 src/gallium/drivers/r600/r600_resource.c     |    1 -
 src/gallium/drivers/radeonsi/r600_buffer.c   |   25 ---------------
 src/gallium/drivers/radeonsi/r600_resource.c |    1 -
 src/gallium/drivers/radeonsi/radeonsi_pipe.h |    3 --
 src/gallium/drivers/rbug/rbug_screen.c       |   23 --------------
 src/gallium/drivers/softpipe/sp_texture.c    |    2 --
 src/gallium/drivers/svga/svga_resource.c     |    1 -
 src/gallium/drivers/trace/tr_screen.c        |   44 --------------------------
 src/gallium/include/pipe/p_screen.h          |   26 ---------------
 21 files changed, 1 insertion(+), 233 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_inlines.h b/src/gallium/auxiliary/util/u_inlines.h
index e78cdda..ebc64a2 100644
--- a/src/gallium/auxiliary/util/u_inlines.h
+++ b/src/gallium/auxiliary/util/u_inlines.h
@@ -233,14 +233,6 @@ pipe_buffer_create( struct pipe_screen *screen,
    return screen->resource_create(screen, &buffer);
 }
 
-
-static INLINE struct pipe_resource *
-pipe_user_buffer_create( struct pipe_screen *screen, void *ptr, unsigned size,
-			 unsigned usage )
-{
-   return screen->user_buffer_create(screen, ptr, size, usage);
-}
-
 static INLINE void *
 pipe_buffer_map_range(struct pipe_context *pipe,
 		      struct pipe_resource *buffer,
diff --git a/src/gallium/auxiliary/util/u_slab.h b/src/gallium/auxiliary/util/u_slab.h
index 6b9718d..3ed8b12 100644
--- a/src/gallium/auxiliary/util/u_slab.h
+++ b/src/gallium/auxiliary/util/u_slab.h
@@ -28,7 +28,7 @@
  * Good for allocations which have very low lifetime and are allocated
  * and freed very often. Use a profiler first to know if it's worth using it!
  *
- * Candidates: get_transfer, user_buffer_create
+ * Candidates: get_transfer
  *
  * @author Marek Olšák
  */
diff --git a/src/gallium/drivers/galahad/glhd_screen.c b/src/gallium/drivers/galahad/glhd_screen.c
index 49702b6..7d03763 100644
--- a/src/gallium/drivers/galahad/glhd_screen.c
+++ b/src/gallium/drivers/galahad/glhd_screen.c
@@ -222,28 +222,6 @@ galahad_screen_resource_destroy(struct pipe_screen *screen,
 }
 
 
-static struct pipe_resource *
-galahad_screen_user_buffer_create(struct pipe_screen *_screen,
-                                   void *ptr,
-                                   unsigned bytes,
-                                   unsigned usage)
-{
-   struct galahad_screen *glhd_screen = galahad_screen(_screen);
-   struct pipe_screen *screen = glhd_screen->screen;
-   struct pipe_resource *result;
-
-   result = screen->user_buffer_create(screen,
-                                       ptr,
-                                       bytes,
-                                       usage);
-
-   if (result)
-      return galahad_resource_create(glhd_screen, result);
-   return NULL;
-}
-
-
-
 static void
 galahad_screen_flush_frontbuffer(struct pipe_screen *_screen,
                                   struct pipe_resource *_resource,
@@ -323,7 +301,6 @@ galahad_screen_create(struct pipe_screen *screen)
    glhd_screen->base.resource_from_handle = galahad_screen_resource_from_handle;
    glhd_screen->base.resource_get_handle = galahad_screen_resource_get_handle;
    glhd_screen->base.resource_destroy = galahad_screen_resource_destroy;
-   glhd_screen->base.user_buffer_create = galahad_screen_user_buffer_create;
    glhd_screen->base.flush_frontbuffer = galahad_screen_flush_frontbuffer;
    glhd_screen->base.fence_reference = galahad_screen_fence_reference;
    glhd_screen->base.fence_signalled = galahad_screen_fence_signalled;
diff --git a/src/gallium/drivers/i915/i915_resource.c b/src/gallium/drivers/i915/i915_resource.c
index b4719af..253c7d0 100644
--- a/src/gallium/drivers/i915/i915_resource.c
+++ b/src/gallium/drivers/i915/i915_resource.c
@@ -46,5 +46,4 @@ i915_init_screen_resource_functions(struct i915_screen *is)
    is->base.resource_from_handle = i915_resource_from_handle;
    is->base.resource_get_handle = u_resource_get_handle_vtbl;
    is->base.resource_destroy = u_resource_destroy_vtbl;
-   is->base.user_buffer_create = i915_user_buffer_create;
 }
diff --git a/src/gallium/drivers/identity/id_screen.c b/src/gallium/drivers/identity/id_screen.c
index a173235..ab82e29 100644
--- a/src/gallium/drivers/identity/id_screen.c
+++ b/src/gallium/drivers/identity/id_screen.c
@@ -188,28 +188,6 @@ identity_screen_resource_destroy(struct pipe_screen *screen,
 }
 
 
-static struct pipe_resource *
-identity_screen_user_buffer_create(struct pipe_screen *_screen,
-                                   void *ptr,
-                                   unsigned bytes,
-                                   unsigned usage)
-{
-   struct identity_screen *id_screen = identity_screen(_screen);
-   struct pipe_screen *screen = id_screen->screen;
-   struct pipe_resource *result;
-
-   result = screen->user_buffer_create(screen,
-                                       ptr,
-                                       bytes,
-                                       usage);
-
-   if (result)
-      return identity_resource_create(id_screen, result);
-   return NULL;
-}
-
-
-
 static void
 identity_screen_flush_frontbuffer(struct pipe_screen *_screen,
                                   struct pipe_resource *_resource,
@@ -286,7 +264,6 @@ identity_screen_create(struct pipe_screen *screen)
    id_screen->base.resource_from_handle = identity_screen_resource_from_handle;
    id_screen->base.resource_get_handle = identity_screen_resource_get_handle;
    id_screen->base.resource_destroy = identity_screen_resource_destroy;
-   id_screen->base.user_buffer_create = identity_screen_user_buffer_create;
    id_screen->base.flush_frontbuffer = identity_screen_flush_frontbuffer;
    id_screen->base.fence_reference = identity_screen_fence_reference;
    id_screen->base.fence_signalled = identity_screen_fence_signalled;
diff --git a/src/gallium/drivers/llvmpipe/lp_texture.c b/src/gallium/drivers/llvmpipe/lp_texture.c
index 198874b..4495e8d 100644
--- a/src/gallium/drivers/llvmpipe/lp_texture.c
+++ b/src/gallium/drivers/llvmpipe/lp_texture.c
@@ -1432,8 +1432,6 @@ llvmpipe_init_screen_resource_funcs(struct pipe_screen *screen)
    screen->resource_destroy = llvmpipe_resource_destroy;
    screen->resource_from_handle = llvmpipe_resource_from_handle;
    screen->resource_get_handle = llvmpipe_resource_get_handle;
-   screen->user_buffer_create = llvmpipe_user_buffer_create;
-
 }
 
 
diff --git a/src/gallium/drivers/noop/noop_pipe.c b/src/gallium/drivers/noop/noop_pipe.c
index e47f944..4c233d1 100644
--- a/src/gallium/drivers/noop/noop_pipe.c
+++ b/src/gallium/drivers/noop/noop_pipe.c
@@ -142,23 +142,6 @@ static void noop_resource_destroy(struct pipe_screen *screen,
 	FREE(resource);
 }
 
-static struct pipe_resource *noop_user_buffer_create(struct pipe_screen *screen,
-							void *ptr, unsigned bytes,
-							unsigned bind)
-{
-	struct pipe_resource templ;
-
-	templ.target = PIPE_BUFFER;
-	templ.format = PIPE_FORMAT_R8_UNORM;
-	templ.usage = PIPE_USAGE_IMMUTABLE;
-	templ.bind = bind;
-	templ.width0 = bytes;
-	templ.height0 = 1;
-	templ.depth0 = 1;
-	templ.flags = 0;
-	return noop_resource_create(screen, &templ);
-}
-
 
 /*
  * transfer
@@ -392,7 +375,6 @@ struct pipe_screen *noop_screen_create(struct pipe_screen *oscreen)
 	screen->resource_from_handle = noop_resource_from_handle;
 	screen->resource_get_handle = noop_resource_get_handle;
 	screen->resource_destroy = noop_resource_destroy;
-	screen->user_buffer_create = noop_user_buffer_create;
 	screen->flush_frontbuffer = noop_flush_frontbuffer;
 
 	return screen;
diff --git a/src/gallium/drivers/nv30/nv30_resource.c b/src/gallium/drivers/nv30/nv30_resource.c
index 6bcee4d..3d8e7d7 100644
--- a/src/gallium/drivers/nv30/nv30_resource.c
+++ b/src/gallium/drivers/nv30/nv30_resource.c
@@ -61,7 +61,6 @@ nv30_resource_screen_init(struct pipe_screen *pscreen)
    pscreen->resource_from_handle = nv30_resource_from_handle;
    pscreen->resource_get_handle = u_resource_get_handle_vtbl;
    pscreen->resource_destroy = u_resource_destroy_vtbl;
-   pscreen->user_buffer_create = nouveau_user_buffer_create;
 }
 
 void
diff --git a/src/gallium/drivers/nv50/nv50_resource.c b/src/gallium/drivers/nv50/nv50_resource.c
index a66a6a0..9fe18a6 100644
--- a/src/gallium/drivers/nv50/nv50_resource.c
+++ b/src/gallium/drivers/nv50/nv50_resource.c
@@ -103,5 +103,4 @@ nv50_screen_init_resource_functions(struct pipe_screen *pscreen)
    pscreen->resource_from_handle = nv50_resource_from_handle;
    pscreen->resource_get_handle = u_resource_get_handle_vtbl;
    pscreen->resource_destroy = u_resource_destroy_vtbl;
-   pscreen->user_buffer_create = nouveau_user_buffer_create;
 }
diff --git a/src/gallium/drivers/nvc0/nvc0_resource.c b/src/gallium/drivers/nvc0/nvc0_resource.c
index e8d83ca..daf5c90 100644
--- a/src/gallium/drivers/nvc0/nvc0_resource.c
+++ b/src/gallium/drivers/nvc0/nvc0_resource.c
@@ -61,5 +61,4 @@ nvc0_screen_init_resource_functions(struct pipe_screen *pscreen)
    pscreen->resource_from_handle = nvc0_resource_from_handle;
    pscreen->resource_get_handle = u_resource_get_handle_vtbl;
    pscreen->resource_destroy = u_resource_destroy_vtbl;
-   pscreen->user_buffer_create = nouveau_user_buffer_create;
 }
diff --git a/src/gallium/drivers/r600/r600_buffer.c b/src/gallium/drivers/r600/r600_buffer.c
index 857d860..2f7eb51 100644
--- a/src/gallium/drivers/r600/r600_buffer.c
+++ b/src/gallium/drivers/r600/r600_buffer.c
@@ -220,28 +220,3 @@ struct pipe_resource *r600_buffer_create(struct pipe_screen *screen,
 	}
 	return &rbuffer->b.b;
 }
-
-struct pipe_resource *r600_user_buffer_create(struct pipe_screen *screen,
-					      void *ptr, unsigned bytes,
-					      unsigned bind)
-{
-	struct r600_screen *rscreen = (struct r600_screen*)screen;
-	struct r600_resource *rbuffer;
-
-	rbuffer = util_slab_alloc(&rscreen->pool_buffers);
-
-	pipe_reference_init(&rbuffer->b.b.reference, 1);
-	rbuffer->b.vtbl = &r600_buffer_vtbl;
-	rbuffer->b.b.screen = screen;
-	rbuffer->b.b.target = PIPE_BUFFER;
-	rbuffer->b.b.format = PIPE_FORMAT_R8_UNORM;
-	rbuffer->b.b.usage = PIPE_USAGE_IMMUTABLE;
-	rbuffer->b.b.bind = bind;
-	rbuffer->b.b.width0 = bytes;
-	rbuffer->b.b.height0 = 1;
-	rbuffer->b.b.depth0 = 1;
-	rbuffer->b.b.array_size = 1;
-	rbuffer->b.b.flags = 0;
-	rbuffer->buf = NULL;
-	return &rbuffer->b.b;
-}
diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h
index a3ec9e5..d6a9707 100644
--- a/src/gallium/drivers/r600/r600_pipe.h
+++ b/src/gallium/drivers/r600/r600_pipe.h
@@ -400,9 +400,6 @@ bool r600_init_resource(struct r600_screen *rscreen,
 			unsigned bind, unsigned usage);
 struct pipe_resource *r600_buffer_create(struct pipe_screen *screen,
 					 const struct pipe_resource *templ);
-struct pipe_resource *r600_user_buffer_create(struct pipe_screen *screen,
-					      void *ptr, unsigned bytes,
-					      unsigned bind);
 
 /* r600_pipe.c */
 void r600_flush(struct pipe_context *ctx, struct pipe_fence_handle **fence,
diff --git a/src/gallium/drivers/r600/r600_resource.c b/src/gallium/drivers/r600/r600_resource.c
index de339e0..ef0b4ce 100644
--- a/src/gallium/drivers/r600/r600_resource.c
+++ b/src/gallium/drivers/r600/r600_resource.c
@@ -50,7 +50,6 @@ void r600_init_screen_resource_functions(struct pipe_screen *screen)
 	screen->resource_from_handle = r600_resource_from_handle;
 	screen->resource_get_handle = u_resource_get_handle_vtbl;
 	screen->resource_destroy = u_resource_destroy_vtbl;
-	screen->user_buffer_create = r600_user_buffer_create;
 }
 
 void r600_init_context_resource_functions(struct r600_context *r600)
diff --git a/src/gallium/drivers/radeonsi/r600_buffer.c b/src/gallium/drivers/radeonsi/r600_buffer.c
index c6b7071..8fd7e27 100644
--- a/src/gallium/drivers/radeonsi/r600_buffer.c
+++ b/src/gallium/drivers/radeonsi/r600_buffer.c
@@ -178,31 +178,6 @@ struct pipe_resource *r600_buffer_create(struct pipe_screen *screen,
 	return &rbuffer->b.b;
 }
 
-struct pipe_resource *r600_user_buffer_create(struct pipe_screen *screen,
-					      void *ptr, unsigned bytes,
-					      unsigned bind)
-{
-	struct r600_screen *rscreen = (struct r600_screen*)screen;
-	struct r600_resource *rbuffer;
-
-	rbuffer = util_slab_alloc(&rscreen->pool_buffers);
-
-	pipe_reference_init(&rbuffer->b.b.reference, 1);
-	rbuffer->b.vtbl = &r600_buffer_vtbl;
-	rbuffer->b.b.screen = screen;
-	rbuffer->b.b.target = PIPE_BUFFER;
-	rbuffer->b.b.format = PIPE_FORMAT_R8_UNORM;
-	rbuffer->b.b.usage = PIPE_USAGE_IMMUTABLE;
-	rbuffer->b.b.bind = bind;
-	rbuffer->b.b.width0 = bytes;
-	rbuffer->b.b.height0 = 1;
-	rbuffer->b.b.depth0 = 1;
-	rbuffer->b.b.array_size = 1;
-	rbuffer->b.b.flags = 0;
-	rbuffer->buf = NULL;
-	return &rbuffer->b.b;
-}
-
 void r600_upload_index_buffer(struct r600_context *rctx,
 			      struct pipe_index_buffer *ib, unsigned count)
 {
diff --git a/src/gallium/drivers/radeonsi/r600_resource.c b/src/gallium/drivers/radeonsi/r600_resource.c
index 0e861c1..d9be706 100644
--- a/src/gallium/drivers/radeonsi/r600_resource.c
+++ b/src/gallium/drivers/radeonsi/r600_resource.c
@@ -50,7 +50,6 @@ void r600_init_screen_resource_functions(struct pipe_screen *screen)
 	screen->resource_from_handle = r600_resource_from_handle;
 	screen->resource_get_handle = u_resource_get_handle_vtbl;
 	screen->resource_destroy = u_resource_destroy_vtbl;
-	screen->user_buffer_create = r600_user_buffer_create;
 }
 
 void r600_init_context_resource_functions(struct r600_context *r600)
diff --git a/src/gallium/drivers/radeonsi/radeonsi_pipe.h b/src/gallium/drivers/radeonsi/radeonsi_pipe.h
index bba4cf2..b16ec10 100644
--- a/src/gallium/drivers/radeonsi/radeonsi_pipe.h
+++ b/src/gallium/drivers/radeonsi/radeonsi_pipe.h
@@ -384,9 +384,6 @@ bool r600_init_resource(struct r600_screen *rscreen,
 			unsigned bind, unsigned usage);
 struct pipe_resource *r600_buffer_create(struct pipe_screen *screen,
 					 const struct pipe_resource *templ);
-struct pipe_resource *r600_user_buffer_create(struct pipe_screen *screen,
-					      void *ptr, unsigned bytes,
-					      unsigned bind);
 void r600_upload_index_buffer(struct r600_context *rctx,
 			      struct pipe_index_buffer *ib, unsigned count);
 
diff --git a/src/gallium/drivers/rbug/rbug_screen.c b/src/gallium/drivers/rbug/rbug_screen.c
index 1b7ca7c..2471fdb 100644
--- a/src/gallium/drivers/rbug/rbug_screen.c
+++ b/src/gallium/drivers/rbug/rbug_screen.c
@@ -186,28 +186,6 @@ rbug_screen_resource_destroy(struct pipe_screen *screen,
    rbug_resource_destroy(rbug_resource(_resource));
 }
 
-static struct pipe_resource *
-rbug_screen_user_buffer_create(struct pipe_screen *_screen,
-                               void *ptr,
-                               unsigned bytes,
-                               unsigned usage)
-{
-   struct rbug_screen *rb_screen = rbug_screen(_screen);
-   struct pipe_screen *screen = rb_screen->screen;
-   struct pipe_resource *result;
-
-   result = screen->user_buffer_create(screen,
-                                       ptr,
-                                       bytes,
-                                       usage);
-
-   if (result)
-      return rbug_resource_create(rb_screen, result);
-   return NULL;
-}
-
-
-
 static void
 rbug_screen_flush_frontbuffer(struct pipe_screen *_screen,
                               struct pipe_resource *_resource,
@@ -298,7 +276,6 @@ rbug_screen_create(struct pipe_screen *screen)
    rb_screen->base.resource_from_handle = rbug_screen_resource_from_handle;
    rb_screen->base.resource_get_handle = rbug_screen_resource_get_handle;
    rb_screen->base.resource_destroy = rbug_screen_resource_destroy;
-   rb_screen->base.user_buffer_create = rbug_screen_user_buffer_create;
    rb_screen->base.flush_frontbuffer = rbug_screen_flush_frontbuffer;
    rb_screen->base.fence_reference = rbug_screen_fence_reference;
    rb_screen->base.fence_signalled = rbug_screen_fence_signalled;
diff --git a/src/gallium/drivers/softpipe/sp_texture.c b/src/gallium/drivers/softpipe/sp_texture.c
index ee8d423..978fbe1 100644
--- a/src/gallium/drivers/softpipe/sp_texture.c
+++ b/src/gallium/drivers/softpipe/sp_texture.c
@@ -506,6 +506,4 @@ softpipe_init_screen_texture_funcs(struct pipe_screen *screen)
    screen->resource_destroy = softpipe_resource_destroy;
    screen->resource_from_handle = softpipe_resource_from_handle;
    screen->resource_get_handle = softpipe_resource_get_handle;
-   screen->user_buffer_create = softpipe_user_buffer_create;
-
 }
diff --git a/src/gallium/drivers/svga/svga_resource.c b/src/gallium/drivers/svga/svga_resource.c
index b86469a..890c953 100644
--- a/src/gallium/drivers/svga/svga_resource.c
+++ b/src/gallium/drivers/svga/svga_resource.c
@@ -73,5 +73,4 @@ svga_init_screen_resource_functions(struct svga_screen *is)
    is->screen.resource_from_handle = svga_resource_from_handle;
    is->screen.resource_get_handle = u_resource_get_handle_vtbl;
    is->screen.resource_destroy = u_resource_destroy_vtbl;
-   is->screen.user_buffer_create = svga_user_buffer_create;
 }
diff --git a/src/gallium/drivers/trace/tr_screen.c b/src/gallium/drivers/trace/tr_screen.c
index fd5acbe..4a1aa99 100644
--- a/src/gallium/drivers/trace/tr_screen.c
+++ b/src/gallium/drivers/trace/tr_screen.c
@@ -319,49 +319,6 @@ trace_screen_resource_destroy(struct pipe_screen *_screen,
 }
 
 
-
-/********************************************************************
- * buffer
- */
-
-
-
-static struct pipe_resource *
-trace_screen_user_buffer_create(struct pipe_screen *_screen,
-                                void *data,
-                                unsigned size,
-				unsigned usage)
-{
-   struct trace_screen *tr_scr = trace_screen(_screen);
-   struct pipe_screen *screen = tr_scr->screen;
-   struct pipe_resource *result;
-
-   trace_dump_call_begin("pipe_screen", "user_buffer_create");
-
-   trace_dump_arg(ptr, screen);
-   trace_dump_arg_begin("data");
-   trace_dump_bytes(data, size);
-   trace_dump_arg_end();
-   trace_dump_arg(uint, size);
-   trace_dump_arg(uint, usage);
-
-   result = screen->user_buffer_create(screen, data, size, usage);
-
-   trace_dump_ret(ptr, result);
-
-   trace_dump_call_end();
-
-   if(result) {
-      assert(!(result->flags & TRACE_FLAG_USER_BUFFER));
-      result->flags |= TRACE_FLAG_USER_BUFFER;
-   }
-
-   return trace_resource_create(tr_scr, result);
-}
-
-
-
-
 /********************************************************************
  * fence
  */
@@ -506,7 +463,6 @@ trace_screen_create(struct pipe_screen *screen)
    tr_scr->base.resource_from_handle = trace_screen_resource_from_handle;
    tr_scr->base.resource_get_handle = trace_screen_resource_get_handle;
    tr_scr->base.resource_destroy = trace_screen_resource_destroy;
-   tr_scr->base.user_buffer_create = trace_screen_user_buffer_create;
    tr_scr->base.fence_reference = trace_screen_fence_reference;
    tr_scr->base.fence_signalled = trace_screen_fence_signalled;
    tr_scr->base.fence_finish = trace_screen_fence_finish;
diff --git a/src/gallium/include/pipe/p_screen.h b/src/gallium/include/pipe/p_screen.h
index 7ae7c9a..b4a7f01 100644
--- a/src/gallium/include/pipe/p_screen.h
+++ b/src/gallium/include/pipe/p_screen.h
@@ -162,32 +162,6 @@ struct pipe_screen {
 
 
    /**
-    * Create a buffer that wraps user-space data.
-    *
-    * Effectively this schedules a delayed call to buffer_create
-    * followed by an upload of the data at *some point in the future*,
-    * or perhaps never.  Basically the allocate/upload is delayed
-    * until the buffer is actually passed to hardware.
-    *
-    * The intention is to provide a quick way to turn regular data
-    * into a buffer, and secondly to avoid a copy operation if that
-    * data subsequently turns out to be only accessed by the CPU.
-    *
-    * Common example is OpenGL vertex buffers that are subsequently
-    * processed either by software TNL in the driver or by passing to
-    * hardware.
-    *
-    * XXX: What happens if the delayed call to buffer_create() fails?
-    *
-    * Note that ptr may be accessed at any time upto the time when the
-    * buffer is destroyed, so the data must not be freed before then.
-    */
-   struct pipe_resource *(*user_buffer_create)(struct pipe_screen *screen,
-					       void *ptr,
-					       unsigned bytes,
-					       unsigned bind_flags);
-
-   /**
     * Do any special operations to ensure frontbuffer contents are
     * displayed, eg copy fake frontbuffer.
     * \param winsys_drawable_handle  an opaque handle that the calling context
-- 
1.7.9.5



More information about the mesa-dev mailing list