[Mesa-dev] [PATCH] mesa/st: split updating vertex and fragment shader stages.

Dave Airlie airlied at gmail.com
Wed May 18 00:53:29 PDT 2011


From: Dave Airlie <airlied at redhat.com>

(I've already pushed this by accident, if its bad I can revert it).

this seems like a logical thing to do and sets the correct st flags
for vertex textures.

Signed-off-by: Dave Airlie <airlied at redhat.com>
---
 src/mesa/state_tracker/st_atom.c         |    1 +
 src/mesa/state_tracker/st_atom.h         |    1 +
 src/mesa/state_tracker/st_atom_texture.c |   18 ++++++++++--------
 3 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/mesa/state_tracker/st_atom.c b/src/mesa/state_tracker/st_atom.c
index bf160fe..e1eac81 100644
--- a/src/mesa/state_tracker/st_atom.c
+++ b/src/mesa/state_tracker/st_atom.c
@@ -56,6 +56,7 @@ static const struct st_tracked_state *atoms[] =
    &st_update_scissor,
    &st_update_blend,
    &st_update_sampler,
+   &st_update_vertex_texture,
    &st_update_texture,
    &st_update_framebuffer,
    &st_update_msaa,
diff --git a/src/mesa/state_tracker/st_atom.h b/src/mesa/state_tracker/st_atom.h
index 6a5ea36..930a084 100644
--- a/src/mesa/state_tracker/st_atom.h
+++ b/src/mesa/state_tracker/st_atom.h
@@ -60,6 +60,7 @@ extern const struct st_tracked_state st_update_blend;
 extern const struct st_tracked_state st_update_msaa;
 extern const struct st_tracked_state st_update_sampler;
 extern const struct st_tracked_state st_update_texture;
+extern const struct st_tracked_state st_update_vertex_texture;
 extern const struct st_tracked_state st_finalize_textures;
 extern const struct st_tracked_state st_update_fs_constants;
 extern const struct st_tracked_state st_update_gs_constants;
diff --git a/src/mesa/state_tracker/st_atom_texture.c b/src/mesa/state_tracker/st_atom_texture.c
index 990b504..072eb97 100644
--- a/src/mesa/state_tracker/st_atom_texture.c
+++ b/src/mesa/state_tracker/st_atom_texture.c
@@ -317,20 +317,22 @@ update_fragment_textures(struct st_context *st)
                                   st->state.sampler_views);
 }
 
-static void 
-update_textures(struct st_context *st)
-{
-  update_fragment_textures(st);
-  update_vertex_textures(st);
-}
-
 const struct st_tracked_state st_update_texture = {
    "st_update_texture",					/* name */
    {							/* dirty */
       _NEW_TEXTURE,					/* mesa */
       ST_NEW_FRAGMENT_PROGRAM,				/* st */
    },
-   update_textures					/* update */
+   update_fragment_textures				/* update */
+};
+
+const struct st_tracked_state st_update_vertex_texture = {
+   "st_update_vertex_texture",					/* name */
+   {							/* dirty */
+      _NEW_TEXTURE,					/* mesa */
+      ST_NEW_VERTEX_PROGRAM,				/* st */
+   },
+   update_vertex_textures				/* update */
 };
 
 static void 
-- 
1.7.5.1



More information about the mesa-dev mailing list