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

Marek Olšák maraeo at gmail.com
Mon Jun 6 10:28:25 UTC 2016


On Mon, Jun 6, 2016 at 12:24 PM, Marek Olšák <maraeo at gmail.com> wrote:
> On Mon, Jun 6, 2016 at 11:47 AM, Michel Dänzer <michel at daenzer.net> wrote:
>> On 06.06.2016 18:44, Axel Davy wrote:
>>> On 06/06/2016 11:37, Michel Dänzer wrote :
>>>> 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.
>>>
>>> That sounds like a bad idea,
>>> if someone is playing game fullscreen, then alt tab to check something,
>>> and goes back, then st/dri would
>>> have decided to use non-scanout images (since no flips were used when
>>> alt-tab was used).
>>
>> That's why I wrote that st/dri3 should re-allocate the buffers with the
>> scanout flag after any window geometry changes, such as when putting the
>> game window back to fullscreen.
>
> It looks like I can do the reallocation on
> XCB_PRESENT_COMPLETE_MODE_{FLIP,COPY) changes, but that comes from
> XCB_PRESENT_COMPLETE_NOTIFY, which seems too late.
>
> There is also XCB_PRESENT_CONFIGURE_NOTIFY, but it's not clear to me
> how to get the scanout/non-scanout flag from that.

Oh I get it now:
- Always set SCANOUT on XCB_PRESENT_CONFIGURE_NOTIFY.
- Reallocate to non-scanout if I receive XCB_PRESENT_COMPLETE_MODE_COPY.

Marek


More information about the mesa-dev mailing list