[RFC][PATCH 4/4 v2] drm_hwcomposer: Try to fallback if GLCompisition fails

John Stultz john.stultz at linaro.org
Tue Feb 13 22:03:32 UTC 2018


On Tue, Feb 13, 2018 at 2:45 AM, Alexandru-Cosmin Gheorghe
<Alexandru-Cosmin.Gheorghe at arm.com> wrote:
> On Mon, Feb 12, 2018 at 08:43:10PM -0800, John Stultz wrote:
>> On Wed, Jan 31, 2018 at 11:03 AM, John Stultz <john.stultz at linaro.org> wrote:
>> > On Wed, Jan 31, 2018 at 10:51 AM, Alexandru-Cosmin Gheorghe
>> > <Alexandru-Cosmin.Gheorghe at arm.com> wrote:
>> >> It seems that we don't pass any explicit fences to the kernel for
>> >> IN_FENCE_FD property. This particular line seems wrong.
>> >>
>> >> @@ -593,14 +594,17 @@ int
>> >> DrmDisplayCompositor::CommitFrame(DrmDisplayComposition *display_comp,
>> >>        else
>> >>          rotation |= DRM_MODE_ROTATE_0;
>> >>
>> >> -      if (fence_fd < 0) {
>> >> +      if (fence_fd >= 0) {
>> >
>> > I'll give that a whirl.
>>
>> So I did give that a whirl after you suggested it, but it ended up
>> causing nothing to be displayed, and I unfortunately didn't have time
>> right then to dig much further.
>>
>> Rob however re-found this issue today, and I've been digging a bit
>> more. At least with the HiKey board, it seem the trouble is when the
>> IN_FENCE_FD is added to the pset, the atomic commit calls start to
>> fail. I dug in and it seems we're catching in the kernel on the  if
>> (file->f_op != &sync_file_fops) check in sync_file_fdget().
>>
>> I'm now trying to trace back to where the in fence was provided from
>> to see what might be going wrong there.
> I would be surprised if this fence is not created by the GPU driver.
> But, the whole Android stack is new to me, so I might be wrong.

Yes, I went digging on this last night and it ends up the utgard
driver we use (r7p0) isn't giving us a dmabuf fence, instead we're
getting a mali_sync_fence.

There's a newer kernel driver release (r8p1), which seems to correct
this, but it also is version tied to the binary blob, which I don't
have a matching update for. I spent a bit of time trying to hack out
just the dmabuf fence bits, but it rarely boots all the way and
frequently locks the board up, so I'm probably mucking the library
driver interface in some way.

Its a well known sad song.

>> Curious if this is anything you ran across in your attempts?
> Sorry, on Hikey960, I don't have this problem. Are you using the
> same 4.9 kernel from your branch(hikey-hwcomposer-deps)?

Thanks for confirming! I'll be double checking on the hikey960 soon. I
suspect the bifrost driver is giving back the right structure if it
was working for you.

thanks
-john


More information about the dri-devel mailing list