[PATCH xserver] modesetting: Fix page flipping under DRI 3.2.

Mario Kleiner mario.kleiner.de at gmail.com
Wed Mar 28 17:42:49 UTC 2018


The approach in the patch looks good to me, same as we use in weston.
I'll test in a few hours and let you know.

thanks,
-mario


On Wed, Mar 28, 2018 at 5:58 AM, Louis-Francis Ratté-Boulianne
<lfrb at collabora.com> wrote:
> Hi Mario,
>
> Could you try with the following patch and let me know how things are
> working out:
>
> https://gitlab.collabora.com/lfrb/xserver/commit/d26b45afc19547ab3ff689
> 581db2b01abb4e1ed2
>
> It shouldn't differ much from your patch though and I still don't
> understand why pageflip would fail for you. I've tested again today and
>  it works fine for me (for Mutter and glmark2-es2).
>
> What client are you using for testing? Keep in mind that the buffer
> swapping needs to be synchronized with vblank because Intel driver
> doesn't support async page flip.
>
> Thank you,
>
> --
> Louis-Francis
>
> On Tue, 2018-03-27 at 10:10 +0200, Olivier Fourdan wrote:
>> Hi,
>>
>> On Mon, Mar 26, 2018 at 7:54 PM, Mario Kleiner <mario.kleiner.de at gmai
>> l.com> wrote:
>> > [...]
>> > I haven't had time to retest with the latest patch on master of
>> > Adam
>> > "modesetting: Fix up some XXX from removing GLAMOR_HAS_DRM_*"
>> > yet, so maybe that makes a positive difference? My testing was with
>> > master as of "modesetting: Fix page flipping under DRI 3.2." plus
>> > the
>> > argb8888 -> xrgb8888 snippet to make modesetting work at all on
>> > Ivybridge/Ironlake.
>>
>> commit  ba0c75177 (ajax latest commit) makes no difference for the
>> incompatible format issue, it's more about clean-up and being able to
>> work if atomic modesetting is not available, which is not the case
>> here.
>>
>> The funny thing is, I noticed it works (as in “a mode is set”) when
>> using drmModeAddFB() (as“before”) instead of
>> drmModeAddFB2WithModifiers() in drmmode_bo_import() - Thus the
>> perceived regression, it worked before.
>>
>> drmModeAddFB() and drmModeAddFB2WithModifiers()  translate
>> respectively as drm_mode_addfb() and drm_mode_addfb2() in the kernel
>> (drivers/gpu/drm/drm_framebuffer.c), and drm_mode_addfb() will
>> eventually call drm_mode_addfb2() after determining itself the format
>> to use with drm_mode_legacy_fb_format() [1].
>>
>> drm_mode_legacy_fb_format() is defined in
>> drivers/gpu/drm/drm_fourcc.c [2] and will use DRM_FORMAT_XRGB8888 for
>> depth 24 and DRM_FORMAT_XRGB2101010 for depth 30, and
>> DRM_FORMAT_ARGB8888 for anything else.
>>
>> Cheers,
>> Olivier
>>
>> [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.gi
>> t/tree/drivers/gpu/drm/drm_framebuffer.c#n95
>> [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.gi
>> t/tree/drivers/gpu/drm/drm_fourcc.c#n38
>>
>>
>> _______________________________________________
>> xorg-devel at lists.x.org: X.Org development
>> Archives: http://lists.x.org/archives/xorg-devel
>> Info: https://lists.x.org/mailman/listinfo/xorg-devel


More information about the xorg-devel mailing list