[Mesa-dev] [PATCH 4/4] radeonsi: force non-displayable tiling based on surface dimensions

Michel Dänzer michel at daenzer.net
Mon Jun 6 09:37:22 UTC 2016


On 06.06.2016 18:14, Marek Olšák wrote:
> On Mon, Jun 6, 2016 at 10:58 AM, Michel Dänzer <michel at daenzer.net> wrote:
>> On 03.06.2016 19:52, Marek Olšák wrote:
>>> From: Marek Olšák <marek.olsak at amd.com>
>>>
>>> Simply ignore the "scanout" flag if the surface dimensions are unlikely
>>> to be used by DCE.
>>
>> I don't like this.
>>
>> Ideally, there should be feedback from the display server so that he
>> state tracker(s) can set the PIPE_BIND_SCANOUT flag only when it's
>> really necessary.
>>
>> In the meantime, if we want to go for a hack like this, it should be in
>> the place(s) setting the flag instead of the driver ignoring it.
> 
> Is st/dri the right place then? Or the DDX?

Basically the former for DRI3 and the latter for DRI2 I think. Though
I'm afraid it looks like glamor is involved as well.


> Can the DDX unset the scanout flag (e.g. reallocate) if a surface
> isn't bound as a scanout?

The DDX driver could generally allocate pixmaps without the scanout
flag. Then if the missing flag is the only thing preventing a DRI2 page
flip, the driver could re-allocate the back buffer with the scanout flag.

With DRI3, st/dri could (re-)allocate buffers with the scanout flag
first and after any window geometry changes, then re-allocate without
the flag if the present complete event indicates that page flipping
couldn't be used.


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the mesa-dev mailing list