nvfx: fix lodbias
authorLuca Barbieri <luca@luca-barbieri.com>
Thu, 19 Aug 2010 20:47:03 +0000 (22:47 +0200)
committerLuca Barbieri <luca@luca-barbieri.com>
Sat, 21 Aug 2010 18:42:15 +0000 (20:42 +0200)
src/gallium/drivers/nvfx/nv30_fragtex.c
src/gallium/drivers/nvfx/nv40_fragtex.c

index db8a8fc4b08db64a80c6d0a264ede4359b4577df..0c3d43fd57345a54b67a66b10302f702de9bc0ad 100644 (file)
@@ -21,7 +21,7 @@ nv30_sampler_state_init(struct pipe_context *pipe,
                        ps->en |= NV34TCL_TX_ENABLE_ANISO_2X;
        }
 
-       limit = CLAMP(cso->lod_bias, -16.0, 15.0);
+       limit = CLAMP(cso->lod_bias, -16.0, 15.0 + (255.0 / 256.0));
        ps->filt |= (int)(cso->lod_bias * 256.0) & 0x1fff;
 
        ps->max_lod = (int)CLAMP(cso->max_lod, 0.0, 15.0);
index 5fe742f260ce52a6c396ce7a2e7c40882b585ba7..106ce71a079b5ef28f6ef8e8172802a79c290025 100644 (file)
@@ -29,11 +29,11 @@ nv40_sampler_state_init(struct pipe_context *pipe,
                        ps->en |= NV40TCL_TEX_ENABLE_ANISO_2X;
        }
 
-       limit = CLAMP(cso->lod_bias, -16.0, 15.0);
+       limit = CLAMP(cso->lod_bias, -16.0, 15.0 + (255.0 / 256.0));
        ps->filt |= (int)(cso->lod_bias * 256.0) & 0x1fff;
 
-       ps->max_lod = (int)(CLAMP(cso->max_lod, 0.0, 15.0) * 256.0);
-       ps->min_lod = (int)(CLAMP(cso->min_lod, 0.0, 15.0) * 256.0);
+       ps->max_lod = (int)(CLAMP(cso->max_lod, 0.0, 15.0 + (255.0 / 256.0)) * 256.0);
+       ps->min_lod = (int)(CLAMP(cso->min_lod, 0.0, 15.0 + (255.0 / 256.0)) * 256.0);
 
        ps->en |= NV40TCL_TEX_ENABLE_ENABLE;
 }