I am sure they're not advertised as supported render targets. You can find
the list of render target formats in r300_texture.c :
r300_translate_colorformat.

Yes the 3D blit is lossless for low precision formats. The thing is, as you
say, I'd have to change both the format and dimensions, i.e. pretty much
reinitializing all texture parameters with the same backing buffer. It did
not seem like the most important feature we need and stabilizing the driver
has a higher priority now. (BTW TA3D is a good test for these s3tc blits)

-Marek

On Mon, May 3, 2010 at 1:51 PM, José Fonseca <jfons...@vmware.com> wrote:

> Also, does r300 advertise rendertarget support for compressed textures?
>
> It probably does, and that's why you end up in this surface_copy path.
>
> Jose
>
> On Mon, 2010-05-03 at 04:47 -0700, José Fonseca wrote:
> > 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

Reply via email to