[PATCH 1/2] drm/radeon: Program page flips to execute in hblank instead of vblank
Michel Dänzer
michel at daenzer.net
Tue Jul 1 20:11:45 PDT 2014
On 02.07.2014 12:01, Dieter Nützel wrote:
> Am 02.07.2014 02:29, schrieb Michel Dänzer:
>> On 02.07.2014 01:46, Dieter Nützel wrote:
>>> Am 01.07.2014 10:14, schrieb Michel Dänzer:
>>>> From: Michel Dänzer <michel.daenzer at amd.com>
>>>>
>>>> But move the programming back to the vertical blank interrupt handler.
>>>> And signal the flip as being completed immediately after programming it
>>>> to the hardware.
>>>>
>>>> This way we don't have to guess whether or not the hardware will
>>>> execute
>>>> the flip in a given vertical blank period, avoiding a whole lot of
>>>> trouble.
>>>>
>>>> Also, not using the page flip interrupt anymore avoids problems due to
>>>> completing page flips earlier than expected by userspace.
>>>>
>>>> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
>>>
>>> Michel,
>>>
>>> against which tree is this first one?
>>> Don't apply clean on 3.16-rc2.
>>>
>>> Can't find this in 'my' source (radeon_display.c).
>>>
>>>>> radeon_crtc->flip_status = RADEON_FLIP_SUBMITTED; <<<
>>> spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
>>> up_read(&rdev->exclusive_lock);
>>
>> The patch applies on top of my previous page flipping fix.
>
> Had some trouble with the first one but...
> After digikam -> OpenGL Viewer (r600g/RV730 AGP)
>
> [-]
> [ 503.736] (II) RADEON(0): Modeline "1920x1080"x60.0 172.80 1920
> 2040 2248 2576 1080 1081 1084 1118 -hsync +vsync (67.1 kHz e)
> [ 999.627] (WW) RADEON(0): flip queue failed: Device or resource busy
> [ 999.627] (WW) RADEON(0): Page flip failed: Device or resource busy
I saw these as well. It means the Xorg driver tried to submit another
page flip before the previous one completed. That should be a Xorg
driver / Mesa issue, but I think the Xorg driver handles this case
gracefully with a copy instead of a flip.
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer
More information about the dri-devel
mailing list