[Mesa-dev] R600 tiling halves the frame rate

Tzvetan Mikov tmikov at jupiter.com
Tue Oct 30 17:49:27 PDT 2012


On 10/30/2012 05:20 PM, Tzvetan Mikov wrote:
> Thanks a lot! I reproduced the same results here and I think I have
> figured out what the problem is. The frame buffer is always created in
> linear mode. The temporary hack included below doubles the performance
> for me with EGL.
>
> Could you please check if it has the same result for you?
>
> If it does, what would be the next step to address this? I guess I could
> try to prepare a real patch to fix this, as soon as I figure the right
> way to do it... :-) I am new to Mesa, but I am making my way through the
> code base.
>
> regards,
> Tzvetan
>
>
> commit 10bb3497caba1655022a53a3a04c81be6e122faa
> Author: Tzvetan Mikov <tmikov at jupiter.com>
> Date:   Tue Oct 30 17:12:42 2012 -0700
>
>      r600_texture.c: HACK to enforce tiling in the default case
>
> diff --git a/src/gallium/drivers/r600/r600_texture.c
> b/src/gallium/drivers/r600/r600_texture.c
> index 85e4e0c..f415de3 100644
> --- a/src/gallium/drivers/r600/r600_texture.c
> +++ b/src/gallium/drivers/r600/r600_texture.c
> @@ -450,7 +450,7 @@ struct pipe_resource *r600_texture_create(struct
> pipe_screen *screen,
>   {
>       struct r600_screen *rscreen = (struct r600_screen*)screen;
>       struct radeon_surface surface;
> -    unsigned array_mode = 0;
> +    unsigned array_mode = V_038000_ARRAY_1D_TILED_THIN1;
>       int r;
>
>       if (!(templ->flags & R600_RESOURCE_FLAG_TRANSFER)) {
>
>

I just noticed that with this hack the display doesn't look quite right, 
so while it hopefully points in the right direction, the real fix is 
likely to be much more involved. My enthusiasm may have been premature :-)

regards,
Tzvetan


More information about the mesa-dev mailing list