st/mesa: remove st_finalize_textures atom
It only checks fragment textures and ignores other shaders, which makes it incomplete, and textures are already finalized in update_single_texture. There are no piglit regressions. Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
@@ -46,7 +46,6 @@ static const struct st_tracked_state *atoms[] =
|
||||
&st_update_depth_stencil_alpha,
|
||||
&st_update_clip,
|
||||
|
||||
&st_finalize_textures,
|
||||
&st_update_fp,
|
||||
&st_update_gp,
|
||||
&st_update_tep,
|
||||
|
||||
@@ -68,7 +68,6 @@ extern const struct st_tracked_state st_update_vertex_texture;
|
||||
extern const struct st_tracked_state st_update_geometry_texture;
|
||||
extern const struct st_tracked_state st_update_tessctrl_texture;
|
||||
extern const struct st_tracked_state st_update_tesseval_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;
|
||||
extern const struct st_tracked_state st_update_tes_constants;
|
||||
|
||||
@@ -582,48 +582,3 @@ const struct st_tracked_state st_update_tesseval_texture = {
|
||||
},
|
||||
update_tesseval_textures /* update */
|
||||
};
|
||||
|
||||
|
||||
|
||||
static void
|
||||
finalize_textures(struct st_context *st)
|
||||
{
|
||||
struct gl_context *ctx = st->ctx;
|
||||
struct gl_fragment_program *fprog = ctx->FragmentProgram._Current;
|
||||
const GLboolean prev_missing_textures = st->missing_textures;
|
||||
GLuint su;
|
||||
|
||||
st->missing_textures = GL_FALSE;
|
||||
|
||||
for (su = 0; su < ctx->Const.MaxTextureCoordUnits; su++) {
|
||||
if (fprog->Base.SamplersUsed & (1 << su)) {
|
||||
const GLuint texUnit = fprog->Base.SamplerUnits[su];
|
||||
struct gl_texture_object *texObj
|
||||
= ctx->Texture.Unit[texUnit]._Current;
|
||||
|
||||
if (texObj) {
|
||||
GLboolean retval;
|
||||
|
||||
retval = st_finalize_texture(ctx, st->pipe, texObj);
|
||||
if (!retval) {
|
||||
/* out of mem */
|
||||
st->missing_textures = GL_TRUE;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (prev_missing_textures != st->missing_textures)
|
||||
st->dirty.st |= ST_NEW_FRAGMENT_PROGRAM;
|
||||
}
|
||||
|
||||
|
||||
const struct st_tracked_state st_finalize_textures = {
|
||||
"st_finalize_textures", /* name */
|
||||
{ /* dirty */
|
||||
_NEW_TEXTURE, /* mesa */
|
||||
0, /* st */
|
||||
},
|
||||
finalize_textures /* update */
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user