The main reason _min exists is that it evaluates each parameter once, while MIN2 evaluates each parameter twice, so in this case, MIN2 calls the get_param function twice, which may not be desirable. The same for the other macros.
Marek On Fri, Feb 21, 2014 at 11:59 PM, Emil Velikov <emil.l.veli...@gmail.com> wrote: > Signed-off-by: Emil Velikov <emil.l.veli...@gmail.com> > --- > src/mesa/state_tracker/st_extensions.c | 27 +++++++++++---------------- > 1 file changed, 11 insertions(+), 16 deletions(-) > > diff --git a/src/mesa/state_tracker/st_extensions.c > b/src/mesa/state_tracker/st_extensions.c > index e43e7b4..a909b71 100644 > --- a/src/mesa/state_tracker/st_extensions.c > +++ b/src/mesa/state_tracker/st_extensions.c > @@ -39,11 +39,6 @@ > #include "st_extensions.h" > #include "st_format.h" > > -static unsigned _min(unsigned a, unsigned b) > -{ > - return (a < b) ? a : b; > -} > - > static float _maxf(float a, float b) > { > return (a > b) ? a : b; > @@ -72,19 +67,19 @@ void st_init_limits(struct st_context *st) > boolean can_ubo = TRUE; > > c->MaxTextureLevels > - = _min(screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_2D_LEVELS), > + = MIN2(screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_2D_LEVELS), > MAX_TEXTURE_LEVELS); > > c->Max3DTextureLevels > - = _min(screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_3D_LEVELS), > + = MIN2(screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_3D_LEVELS), > MAX_3D_TEXTURE_LEVELS); > > c->MaxCubeTextureLevels > - = _min(screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS), > + = MIN2(screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS), > MAX_CUBE_TEXTURE_LEVELS); > > c->MaxTextureRectSize > - = _min(1 << (c->MaxTextureLevels - 1), MAX_TEXTURE_RECT_SIZE); > + = MIN2(1 << (c->MaxTextureLevels - 1), MAX_TEXTURE_RECT_SIZE); > > c->MaxArrayTextureLayers > = screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS); > @@ -168,7 +163,7 @@ void st_init_limits(struct st_context *st) > } > > pc->MaxTextureImageUnits = > - _min(screen->get_shader_param(screen, sh, > + MIN2(screen->get_shader_param(screen, sh, > PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS), > MAX_TEXTURE_IMAGE_UNITS); > > @@ -185,7 +180,7 @@ void st_init_limits(struct st_context *st) > pc->MaxTemps = pc->MaxNativeTemps = > screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_TEMPS); > pc->MaxAddressRegs = pc->MaxNativeAddressRegs = > - _min(screen->get_shader_param(screen, sh, > PIPE_SHADER_CAP_MAX_ADDRS), > + MIN2(screen->get_shader_param(screen, sh, > PIPE_SHADER_CAP_MAX_ADDRS), > MAX_PROGRAM_ADDRESS_REGS); > pc->MaxParameters = pc->MaxNativeParameters = > screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_CONSTS); > @@ -196,7 +191,7 @@ void st_init_limits(struct st_context *st) > screen->get_shader_param(screen, sh, > PIPE_SHADER_CAP_MAX_CONST_BUFFERS); > if (pc->MaxUniformBlocks) > pc->MaxUniformBlocks -= 1; /* The first one is for ordinary > uniforms. */ > - pc->MaxUniformBlocks = _min(pc->MaxUniformBlocks, MAX_UNIFORM_BUFFERS); > + pc->MaxUniformBlocks = MIN2(pc->MaxUniformBlocks, MAX_UNIFORM_BUFFERS); > > pc->MaxCombinedUniformComponents = (pc->MaxUniformComponents + > c->MaxUniformBlockSize / 4 * > @@ -240,16 +235,16 @@ void st_init_limits(struct st_context *st) > } > > c->MaxCombinedTextureImageUnits = > - _min(c->Program[MESA_SHADER_VERTEX].MaxTextureImageUnits + > + MIN2(c->Program[MESA_SHADER_VERTEX].MaxTextureImageUnits + > c->Program[MESA_SHADER_GEOMETRY].MaxTextureImageUnits + > c->Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits, > MAX_COMBINED_TEXTURE_IMAGE_UNITS); > > /* This depends on program constants. */ > c->MaxTextureCoordUnits > - = _min(c->Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits, > MAX_TEXTURE_COORD_UNITS); > + = MIN2(c->Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits, > MAX_TEXTURE_COORD_UNITS); > > - c->MaxTextureUnits = > _min(c->Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits, > c->MaxTextureCoordUnits); > + c->MaxTextureUnits = > MIN2(c->Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits, > c->MaxTextureCoordUnits); > > c->Program[MESA_SHADER_VERTEX].MaxAttribs = > MIN2(c->Program[MESA_SHADER_VERTEX].MaxAttribs, 16); > > @@ -749,7 +744,7 @@ void st_init_extensions(struct st_context *st) > ctx->Extensions.ARB_texture_buffer_object = GL_TRUE; > > ctx->Const.MaxTextureBufferSize = > - _min(screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE), > + MIN2(screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE), > (1u << 31) - 1); > ctx->Const.TextureBufferOffsetAlignment = > screen->get_param(screen, PIPE_CAP_TEXTURE_BUFFER_OFFSET_ALIGNMENT); > -- > 1.9.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev