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.<br><br>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)<br>
<br>-Marek<br><br><div class="gmail_quote">On Mon, May 3, 2010 at 1:51 PM, José Fonseca <span dir="ltr"><<a href="mailto:jfonseca@vmware.com" target="_blank">jfonseca@vmware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Also, does r300 advertise rendertarget support for compressed textures?<br>
<br>
It probably does, and that's why you end up in this surface_copy path.<br>
<br>
Jose<br>
<div><div></div><div><br>
On Mon, 2010-05-03 at 04:47 -0700, José Fonseca wrote:<br>
> As long as the blit engine is not lossy, you could support everything by<br>
> using PIPE_FORMAT_I8_UNORM or something and adjusting dimensions.<br>
><br>
> Jose<br>
><br>
> On Sun, 2010-05-02 at 12:02 -0700, Marek Olšák wrote:<br>
> > Module: Mesa<br>
> > Branch: master<br>
> > Commit: 3b2cf97c5c84c3a92f97f335b27f754aa42c5259<br>
> > URL: <a href="http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b2cf97c5c84c3a92f97f335b27f754aa42c5259" target="_blank">http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b2cf97c5c84c3a92f97f335b27f754aa42c5259</a><br>
> ><br>
> > Author: Marek Olšák <<a href="mailto:maraeo@gmail.com" target="_blank">maraeo@gmail.com</a>><br>
> > Date: Sun May 2 17:19:03 2010 +0200<br>
> ><br>
> > r300g: fix surface_copy for compressed formats<br>
> ><br>
> > No accelerated blitting for these, it's too messy.<br>
> ><br>
> > ---<br>
> ><br>
> > src/gallium/drivers/r300/r300_blit.c | 3 ++-<br>
> > 1 files changed, 2 insertions(+), 1 deletions(-)<br>
> ><br>
> > diff --git a/src/gallium/drivers/r300/r300_blit.c b/src/gallium/drivers/r300/r300_blit.c<br>
> > index 928ad30..819d5e3 100644<br>
> > --- a/src/gallium/drivers/r300/r300_blit.c<br>
> > +++ b/src/gallium/drivers/r300/r300_blit.c<br>
> > @@ -137,7 +137,8 @@ void r300_surface_copy(struct pipe_context* pipe,<br>
> > if (!pipe->screen->is_format_supported(pipe->screen,<br>
> > old_format, src->texture->target,<br>
> > PIPE_BIND_RENDER_TARGET |<br>
> > - PIPE_BIND_SAMPLER_VIEW, 0)) {<br>
> > + PIPE_BIND_SAMPLER_VIEW, 0) &&<br>
> > + util_format_description(old_format)->layout == UTIL_FORMAT_LAYOUT_PLAIN) {<br>
> > switch (util_format_get_blocksize(old_format)) {<br>
> > case 1:<br>
> > new_format = PIPE_FORMAT_I8_UNORM;<br>
> ><br>
> > _______________________________________________<br>
> > mesa-commit mailing list<br>
> > <a href="mailto:mesa-commit@lists.freedesktop.org" target="_blank">mesa-commit@lists.freedesktop.org</a><br>
> > <a href="http://lists.freedesktop.org/mailman/listinfo/mesa-commit" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-commit</a><br>
><br>
</div></div></blockquote></div><br>