Mesa (gallium-sampler-view): softpipe: Fix after sampler view changes.

Michał Król michal at kemper.freedesktop.org
Tue Feb 23 18:18:54 UTC 2010


Module: Mesa
Branch: gallium-sampler-view
Commit: eb9c9efedf9e0b1fdb000a3d175285764759af2a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=eb9c9efedf9e0b1fdb000a3d175285764759af2a

Author: Michal Krol <michal at vmware.com>
Date:   Tue Feb 23 16:37:42 2010 +0100

softpipe: Fix after sampler view changes.

---

 src/gallium/drivers/softpipe/sp_context.c       |    2 +
 src/gallium/drivers/softpipe/sp_state.h         |    9 +++++++
 src/gallium/drivers/softpipe/sp_state_sampler.c |   29 +++++++++++++++++++++++
 3 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/softpipe/sp_context.c b/src/gallium/drivers/softpipe/sp_context.c
index 858e118..0c74b49 100644
--- a/src/gallium/drivers/softpipe/sp_context.c
+++ b/src/gallium/drivers/softpipe/sp_context.c
@@ -254,6 +254,8 @@ softpipe_create_context( struct pipe_screen *screen,
    softpipe->pipe.set_scissor_state = softpipe_set_scissor_state;
    softpipe->pipe.set_fragment_sampler_views = softpipe_set_sampler_views;
    softpipe->pipe.set_vertex_sampler_views = softpipe_set_vertex_sampler_views;
+   softpipe->pipe.create_sampler_view = softpipe_create_sampler_view;
+   softpipe->pipe.sampler_view_destroy = softpipe_sampler_view_destroy;
    softpipe->pipe.set_viewport_state = softpipe_set_viewport_state;
 
    softpipe->pipe.set_vertex_buffers = softpipe_set_vertex_buffers;
diff --git a/src/gallium/drivers/softpipe/sp_state.h b/src/gallium/drivers/softpipe/sp_state.h
index ba9bbfe..b37bb95 100644
--- a/src/gallium/drivers/softpipe/sp_state.h
+++ b/src/gallium/drivers/softpipe/sp_state.h
@@ -175,6 +175,15 @@ softpipe_set_vertex_sampler_views(struct pipe_context *,
                                   unsigned num,
                                   struct pipe_sampler_view **);
 
+struct pipe_sampler_view *
+softpipe_create_sampler_view(struct pipe_context *pipe,
+                             struct pipe_texture *texture,
+                             const struct pipe_sampler_view *templ);
+
+void
+softpipe_sampler_view_destroy(struct pipe_context *pipe,
+                              struct pipe_sampler_view *view);
+
 void softpipe_set_viewport_state( struct pipe_context *,
                                   const struct pipe_viewport_state * );
 
diff --git a/src/gallium/drivers/softpipe/sp_state_sampler.c b/src/gallium/drivers/softpipe/sp_state_sampler.c
index c985b5c..5a92e22 100644
--- a/src/gallium/drivers/softpipe/sp_state_sampler.c
+++ b/src/gallium/drivers/softpipe/sp_state_sampler.c
@@ -121,6 +121,35 @@ softpipe_bind_vertex_sampler_states(struct pipe_context *pipe,
 }
 
 
+struct pipe_sampler_view *
+softpipe_create_sampler_view(struct pipe_context *pipe,
+                             struct pipe_texture *texture,
+                             const struct pipe_sampler_view *templ)
+{
+   struct softpipe_context *softpipe = softpipe_context(pipe);
+   struct pipe_sampler_view *view = CALLOC_STRUCT(pipe_sampler_view);
+
+   *view = *templ;
+   view->reference.count = 1;
+   view->texture = NULL;
+   pipe_texture_reference(&view->texture, texture);
+   view->context = pipe;
+
+   return view;
+}
+
+
+void
+softpipe_sampler_view_destroy(struct pipe_context *pipe,
+                              struct pipe_sampler_view *view)
+{
+   struct softpipe_context *softpipe = softpipe_context(pipe);
+
+   pipe_texture_reference(&view->texture, NULL);
+   FREE(view);
+}
+
+
 void
 softpipe_set_sampler_views(struct pipe_context *pipe,
                            unsigned num,




More information about the mesa-commit mailing list