[Mesa-dev] Mesa (master): r300g: fix surface_copy for compressed formats

Marek Olšák maraeo at gmail.com
Mon May 3 06:10:19 PDT 2010


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 <jfonseca at 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 <maraeo at 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-commit at lists.freedesktop.org
> > > http://lists.freedesktop.org/mailman/listinfo/mesa-commit
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20100503/6664f646/attachment.htm>


More information about the mesa-dev mailing list