Mesa (master): st/mesa: use u_upload_mgr to upload vertices for glDrawPixels

Marek Olšák mareko at kemper.freedesktop.org
Wed Apr 18 14:29:09 UTC 2012


Module: Mesa
Branch: master
Commit: b69dad1683f092e3ce9d0f3f8fb1bdf96bdff0c7
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b69dad1683f092e3ce9d0f3f8fb1bdf96bdff0c7

Author: Marek Olšák <maraeo at gmail.com>
Date:   Fri Apr 13 19:27:45 2012 +0200

st/mesa: use u_upload_mgr to upload vertices for glDrawPixels

---

 src/mesa/state_tracker/st_cb_drawpixels.c |   17 +++++++++--------
 1 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_drawpixels.c b/src/mesa/state_tracker/st_cb_drawpixels.c
index 18d0e53..5229cce 100644
--- a/src/mesa/state_tracker/st_cb_drawpixels.c
+++ b/src/mesa/state_tracker/st_cb_drawpixels.c
@@ -66,6 +66,7 @@
 #include "util/u_inlines.h"
 #include "util/u_math.h"
 #include "util/u_tile.h"
+#include "util/u_upload_mgr.h"
 #include "cso_cache/cso_context.h"
 
 
@@ -619,16 +620,16 @@ draw_quad(struct gl_context *ctx, GLfloat x0, GLfloat y0, GLfloat z,
    }
 
    {
-      struct pipe_resource *buf;
+      struct pipe_resource *buf = NULL;
+      unsigned offset;
 
-      /* allocate/load buffer object with vertex data */
-      buf = pipe_buffer_create(pipe->screen,
-			       PIPE_BIND_VERTEX_BUFFER,
-			       PIPE_USAGE_STATIC,
-                               sizeof(verts));
-      pipe_buffer_write(st->pipe, buf, 0, sizeof(verts), verts);
+      u_upload_data(st->uploader, 0, sizeof(verts), verts, &offset, &buf);
+      if (!buf) {
+         return;
+      }
 
-      util_draw_vertex_buffer(pipe, st->cso_context, buf, 0,
+      u_upload_unmap(st->uploader);
+      util_draw_vertex_buffer(pipe, st->cso_context, buf, offset,
                               PIPE_PRIM_QUADS,
                               4,  /* verts */
                               3); /* attribs/vert */




More information about the mesa-commit mailing list