mesa: Fix _mesa_format_convert fallback path when src is not an array format
authorIago Toral Quiroga <itoral@igalia.com>
Mon, 2 Feb 2015 12:59:27 +0000 (13:59 +0100)
committerIago Toral Quiroga <itoral@igalia.com>
Wed, 4 Feb 2015 07:08:34 +0000 (08:08 +0100)
When a rebase swizzle is provided and we call _mesa_swizzle_and_convert
after unpacking the source format we were always passing normalized=false.
We should pass true or false depending on the formats involved in the
conversion for the byte and float paths (the integer path cannot ever be
normalized).

Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Tested-by: Mark Janes <mark.a.janes@intel.com>
src/mesa/main/format_utils.c

index 4b44befaf4b0bf2b88d8203516984a5a7d0ecee5..00061dedbfd5b1f4d03917ef284525b00b9b83dd 100644 (file)
@@ -499,7 +499,7 @@ _mesa_format_convert(void *void_dst, uint32_t dst_format, size_t dst_stride,
                                          MESA_ARRAY_FORMAT_TYPE_FLOAT, 4,
                                          tmp_float + row * width,
                                          MESA_ARRAY_FORMAT_TYPE_FLOAT, 4,
-                                         rebase_swizzle, false, width);
+                                         rebase_swizzle, normalized, width);
             src += src_stride;
          }
       }
@@ -543,7 +543,7 @@ _mesa_format_convert(void *void_dst, uint32_t dst_format, size_t dst_stride,
                                          MESA_ARRAY_FORMAT_TYPE_UBYTE, 4,
                                          tmp_ubyte + row * width,
                                          MESA_ARRAY_FORMAT_TYPE_UBYTE, 4,
-                                         rebase_swizzle, false, width);
+                                         rebase_swizzle, normalized, width);
             src += src_stride;
          }
       }