From: Marek Olšák Date: Fri, 24 Jul 2015 17:47:06 +0000 (+0200) Subject: st/mesa: don't ignore texture buffer state changes X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e39ece0d7856d0532a0f011cd5cb17bc85ee82e2;p=mesa.git st/mesa: don't ignore texture buffer state changes Fixes piglit: spec@arb_texture_buffer_range@ranges-2 Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Brian Paul --- diff --git a/src/mesa/state_tracker/st_atom_texture.c b/src/mesa/state_tracker/st_atom_texture.c index 1e315332560..e80f9893ad5 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 44244a1e720..72c23cad4bc 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 8183412ceab..a68f881c81c 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 {