We can have conversions from non-integer types to integer types, so remove the assertions for these in the pack/unpack fast paths. It could be that we do not have all the necessary pack/unpack functions in these cases though, so protect these paths with conditionals and let _mesa_format_convert use other paths to resolve these kind of conversions if necessary. --- src/mesa/main/format_utils.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/mesa/main/format_utils.c b/src/mesa/main/format_utils.c index 1d65f2b..56a3b8d 100644 --- a/src/mesa/main/format_utils.c +++ b/src/mesa/main/format_utils.c @@ -143,8 +143,8 @@ _mesa_format_convert(void *void_dst, uint32_t dst_format, size_t dst_stride, dst += dst_stride; } return; - } else if (dst_array_format.as_uint == RGBA8888_UBYTE.as_uint) { - assert(!_mesa_is_format_integer_color(src_format)); + } else if (dst_array_format.as_uint == RGBA8888_UBYTE.as_uint && + !_mesa_is_format_integer_color(src_format)) { for (row = 0; row < height; ++row) { _mesa_unpack_ubyte_rgba_row(src_format, width, src, (uint8_t (*)[4])dst); @@ -152,8 +152,8 @@ _mesa_format_convert(void *void_dst, uint32_t dst_format, size_t dst_stride, dst += dst_stride; } return; - } else if (dst_array_format.as_uint == RGBA8888_UINT.as_uint) { - assert(_mesa_is_format_integer_color(src_format)); + } else if (dst_array_format.as_uint == RGBA8888_UINT.as_uint && + _mesa_is_format_integer_color(src_format)) { for (row = 0; row < height; ++row) { _mesa_unpack_uint_rgba_row(src_format, width, src, (uint32_t (*)[4])dst); @@ -174,8 +174,8 @@ _mesa_format_convert(void *void_dst, uint32_t dst_format, size_t dst_stride, dst += dst_stride; } return; - } else if (src_array_format.as_uint == RGBA8888_UBYTE.as_uint) { - assert(!_mesa_is_format_integer_color(dst_format)); + } else if (src_array_format.as_uint == RGBA8888_UBYTE.as_uint && + !_mesa_is_format_integer_color(dst_format)) { for (row = 0; row < height; ++row) { _mesa_pack_ubyte_rgba_row(dst_format, width, (const uint8_t (*)[4])src, dst); @@ -183,8 +183,8 @@ _mesa_format_convert(void *void_dst, uint32_t dst_format, size_t dst_stride, dst += dst_stride; } return; - } else if (src_array_format.as_uint == RGBA8888_UINT.as_uint) { - assert(_mesa_is_format_integer_color(dst_format)); + } else if (src_array_format.as_uint == RGBA8888_UINT.as_uint && + _mesa_is_format_integer_color(dst_format)) { for (row = 0; row < height; ++row) { _mesa_pack_uint_rgba_row(dst_format, width, (const uint32_t (*)[4])src, dst); -- 1.9.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev