Can you remind me again as to what formats hit these paths? I remember you hitting them, but I'm still not really seeing how it happens. --Jason
On Tue, Nov 18, 2014 at 1:23 AM, Iago Toral Quiroga <ito...@igalia.com> wrote: > 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 >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev