[Mesa-dev] Mesa (master): gallium/radeon: degrade tiled textures mapped often to linear

Marek Olšák maraeo at gmail.com
Tue Jul 26 23:17:06 UTC 2016


On Tue, Jun 7, 2016 at 11:02 AM, Marek Olšák <maraeo at gmail.com> wrote:
> On Tue, Jun 7, 2016 at 9:14 AM, Michel Dänzer <michel at daenzer.net> wrote:
>> On 02.06.2016 21:20, Michel Dänzer wrote:
>>> On 02.06.2016 00:35, Marek =?UNKNOWN?B?T2zFocOhaw==?= wrote:
>>>> Module: Mesa
>>>> Branch: master
>>>> Commit: fc1479a95432f291623fa5bafe524701e77af3ca
>>>> URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fc1479a95432f291623fa5bafe524701e77af3ca
>>>>
>>>> Author: Marek Olšák <marek.olsak at amd.com>
>>>> Date:   Thu May 12 13:33:06 2016 +0200
>>>>
>>>> gallium/radeon: degrade tiled textures mapped often to linear
>>>>
>>>> Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
>>>> Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
>>>
>>> This commit broke the piglit test spec@!opengl 1.2 at tex3d-maxsize on my
>>> Kaveri (radeon driver, 1GB VRAM, 2GB GTT). It prints lots of lines
>>>
>>>  radeon: Not enough memory for command submission.
>>>
>>> to stderr, with corresponding lines
>>>
>>>  [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -12!
>>>
>>> in dmesg.
>>
>> Marek, any ideas for this regression? Do you need more information about it?
>
> Sorry, I have yet to test it. Tonga & Fiji (amdgpu) aren't affected.

I think the problem is that textures are added to the buffer list and
then the draw call checks memory usage and flushes accordingly. The
problem is the textures are not removed from the buffer list at that
point.

Example:
- Limit: 2 GB GTT
- Draw call 1: 1 GB GTT usage
- Draw call 2: +1.5 GB GTT usage
- Flushes the IB without draw call 2 but with 2.5GB GTT usage.

Marek


More information about the mesa-dev mailing list