[Mesa-dev] R600 tiling halves the frame rate

Jerome Glisse j.glisse at gmail.com
Wed Oct 31 07:41:21 PDT 2012


On Tue, Oct 30, 2012 at 8:49 PM, Tzvetan Mikov <tmikov at jupiter.com> wrote:
> 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

For it to look right we need mesa to call into the kernel to tell the
kernel what is the bo tiling format. We should do that for scanout
buffer. This will fix your issue and you probably want 2d tiled not 1d
for scanout.

Cheers,
Jerome


More information about the mesa-dev mailing list