As long as the blit engine is not lossy, you could support everything by using PIPE_FORMAT_I8_UNORM or something and adjusting dimensions.
Jose On Sun, 2010-05-02 at 12:02 -0700, Marek Olšák wrote: > Module: Mesa > Branch: master > Commit: 3b2cf97c5c84c3a92f97f335b27f754aa42c5259 > URL: > http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b2cf97c5c84c3a92f97f335b27f754aa42c5259 > > Author: Marek Olšák <mar...@gmail.com> > Date: Sun May 2 17:19:03 2010 +0200 > > r300g: fix surface_copy for compressed formats > > No accelerated blitting for these, it's too messy. > > --- > > src/gallium/drivers/r300/r300_blit.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/src/gallium/drivers/r300/r300_blit.c > b/src/gallium/drivers/r300/r300_blit.c > index 928ad30..819d5e3 100644 > --- a/src/gallium/drivers/r300/r300_blit.c > +++ b/src/gallium/drivers/r300/r300_blit.c > @@ -137,7 +137,8 @@ void r300_surface_copy(struct pipe_context* pipe, > if (!pipe->screen->is_format_supported(pipe->screen, > old_format, src->texture->target, > PIPE_BIND_RENDER_TARGET | > - PIPE_BIND_SAMPLER_VIEW, 0)) { > + PIPE_BIND_SAMPLER_VIEW, 0) && > + util_format_description(old_format)->layout == > UTIL_FORMAT_LAYOUT_PLAIN) { > switch (util_format_get_blocksize(old_format)) { > case 1: > new_format = PIPE_FORMAT_I8_UNORM; > > _______________________________________________ > mesa-commit mailing list > mesa-com...@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-commit _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev