mesa: Fix _mesa_format_convert fallback path when src is not an array format
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>
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user