tnl: Avoid double promotion.
authorMatt Turner <mattst88@gmail.com>
Mon, 13 Jul 2015 06:15:01 +0000 (23:15 -0700)
committerMatt Turner <mattst88@gmail.com>
Wed, 29 Jul 2015 16:34:52 +0000 (09:34 -0700)
There are a couple of unrelated changes in t_vb_lighttmp.h that I hope
you'll excuse -- there's a block of code that's duplicated modulo a few
trivial differences that I took the liberty of fixing.

src/mesa/tnl/t_draw.c
src/mesa/tnl/t_rasterpos.c
src/mesa/tnl/t_vb_fog.c
src/mesa/tnl/t_vb_light.c
src/mesa/tnl/t_vb_lighttmp.h
src/mesa/tnl/t_vb_normals.c
src/mesa/tnl/t_vertex_generic.c

index d5dcb5e8a7d7d1f5ddf2e0074dc2ca9bdb3a862e..632acb55f8bc1a8ae3b3b56dfbfb5bdec5ab55c1 100644 (file)
@@ -257,7 +257,7 @@ static GLboolean *_tnl_import_edgeflag( struct gl_context *ctx,
    GLuint i;
 
    for (i = 0; i < count; i++) {
-      *bptr++ = ((GLfloat *)ptr)[0] == 1.0;
+      *bptr++ = ((GLfloat *)ptr)[0] == 1.0F;
       ptr += stride;
    }
 
index 7ef50ea7cd7fd086a572f0be74f031ba5b77c874..4bd9ac8539e520b487aeaeed38188a5001adf8aa 100644 (file)
@@ -148,7 +148,7 @@ shade_rastpos(struct gl_context *ctx,
         SUB_3V(VP, light->_Position, vertex);
          /* d = length(VP) */
         d = (GLfloat) LEN_3FV( VP );
-        if (d > 1.0e-6) {
+        if (d > 1.0e-6F) {
             /* normalize VP */
            GLfloat invd = 1.0F / d;
            SELF_SCALE_SCALAR_3V(VP, invd);
@@ -172,7 +172,7 @@ shade_rastpos(struct gl_context *ctx,
         }
       }
 
-      if (attenuation < 1e-3)
+      if (attenuation < 1e-3F)
         continue;
 
       n_dot_VP = DOT3( normal, VP );
@@ -219,7 +219,7 @@ shade_rastpos(struct gl_context *ctx,
            shine = ctx->Light.Material.Attrib[MAT_ATTRIB_FRONT_SHININESS][0];
            spec_coef = powf(n_dot_h, shine);
 
-           if (spec_coef > 1.0e-10) {
+           if (spec_coef > 1.0e-10F) {
                if (ctx->Light.Model.ColorControl==GL_SEPARATE_SPECULAR_COLOR) {
                   ACC_SCALE_SCALAR_3V( specularContrib, spec_coef,
                                        light->_MatSpecular[0]);
index 1ca72f866b7c402e5ccad0039654b4e2d2cd5d4c..5489ed6857f6b8eff26c2ba1c0dc7fe260007092 100644 (file)
@@ -45,8 +45,8 @@ struct fog_stage_data {
 #define FOG_STAGE_DATA(stage) ((struct fog_stage_data *)stage->privatePtr)
 
 #define FOG_EXP_TABLE_SIZE 256
-#define FOG_MAX (10.0)
-#define EXP_FOG_MAX .0006595
+#define FOG_MAX (10.0F)
+#define EXP_FOG_MAX .0006595F
 #define FOG_INCR (FOG_MAX/FOG_EXP_TABLE_SIZE)
 static GLfloat exp_table[FOG_EXP_TABLE_SIZE];
 static GLfloat inited = 0;
@@ -54,7 +54,7 @@ static GLfloat inited = 0;
 #if 1
 #define NEG_EXP( result, narg )                                                \
 do {                                                                   \
-   GLfloat f = (GLfloat) (narg * (1.0/FOG_INCR));                      \
+   GLfloat f = (GLfloat) (narg * (1.0F / FOG_INCR));                   \
    GLint k = (GLint) f;                                                        \
    if (k > FOG_EXP_TABLE_SIZE-2)                                       \
       result = (GLfloat) EXP_FOG_MAX;                                  \
index dbd57fa6bfeeeae94b5b957918b18417a6465f5f..029265a4f83885ef29910596761366e3fa436772 100644 (file)
@@ -137,23 +137,23 @@ validate_shine_table( struct gl_context *ctx, GLuint side, GLfloat shininess )
            break;
 
       m = s->tab;
-      m[0] = 0.0;
-      if (shininess == 0.0) {
+      m[0] = 0.0F;
+      if (shininess == 0.0F) {
         for (j = 1 ; j <= SHINE_TABLE_SIZE ; j++)
-           m[j] = 1.0;
+           m[j] = 1.0F;
       }
       else {
         for (j = 1 ; j < SHINE_TABLE_SIZE ; j++) {
-            GLdouble t, x = j / (GLfloat) (SHINE_TABLE_SIZE - 1);
-            if (x < 0.005) /* underflow check */
-               x = 0.005;
-            t = pow(x, shininess);
-           if (t > 1e-20)
-              m[j] = (GLfloat) t;
+            GLfloat t, x = j / (GLfloat) (SHINE_TABLE_SIZE - 1);
+            if (x < 0.005F) /* underflow check */
+               x = 0.005F;
+            t = powf(x, shininess);
+           if (t > 1e-20F)
+              m[j] = t;
            else
-              m[j] = 0.0;
+              m[j] = 0.0F;
         }
-        m[SHINE_TABLE_SIZE] = 1.0;
+        m[SHINE_TABLE_SIZE] = 1.0F;
       }
 
       s->shininess = shininess;
index f8786accbbb0e781a12d3eadb0b700f1ba5c974c..3aebcd4b79949db6375a42adba492977721ef550 100644 (file)
@@ -112,7 +112,7 @@ static void TAG(light_rgba_spec)( struct gl_context *ctx,
         GLint side;
         GLfloat contrib[3];
         GLfloat attenuation;
-        GLfloat VP[3];  /* unit vector from vertex to light */
+        GLfloat VP[3];          /* unit vector from vertex to light */
         GLfloat n_dot_VP;       /* n dot VP */
         GLfloat *h;
 
@@ -129,7 +129,7 @@ static void TAG(light_rgba_spec)( struct gl_context *ctx,
 
            d = (GLfloat) LEN_3FV( VP );
 
-           if (d > 1e-6) {
+           if (d > 1e-6F) {
               GLfloat invd = 1.0F / d;
               SELF_SCALE_SCALAR_3V(VP, invd);
            }
@@ -152,7 +152,7 @@ static void TAG(light_rgba_spec)( struct gl_context *ctx,
            }
         }
 
-        if (attenuation < 1e-3)
+        if (attenuation < 1e-3F)
            continue;           /* this light makes no contribution */
 
         /* Compute dot product or normal and vector from V to light pos */
@@ -204,7 +204,7 @@ static void TAG(light_rgba_spec)( struct gl_context *ctx,
 
         if (n_dot_h > 0.0F) {
            GLfloat spec_coef = lookup_shininess(ctx, side, n_dot_h);
-           if (spec_coef > 1.0e-10) {
+           if (spec_coef > 1.0e-10F) {
               spec_coef *= attenuation;
               ACC_SCALE_SCALAR_3V( spec[side], spec_coef,
                                    light->_MatSpecular[side]);
@@ -283,12 +283,11 @@ static void TAG(light_rgba)( struct gl_context *ctx,
 
       /* Add contribution from each enabled light source */
       foreach (light, &ctx->Light.EnabledList) {
-
         GLfloat n_dot_h;
         GLfloat correction;
         GLint side;
         GLfloat contrib[3];
-        GLfloat attenuation = 1.0;
+        GLfloat attenuation;
         GLfloat VP[3];          /* unit vector from vertex to light */
         GLfloat n_dot_VP;       /* n dot VP */
         GLfloat *h;
@@ -302,12 +301,11 @@ static void TAG(light_rgba)( struct gl_context *ctx,
         else {
            GLfloat d;     /* distance from vertex to light */
 
-
            SUB_3V(VP, light->_Position, vertex);
 
            d = (GLfloat) LEN_3FV( VP );
 
-           if ( d > 1e-6) {
+           if (d > 1e-6F) {
               GLfloat invd = 1.0F / d;
               SELF_SCALE_SCALAR_3V(VP, invd);
            }
@@ -330,7 +328,7 @@ static void TAG(light_rgba)( struct gl_context *ctx,
            }
         }
 
-        if (attenuation < 1e-3)
+        if (attenuation < 1e-3F)
            continue;           /* this light makes no contribution */
 
         /* Compute dot product or normal and vector from V to light pos */
index 9aee1a2fb0b3db74621d3d3ad4610131279a57a8..6fc89c23b3331362d63e28d9da0ea8cf3011fdd8 100644 (file)
@@ -114,7 +114,7 @@ validate_normal_stage(struct gl_context *ctx, struct tnl_pipeline_stage *stage)
         store->NormalTransform = _mesa_normal_tab[transform | NORM_NORMALIZE];
       }
       else if (ctx->Transform.RescaleNormals &&
-               ctx->_ModelViewInvScale != 1.0) {
+               ctx->_ModelViewInvScale != 1.0F) {
         store->NormalTransform = _mesa_normal_tab[transform | NORM_RESCALE];
       }
       else {
@@ -131,7 +131,7 @@ validate_normal_stage(struct gl_context *ctx, struct tnl_pipeline_stage *stage)
         store->NormalTransform = _mesa_normal_tab[NORM_NORMALIZE];
       }
       else if (!ctx->Transform.RescaleNormals &&
-              ctx->_ModelViewInvScale != 1.0) {
+              ctx->_ModelViewInvScale != 1.0F) {
         store->NormalTransform = _mesa_normal_tab[NORM_RESCALE];
       }
       else {
index 2a25a96928ff9f432c95e1a989fcde34458df338..6c40c8683630410f4616ed7f13fad9e72c59071c 100644 (file)
@@ -1026,7 +1026,7 @@ void _tnl_generic_interp( struct gl_context *ctx,
 
    if (tnl->NeedNdcCoords) {
       const GLfloat *dstclip = VB->ClipPtr->data[edst];
-      if (dstclip[3] != 0.0) {
+      if (dstclip[3] != 0.0f) {
         const GLfloat w = 1.0f / dstclip[3];
         GLfloat pos[4];