[Mesa-dev] [PATCH 1/3] vl/dri3: use external texture as back buffers(v4)

Cheng, Tony Tony.Cheng at amd.com
Wed Jan 11 15:09:37 UTC 2017


Vblank interrupt fires as soon as the last line of active region is scanned out.
VSync interrupt fires at the vsync.
VUpdate interrupt fires HW is ready to scan out a new frame, this include latch on double buffer registers, starting memory request etc.

We use VUpdate to accommodate free sync, as in free sync, blank region is variable and a frame can be terminate as soon as new surface address is written to register.  If we use vblank interrupt will be fired too early and might not stretch frame time properly.

Dal/dc does not manage any interrupt as dc is architected to behave more like a helper.  Dal/amdgpu_dm is the glue code and does interrupt registration and handling of interrupt.  I think us DAL guys might not have the full understanding of DRM vblank machinery.  Is there some document we can go read up on to make sure all our assumption is correct?  From our perspective it seems some of the DRM vblank machinery (or the way we implement them) is redundant as our HW can do things that we queue off a work item to do automatically if we configure the HW correctly.

-----Original Message-----
From: Wentland, Harry 
Sent: Wednesday, January 11, 2017 9:51 AM
To: Michel Dänzer <michel at daenzer.net>; Andy Furniss <adf.lists at gmail.com>; Nayan Deshmukh <nayan26deshmukh at gmail.com>
Cc: ML mesa-dev <mesa-dev at lists.freedesktop.org>; Cheng, Tony <Tony.Cheng at amd.com>
Subject: Re: [Mesa-dev] [PATCH 1/3] vl/dri3: use external texture as back buffers(v4)

On 2017-01-11 12:50 AM, Michel Dänzer wrote:
> On 10/01/17 09:07 PM, Andy Furniss wrote:
>> Andy Furniss wrote:
>>
>>> Though recent testing shows this is not true with DAL/DC on 3.7 - 
>>> todo test DC on new drm-next branch.
>>
>> todo done, DC for some reason on both amd-staging-4.7 and 
>> amd-staging-drm-next is "slower" = the tear region is 2 to 3 times 
>> larger than non DC kernel with powerplay auto. With high it is 
>> smaller but still present.
>
> This particular issue is because DC uses the GPU's VUPDATE interrupt 
> instead of the VBLANK interrupt to drive the DRM vblank machinery. The 
> result is that userspace is only notified of a vertical blank period 
> when it's already over, so it doesn't get a chance to do anything 
> inside the vertical blank period.
>
>

Adding Tony for comment on why DC behaves the way it does.

Harry


More information about the mesa-dev mailing list