Module: Mesa
Branch: gallium-context-transfers-2
Commit: dfeab49a96fb520b5cb21b4cb5a8a5a0c1bf61e1
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=dfeab49a96fb520b5cb21b4cb5a8a5a0c1bf61e1

Author: Roland Scheidegger <[email protected]>
Date:   Thu Mar 11 18:40:25 2010 +0100

cell: adapt to context texture transfers (untested)

---

 src/gallium/drivers/cell/ppu/cell_context.c |    1 +
 src/gallium/drivers/cell/ppu/cell_texture.c |   23 +++++++++++++----------
 src/gallium/drivers/cell/ppu/cell_texture.h |    2 ++
 3 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/src/gallium/drivers/cell/ppu/cell_context.c 
b/src/gallium/drivers/cell/ppu/cell_context.c
index afcea61..f6cb1fc 100644
--- a/src/gallium/drivers/cell/ppu/cell_context.c
+++ b/src/gallium/drivers/cell/ppu/cell_context.c
@@ -158,6 +158,7 @@ cell_create_context(struct pipe_screen *screen,
    cell_init_shader_functions(cell);
    cell_init_surface_functions(cell);
    cell_init_vertex_functions(cell);
+   cell_init_texture_transfer_funcs(cell);
 
    cell->draw = cell_draw_create(cell);
 
diff --git a/src/gallium/drivers/cell/ppu/cell_texture.c 
b/src/gallium/drivers/cell/ppu/cell_texture.c
index c8a1acd..c65c3b4 100644
--- a/src/gallium/drivers/cell/ppu/cell_texture.c
+++ b/src/gallium/drivers/cell/ppu/cell_texture.c
@@ -355,7 +355,7 @@ cell_tex_surface_destroy(struct pipe_surface *surf)
  * back out for glGetTexImage).
  */
 static struct pipe_transfer *
-cell_get_tex_transfer(struct pipe_screen *screen,
+cell_get_tex_transfer(struct pipe_context *ctx,
                       struct pipe_texture *texture,
                       unsigned face, unsigned level, unsigned zslice,
                       enum pipe_transfer_usage usage,
@@ -402,7 +402,7 @@ cell_get_tex_transfer(struct pipe_screen *screen,
 
 
 static void 
-cell_tex_transfer_destroy(struct pipe_transfer *t)
+cell_tex_transfer_destroy(struct pipe_context *ctx, struct pipe_transfer *t)
 {
    struct cell_transfer *transfer = cell_transfer(t);
    /* Effectively do the texture_update work here - if texture images
@@ -419,7 +419,7 @@ cell_tex_transfer_destroy(struct pipe_transfer *t)
  * Return pointer to texture image data in linear layout.
  */
 static void *
-cell_transfer_map(struct pipe_screen *screen, struct pipe_transfer *transfer)
+cell_transfer_map(struct pipe_context *ctx, struct pipe_transfer *transfer)
 {
    struct cell_transfer *ctrans = cell_transfer(transfer);
    struct pipe_texture *pt = transfer->texture;
@@ -471,7 +471,7 @@ cell_transfer_map(struct pipe_screen *screen, struct 
pipe_transfer *transfer)
  * to tiled data.
  */
 static void
-cell_transfer_unmap(struct pipe_screen *screen,
+cell_transfer_unmap(struct pipe_context *ctx,
                     struct pipe_transfer *transfer)
 {
    struct cell_transfer *ctrans = cell_transfer(transfer);
@@ -560,11 +560,14 @@ cell_init_screen_texture_funcs(struct pipe_screen *screen)
    screen->get_tex_surface = cell_get_tex_surface;
    screen->tex_surface_destroy = cell_tex_surface_destroy;
 
-   screen->get_tex_transfer = cell_get_tex_transfer;
-   screen->tex_transfer_destroy = cell_tex_transfer_destroy;
-
-   screen->transfer_map = cell_transfer_map;
-   screen->transfer_unmap = cell_transfer_unmap;
-
    screen->flush_frontbuffer = cell_flush_frontbuffer;
 }
+
+void
+cell_init_texture_transfer_funcs(struct cell_context *cell)
+{
+   cell->pipe.get_tex_transfer = cell_get_tex_transfer;
+   cell->pipe.tex_transfer_destroy = cell_tex_transfer_destroy;
+   cell->pipe.transfer_map = cell_transfer_map;
+   cell->pipe.transfer_unmap = cell_transfer_unmap;
+}
diff --git a/src/gallium/drivers/cell/ppu/cell_texture.h 
b/src/gallium/drivers/cell/ppu/cell_texture.h
index 2be0579..ac0b916 100644
--- a/src/gallium/drivers/cell/ppu/cell_texture.h
+++ b/src/gallium/drivers/cell/ppu/cell_texture.h
@@ -95,5 +95,7 @@ cell_transfer(struct pipe_transfer *pt)
 extern void
 cell_init_screen_texture_funcs(struct pipe_screen *screen);
 
+extern void
+cell_init_texture_transfer_funcs(struct cell_context *cell);
 
 #endif /* CELL_TEXTURE_H */

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to