This series is, Reviewed-by: Edward O'Callaghan <funfunc...@folklore1984.net>
On 03/24/2017 10:42 AM, Marek Olšák wrote: > From: Marek Olšák <marek.ol...@amd.com> > > --- > src/mesa/main/state.c | 7 +++++-- > src/mesa/main/texstate.c | 22 ++++------------------ > src/mesa/main/texstate.h | 7 +++++-- > 3 files changed, 14 insertions(+), 22 deletions(-) > > diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c > index 5cb58a4..71265a5 100644 > --- a/src/mesa/main/state.c > +++ b/src/mesa/main/state.c > @@ -399,22 +399,25 @@ _mesa_update_state_locked( struct gl_context *ctx ) > /* > * Now update derived state info > */ > > if (new_state & prog_flags) > update_program_enables( ctx ); > > if (new_state & (_NEW_MODELVIEW|_NEW_PROJECTION)) > _mesa_update_modelview_project( ctx, new_state ); > > - if (new_state & (_NEW_PROGRAM|_NEW_TEXTURE|_NEW_TEXTURE_MATRIX)) > - _mesa_update_texture( ctx, new_state ); > + if (new_state & _NEW_TEXTURE_MATRIX) > + _mesa_update_texture_matrices(ctx); > + > + if (new_state & (_NEW_TEXTURE | _NEW_PROGRAM)) > + _mesa_update_texture_state(ctx); > > if (new_state & _NEW_POLYGON) > update_frontbit( ctx ); > > if (new_state & _NEW_BUFFERS) > _mesa_update_framebuffer(ctx, ctx->ReadBuffer, ctx->DrawBuffer); > > if (new_state & (_NEW_SCISSOR | _NEW_BUFFERS | _NEW_VIEWPORT)) > _mesa_update_draw_buffer_bounds(ctx, ctx->DrawBuffer); > > diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c > index be73fc3..70e014c 100644 > --- a/src/mesa/main/texstate.c > +++ b/src/mesa/main/texstate.c > @@ -348,22 +348,22 @@ _mesa_ClientActiveTexture(GLenum texture) > > > /** > * \note This routine refers to derived texture attribute values to > * compute the ENABLE_TEXMAT flags, but is only called on > * _NEW_TEXTURE_MATRIX. On changes to _NEW_TEXTURE, the ENABLE_TEXMAT > * flags are updated by _mesa_update_textures(), below. > * > * \param ctx GL context. > */ > -static void > -update_texture_matrices( struct gl_context *ctx ) > +void > +_mesa_update_texture_matrices(struct gl_context *ctx) > { > GLuint u; > > ctx->Texture._TexMatEnabled = 0x0; > > for (u = 0; u < ctx->Const.MaxTextureCoordUnits; u++) { > assert(u < ARRAY_SIZE(ctx->TextureMatrixStack)); > if (_math_matrix_is_dirty(ctx->TextureMatrixStack[u].Top)) { > _math_matrix_analyse( ctx->TextureMatrixStack[u].Top ); > > @@ -684,22 +684,22 @@ update_ff_texture_state(struct gl_context *ctx, > } > > /** > * \note This routine refers to derived texture matrix values to > * compute the ENABLE_TEXMAT flags, but is only called on > * _NEW_TEXTURE. On changes to _NEW_TEXTURE_MATRIX, the ENABLE_TEXMAT > * flags are updated by _mesa_update_texture_matrices, above. > * > * \param ctx GL context. > */ > -static void > -update_texture_state( struct gl_context *ctx ) > +void > +_mesa_update_texture_state(struct gl_context *ctx) > { > struct gl_program *prog[MESA_SHADER_STAGES]; > int i; > int old_max_unit = ctx->Texture._MaxEnabledTexImageUnit; > BITSET_DECLARE(enabled_texture_units, MAX_COMBINED_TEXTURE_IMAGE_UNITS); > > for (i = 0; i < MESA_SHADER_STAGES; i++) { > if (ctx->_Shader->CurrentProgram[i]) { > prog[i] = ctx->_Shader->CurrentProgram[i]; > } else { > @@ -740,34 +740,20 @@ update_texture_state( struct gl_context *ctx ) > } > for (i = ctx->Texture._MaxEnabledTexImageUnit + 1; i <= old_max_unit; > i++) { > _mesa_reference_texobj(&ctx->Texture.Unit[i]._Current, NULL); > } > > if (!prog[MESA_SHADER_FRAGMENT] || !prog[MESA_SHADER_VERTEX]) > update_texgen(ctx); > } > > > -/** > - * Update texture-related derived state. > - */ > -void > -_mesa_update_texture( struct gl_context *ctx, GLuint new_state ) > -{ > - if (new_state & _NEW_TEXTURE_MATRIX) > - update_texture_matrices( ctx ); > - > - if (new_state & (_NEW_TEXTURE | _NEW_PROGRAM)) > - update_texture_state( ctx ); > -} > - > - > /**********************************************************************/ > /***** Initialization *****/ > /**********************************************************************/ > > /** > * Allocate the proxy textures for the given context. > * > * \param ctx the context to allocate proxies for. > * > * \return GL_TRUE on success, or GL_FALSE on failure > diff --git a/src/mesa/main/texstate.h b/src/mesa/main/texstate.h > index 52fe602..cb329b0 100644 > --- a/src/mesa/main/texstate.h > +++ b/src/mesa/main/texstate.h > @@ -84,22 +84,25 @@ extern void GLAPIENTRY > _mesa_ClientActiveTexture( GLenum target ); > > /*@}*/ > > > /** > * \name Initialization, state maintenance > */ > /*@{*/ > > -extern void > -_mesa_update_texture( struct gl_context *ctx, GLuint new_state ); > +extern void > +_mesa_update_texture_matrices(struct gl_context *ctx); > + > +extern void > +_mesa_update_texture_state(struct gl_context *ctx); > > extern GLboolean > _mesa_init_texture( struct gl_context *ctx ); > > extern void > _mesa_free_texture_data( struct gl_context *ctx ); > > extern void > _mesa_update_default_objects_texture(struct gl_context *ctx); > >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev