[Mesa-dev] R600 tiling halves the frame rate

Marek Olšák maraeo at gmail.com
Sat Oct 27 06:58:53 PDT 2012


If you upload the texture every frame, set pipe_resource::usage to
PIPE_USAGE_STAGING. That will make the texture linear.

Marek

On Sat, Oct 27, 2012 at 4:26 AM, Tzvetan Mikov <tmikov at jupiter.com> wrote:
>> -----Original Message-----
>> From: Jerome Glisse
>
>> > Can anyone shed some light on this? Is this by design - e.g. is
>> > this a case of "we know that tiling is currently slower than linear
>> > but the huge payoff is scheduled to arrive in a future revision"?
>> >
>> > Thanks!
>> > Tzvetan
>>
>> No, in all benchmark i made on various gpu from hd2xxx to hd6xxx
>> tiling always gave a performance boost btw 5% up to 20%.
>
> This is interesting. All I am doing is rotating a big texture on the
> screen. I am using EGL+Gallium, so it is as simple as it gets.
>
> The hack I am using to disable texture tiling is also extremely simple
> (see below). It speeds up the FPS measurably, up to the extreme
> case of doubling it on HD6460.
>
> What am I missing?
>
> Regards,
> Tzvetan
>
>
> commit 1bb7da091ccf875571d376eb8f9451cb711eb978
> Author: Tzvetan Mikov <tmikov at jupiter.com>
> Date:   Thu Oct 18 12:29:00 2012 -0700
>
>     A VERY quick and drity hack to enable linear textures
>
> diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c
> index 85e4e0c..dc572f1 100644
> --- a/src/gallium/drivers/r600/r600_texture.c
> +++ b/src/gallium/drivers/r600/r600_texture.c
> @@ -467,6 +467,9 @@ struct pipe_resource *r600_texture_create(struct pipe_screen *screen,
>         if (util_format_description(templ->format)->layout == UTIL_FORMAT_LAYOUT_SUBSAMPLED)
>                 array_mode = V_038000_ARRAY_LINEAR_ALIGNED;
>
> +        // HACK HACK
> +        array_mode = V_038000_ARRAY_LINEAR_ALIGNED;
> +
>         r = r600_init_surface(rscreen, &surface, templ, array_mode,
>                               templ->flags & R600_RESOURCE_FLAG_TRANSFER,
>                               templ->flags & R600_RESOURCE_FLAG_FLUSHED_DEPTH);
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list