r300g: fix texturing with negative lod bias
authorMarek Olšák <maraeo@gmail.com>
Thu, 8 Jul 2010 22:16:49 +0000 (00:16 +0200)
committerMarek Olšák <maraeo@gmail.com>
Thu, 8 Jul 2010 22:16:49 +0000 (00:16 +0200)
This should fix FDO bugs #28437 and #28625.

src/gallium/drivers/r300/r300_state.c

index 4fbe8bfa4e6481069200fa2b4a556bb521e98cbd..b0722cb95f694a51e13088673a44709ba297fc9b 100644 (file)
@@ -1172,7 +1172,7 @@ static void*
 
     lod_bias = CLAMP((int)(state->lod_bias * 32 + 1), -(1 << 9), (1 << 9) - 1);
 
-    sampler->filter1 |= lod_bias << R300_LOD_BIAS_SHIFT;
+    sampler->filter1 |= (lod_bias << R300_LOD_BIAS_SHIFT) & R300_LOD_BIAS_MASK;
 
     /* This is very high quality anisotropic filtering for R5xx.
      * It's good for benchmarking the performance of texturing but