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

Author: Keith Whitwell <[email protected]>
Date:   Thu Mar 11 14:19:17 2010 +0000

nv: convert to context transfers

---

 src/gallium/drivers/nv30/nv30_context.c  |    1 +
 src/gallium/drivers/nv30/nv30_context.h  |    1 +
 src/gallium/drivers/nv30/nv30_screen.c   |    1 -
 src/gallium/drivers/nv30/nv30_transfer.c |   19 +++++++++++--------
 src/gallium/drivers/nv40/nv40_context.c  |    1 +
 src/gallium/drivers/nv40/nv40_screen.c   |    1 -
 src/gallium/drivers/nv40/nv40_transfer.c |   19 +++++++++++--------
 src/gallium/drivers/nv50/nv50_context.c  |    1 +
 src/gallium/drivers/nv50/nv50_transfer.c |   17 +++++++++--------
 9 files changed, 35 insertions(+), 26 deletions(-)

diff --git a/src/gallium/drivers/nv30/nv30_context.c 
b/src/gallium/drivers/nv30/nv30_context.c
index 279b744..825c167 100644
--- a/src/gallium/drivers/nv30/nv30_context.c
+++ b/src/gallium/drivers/nv30/nv30_context.c
@@ -74,6 +74,7 @@ nv30_create(struct pipe_screen *pscreen, void *priv)
        nv30_init_query_functions(nv30);
        nv30_init_surface_functions(nv30);
        nv30_init_state_functions(nv30);
+       nv30_init_transfer_functions(nv30);
 
        /* Create, configure, and install fallback swtnl path */
        nv30->draw = draw_create();
diff --git a/src/gallium/drivers/nv30/nv30_context.h 
b/src/gallium/drivers/nv30/nv30_context.h
index 1786460..4a164f3 100644
--- a/src/gallium/drivers/nv30/nv30_context.h
+++ b/src/gallium/drivers/nv30/nv30_context.h
@@ -167,6 +167,7 @@ struct nv30_state_entry {
 extern void nv30_init_state_functions(struct nv30_context *nv30);
 extern void nv30_init_surface_functions(struct nv30_context *nv30);
 extern void nv30_init_query_functions(struct nv30_context *nv30);
+extern void nv30_init_transfer_functions(struct nv30_context *nv30);
 
 extern void nv30_screen_init_miptree_functions(struct pipe_screen *pscreen);
 
diff --git a/src/gallium/drivers/nv30/nv30_screen.c 
b/src/gallium/drivers/nv30/nv30_screen.c
index 85433d2..db24335 100644
--- a/src/gallium/drivers/nv30/nv30_screen.c
+++ b/src/gallium/drivers/nv30/nv30_screen.c
@@ -214,7 +214,6 @@ nv30_screen_create(struct pipe_winsys *ws, struct 
nouveau_device *dev)
        pscreen->context_create = nv30_create;
 
        nv30_screen_init_miptree_functions(pscreen);
-       nv30_screen_init_transfer_functions(pscreen);
 
        /* 3D object */
        switch (dev->chipset & 0xf0) {
diff --git a/src/gallium/drivers/nv30/nv30_transfer.c 
b/src/gallium/drivers/nv30/nv30_transfer.c
index 3aeda51..1318c60 100644
--- a/src/gallium/drivers/nv30/nv30_transfer.c
+++ b/src/gallium/drivers/nv30/nv30_transfer.c
@@ -33,11 +33,12 @@ nv30_compatible_transfer_tex(struct pipe_texture *pt, 
unsigned width, unsigned h
 }
 
 static struct pipe_transfer *
-nv30_transfer_new(struct pipe_screen *pscreen, struct pipe_texture *pt,
+nv30_transfer_new(struct pipe_context *pcontext, struct pipe_texture *pt,
                  unsigned face, unsigned level, unsigned zslice,
                  enum pipe_transfer_usage usage,
                  unsigned x, unsigned y, unsigned w, unsigned h)
 {
+        struct pipe_screen *pscreen = pcontext->screen;
        struct nv30_miptree *mt = (struct nv30_miptree *)pt;
        struct nv30_transfer *tx;
        struct pipe_texture tx_tex_template, *tx_tex;
@@ -145,8 +146,9 @@ nv30_transfer_del(struct pipe_transfer *ptx)
 }
 
 static void *
-nv30_transfer_map(struct pipe_screen *pscreen, struct pipe_transfer *ptx)
+nv30_transfer_map(struct pipe_context *pcontext, struct pipe_transfer *ptx)
 {
+        struct pipe_screen *pscreen = pcontext->screen;
        struct nv30_transfer *tx = (struct nv30_transfer *)ptx;
        struct nv04_surface *ns = (struct nv04_surface *)tx->surface;
        struct nv30_miptree *mt = (struct nv30_miptree *)tx->surface->texture;
@@ -160,8 +162,9 @@ nv30_transfer_map(struct pipe_screen *pscreen, struct 
pipe_transfer *ptx)
 }
 
 static void
-nv30_transfer_unmap(struct pipe_screen *pscreen, struct pipe_transfer *ptx)
+nv30_transfer_unmap(struct pipe_context *pcontext, struct pipe_transfer *ptx)
 {
+        struct pipe_screen *pscreen = pcontext->screen;
        struct nv30_transfer *tx = (struct nv30_transfer *)ptx;
        struct nv30_miptree *mt = (struct nv30_miptree *)tx->surface->texture;
 
@@ -169,10 +172,10 @@ nv30_transfer_unmap(struct pipe_screen *pscreen, struct 
pipe_transfer *ptx)
 }
 
 void
-nv30_screen_init_transfer_functions(struct pipe_screen *pscreen)
+nv30_init_transfer_functions(struct nv30_context *nv30)
 {
-       pscreen->get_tex_transfer = nv30_transfer_new;
-       pscreen->tex_transfer_destroy = nv30_transfer_del;
-       pscreen->transfer_map = nv30_transfer_map;
-       pscreen->transfer_unmap = nv30_transfer_unmap;
+       nv30->pipe.get_tex_transfer = nv30_transfer_new;
+       nv30->pipe.tex_transfer_destroy = nv30_transfer_del;
+       nv30->pipe.transfer_map = nv30_transfer_map;
+       nv30->pipe.transfer_unmap = nv30_transfer_unmap;
 }
diff --git a/src/gallium/drivers/nv40/nv40_context.c 
b/src/gallium/drivers/nv40/nv40_context.c
index 65dc73e..e828f17 100644
--- a/src/gallium/drivers/nv40/nv40_context.c
+++ b/src/gallium/drivers/nv40/nv40_context.c
@@ -74,6 +74,7 @@ nv40_create(struct pipe_screen *pscreen, void *priv)
        nv40_init_query_functions(nv40);
        nv40_init_surface_functions(nv40);
        nv40_init_state_functions(nv40);
+       nv40_init_transfer_functions(nv40);
 
        /* Create, configure, and install fallback swtnl path */
        nv40->draw = draw_create();
diff --git a/src/gallium/drivers/nv40/nv40_screen.c 
b/src/gallium/drivers/nv40/nv40_screen.c
index b216c5e..dbcc33d 100644
--- a/src/gallium/drivers/nv40/nv40_screen.c
+++ b/src/gallium/drivers/nv40/nv40_screen.c
@@ -201,7 +201,6 @@ nv40_screen_create(struct pipe_winsys *ws, struct 
nouveau_device *dev)
        pscreen->context_create = nv40_create;
 
        nv40_screen_init_miptree_functions(pscreen);
-       nv40_screen_init_transfer_functions(pscreen);
 
        /* 3D object */
        switch (dev->chipset & 0xf0) {
diff --git a/src/gallium/drivers/nv40/nv40_transfer.c 
b/src/gallium/drivers/nv40/nv40_transfer.c
index 0462a04..2ca9b94 100644
--- a/src/gallium/drivers/nv40/nv40_transfer.c
+++ b/src/gallium/drivers/nv40/nv40_transfer.c
@@ -33,11 +33,12 @@ nv40_compatible_transfer_tex(struct pipe_texture *pt, 
unsigned width, unsigned h
 }
 
 static struct pipe_transfer *
-nv40_transfer_new(struct pipe_screen *pscreen, struct pipe_texture *pt,
+nv40_transfer_new(struct pipe_context *pcontext, struct pipe_texture *pt,
                  unsigned face, unsigned level, unsigned zslice,
                  enum pipe_transfer_usage usage,
                  unsigned x, unsigned y, unsigned w, unsigned h)
 {
+        struct pipe_screen *pscreen = pcontext->screen;
        struct nv40_miptree *mt = (struct nv40_miptree *)pt;
        struct nv40_transfer *tx;
        struct pipe_texture tx_tex_template, *tx_tex;
@@ -145,8 +146,9 @@ nv40_transfer_del(struct pipe_transfer *ptx)
 }
 
 static void *
-nv40_transfer_map(struct pipe_screen *pscreen, struct pipe_transfer *ptx)
+nv40_transfer_map(struct pipe_context *pcontext, struct pipe_transfer *ptx)
 {
+        struct pipe_screen *pscreen = pcontext->screen;
        struct nv40_transfer *tx = (struct nv40_transfer *)ptx;
        struct nv04_surface *ns = (struct nv04_surface *)tx->surface;
        struct nv40_miptree *mt = (struct nv40_miptree *)tx->surface->texture;
@@ -160,8 +162,9 @@ nv40_transfer_map(struct pipe_screen *pscreen, struct 
pipe_transfer *ptx)
 }
 
 static void
-nv40_transfer_unmap(struct pipe_screen *pscreen, struct pipe_transfer *ptx)
+nv40_transfer_unmap(struct pipe_context *pcontext, struct pipe_transfer *ptx)
 {
+        struct pipe_screen *pscreen = pcontext->screen;
        struct nv40_transfer *tx = (struct nv40_transfer *)ptx;
        struct nv40_miptree *mt = (struct nv40_miptree *)tx->surface->texture;
 
@@ -169,10 +172,10 @@ nv40_transfer_unmap(struct pipe_screen *pscreen, struct 
pipe_transfer *ptx)
 }
 
 void
-nv40_screen_init_transfer_functions(struct pipe_screen *pscreen)
+nv40_init_transfer_functions(struct nv40_context *nv40)
 {
-       pscreen->get_tex_transfer = nv40_transfer_new;
-       pscreen->tex_transfer_destroy = nv40_transfer_del;
-       pscreen->transfer_map = nv40_transfer_map;
-       pscreen->transfer_unmap = nv40_transfer_unmap;
+       nv40->pipe.get_tex_transfer = nv40_transfer_new;
+       nv40->pipe.tex_transfer_destroy = nv40_transfer_del;
+       nv40->pipe.transfer_map = nv40_transfer_map;
+       nv40->pipe.transfer_unmap = nv40_transfer_unmap;
 }
diff --git a/src/gallium/drivers/nv50/nv50_context.c 
b/src/gallium/drivers/nv50/nv50_context.c
index 0eb42f3..aa14e17 100644
--- a/src/gallium/drivers/nv50/nv50_context.c
+++ b/src/gallium/drivers/nv50/nv50_context.c
@@ -97,6 +97,7 @@ nv50_create(struct pipe_screen *pscreen, void *priv)
        nv50_init_surface_functions(nv50);
        nv50_init_state_functions(nv50);
        nv50_init_query_functions(nv50);
+        nv50_init_transfer_functions(nv50);
 
        nv50->draw = draw_create();
        assert(nv50->draw);
diff --git a/src/gallium/drivers/nv50/nv50_transfer.c 
b/src/gallium/drivers/nv50/nv50_transfer.c
index 7c360e9..b7f2ac1 100644
--- a/src/gallium/drivers/nv50/nv50_transfer.c
+++ b/src/gallium/drivers/nv50/nv50_transfer.c
@@ -121,11 +121,12 @@ nv50_transfer_rect_m2mf(struct pipe_screen *pscreen,
 }
 
 static struct pipe_transfer *
-nv50_transfer_new(struct pipe_screen *pscreen, struct pipe_texture *pt,
+nv50_transfer_new(struct pipe_context *pcontext, struct pipe_texture *pt,
                  unsigned face, unsigned level, unsigned zslice,
                  enum pipe_transfer_usage usage,
                  unsigned x, unsigned y, unsigned w, unsigned h)
 {
+        struct pipe_screen *pscreen = pcontext->screen;
        struct nouveau_device *dev = nouveau_screen(pscreen)->device;
        struct nv50_miptree *mt = nv50_miptree(pt);
        struct nv50_miptree_level *lvl = &mt->level[level];
@@ -218,7 +219,7 @@ nv50_transfer_del(struct pipe_transfer *ptx)
 }
 
 static void *
-nv50_transfer_map(struct pipe_screen *pscreen, struct pipe_transfer *ptx)
+nv50_transfer_map(struct pipe_context *pcontext, struct pipe_transfer *ptx)
 {
        struct nv50_transfer *tx = (struct nv50_transfer *)ptx;
        unsigned flags = 0;
@@ -236,7 +237,7 @@ nv50_transfer_map(struct pipe_screen *pscreen, struct 
pipe_transfer *ptx)
 }
 
 static void
-nv50_transfer_unmap(struct pipe_screen *pscreen, struct pipe_transfer *ptx)
+nv50_transfer_unmap(struct pipe_context *pcontext, struct pipe_transfer *ptx)
 {
        struct nv50_transfer *tx = (struct nv50_transfer *)ptx;
 
@@ -244,12 +245,12 @@ nv50_transfer_unmap(struct pipe_screen *pscreen, struct 
pipe_transfer *ptx)
 }
 
 void
-nv50_transfer_init_screen_functions(struct pipe_screen *pscreen)
+nv50_init_transfer_functions(struct nv50_context *nv50)
 {
-       pscreen->get_tex_transfer = nv50_transfer_new;
-       pscreen->tex_transfer_destroy = nv50_transfer_del;
-       pscreen->transfer_map = nv50_transfer_map;
-       pscreen->transfer_unmap = nv50_transfer_unmap;
+       nv50->pipe.get_tex_transfer = nv50_transfer_new;
+       nv50->pipe.tex_transfer_destroy = nv50_transfer_del;
+       nv50->pipe.transfer_map = nv50_transfer_map;
+       nv50->pipe.transfer_unmap = nv50_transfer_unmap;
 }
 
 void

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

Reply via email to