r200: Fix EXT_fogcoord rendering.
authorPauli Nieminen <suokkos@gmail.com>
Tue, 2 Feb 2010 03:39:28 +0000 (05:39 +0200)
committerPauli Nieminen <suokkos@gmail.com>
Tue, 2 Feb 2010 03:53:13 +0000 (05:53 +0200)
The fogcoord calue was not pushed to GPU because of implicit float to int conversion.
Fix is to use float pointer to buffer object so no conversion is done in assigment

src/mesa/drivers/dri/r200/r200_maos_arrays.c

index 249c0bbc11d2ef7236f5d08d786c010ed7a1e8bc..aecba7f894900ed6e501349610d319fdd1c74c18 100644 (file)
@@ -74,7 +74,7 @@ static void r200_emit_vecfog(GLcontext *ctx, struct radeon_aos *aos,
                             GLvoid *data, int stride, int count)
 {
        radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
-       uint32_t *out;
+       GLfloat *out;
        int i;
        int size = 1;
 
@@ -91,7 +91,7 @@ static void r200_emit_vecfog(GLcontext *ctx, struct radeon_aos *aos,
        aos->count = count;
 
        radeon_bo_map(aos->bo, 1);
-       out = (uint32_t*)((char*)aos->bo->ptr + aos->offset);
+       out = (GLfloat*)((char*)aos->bo->ptr + aos->offset);
        for (i = 0; i < count; i++) {
          out[0] = r200ComputeFogBlendFactor( ctx, *(GLfloat *)data );
          out++;