[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