Mesa (master): st/mesa: don't ignore texture buffer state changes

Marek Olšák mareko at kemper.freedesktop.org
Sat Jul 25 08:38:31 UTC 2015


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

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Fri Jul 24 19:47:06 2015 +0200

st/mesa: don't ignore texture buffer state changes

Fixes piglit:
  spec at arb_texture_buffer_range@ranges-2

Cc: mesa-stable at lists.freedesktop.org
Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/mesa/state_tracker/st_atom_texture.c |   10 +++++-----
 src/mesa/state_tracker/st_context.c      |    1 +
 src/mesa/state_tracker/st_context.h      |    1 +
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/mesa/state_tracker/st_atom_texture.c b/src/mesa/state_tracker/st_atom_texture.c
index 1e31533..e80f989 100644
--- a/src/mesa/state_tracker/st_atom_texture.c
+++ b/src/mesa/state_tracker/st_atom_texture.c
@@ -508,7 +508,7 @@ const struct st_tracked_state st_update_fragment_texture = {
    "st_update_texture",					/* name */
    {							/* dirty */
       _NEW_TEXTURE,					/* mesa */
-      ST_NEW_FRAGMENT_PROGRAM,				/* st */
+      ST_NEW_FRAGMENT_PROGRAM | ST_NEW_SAMPLER_VIEWS,	/* st */
    },
    update_fragment_textures				/* update */
 };
@@ -518,7 +518,7 @@ const struct st_tracked_state st_update_vertex_texture = {
    "st_update_vertex_texture",				/* name */
    {							/* dirty */
       _NEW_TEXTURE,					/* mesa */
-      ST_NEW_VERTEX_PROGRAM,				/* st */
+      ST_NEW_VERTEX_PROGRAM | ST_NEW_SAMPLER_VIEWS,	/* st */
    },
    update_vertex_textures				/* update */
 };
@@ -528,7 +528,7 @@ const struct st_tracked_state st_update_geometry_texture = {
    "st_update_geometry_texture",			/* name */
    {							/* dirty */
       _NEW_TEXTURE,					/* mesa */
-      ST_NEW_GEOMETRY_PROGRAM,				/* st */
+      ST_NEW_GEOMETRY_PROGRAM | ST_NEW_SAMPLER_VIEWS,	/* st */
    },
    update_geometry_textures				/* update */
 };
@@ -538,7 +538,7 @@ const struct st_tracked_state st_update_tessctrl_texture = {
    "st_update_tessctrl_texture",			/* name */
    {							/* dirty */
       _NEW_TEXTURE,					/* mesa */
-      ST_NEW_TESSCTRL_PROGRAM,				/* st */
+      ST_NEW_TESSCTRL_PROGRAM | ST_NEW_SAMPLER_VIEWS,	/* st */
    },
    update_tessctrl_textures				/* update */
 };
@@ -548,7 +548,7 @@ const struct st_tracked_state st_update_tesseval_texture = {
    "st_update_tesseval_texture",			/* name */
    {							/* dirty */
       _NEW_TEXTURE,					/* mesa */
-      ST_NEW_TESSEVAL_PROGRAM,				/* st */
+      ST_NEW_TESSEVAL_PROGRAM | ST_NEW_SAMPLER_VIEWS,	/* st */
    },
    update_tesseval_textures				/* update */
 };
diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c
index 44244a1..72c23ca 100644
--- a/src/mesa/state_tracker/st_context.c
+++ b/src/mesa/state_tracker/st_context.c
@@ -314,6 +314,7 @@ static void st_init_driver_flags(struct gl_driver_flags *f)
    f->NewRasterizerDiscard = ST_NEW_RASTERIZER;
    f->NewUniformBuffer = ST_NEW_UNIFORM_BUFFER;
    f->NewDefaultTessLevels = ST_NEW_TESS_STATE;
+   f->NewTextureBuffer = ST_NEW_SAMPLER_VIEWS;
 }
 
 struct st_context *st_create_context(gl_api api, struct pipe_context *pipe,
diff --git a/src/mesa/state_tracker/st_context.h b/src/mesa/state_tracker/st_context.h
index 8183412..a68f881 100644
--- a/src/mesa/state_tracker/st_context.h
+++ b/src/mesa/state_tracker/st_context.h
@@ -60,6 +60,7 @@ struct u_upload_mgr;
 #define ST_NEW_UNIFORM_BUFFER          (1 << 8)
 #define ST_NEW_TESSCTRL_PROGRAM        (1 << 9)
 #define ST_NEW_TESSEVAL_PROGRAM        (1 << 10)
+#define ST_NEW_SAMPLER_VIEWS           (1 << 11)
 
 
 struct st_state_flags {




More information about the mesa-commit mailing list