Bug 91540

Summary: slow rendering & fullscreen results in stale images
Product: DRI Reporter: Bas Nieuwenhuizen <bas>
Component: DRM/AMDgpuAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: XOrg git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
example application
none
Xorg log
none
dmesg none

Description Bas Nieuwenhuizen 2015-08-03 19:11:17 UTC
Created attachment 117492 [details]
example application

With GL applications if the render time is > 1 frame (> 2 for more reliable triggering) and the window is fullscreen, I have flickering betweeen old and new frames.

Attached is an example application that if run fullscreen and sufficiently slow exhibits the problem. The quad is supposed to rotate when you press space, but the first moments you get some combination of the two rotated quads.

Workarounds include:
 - making the window not fullscreen.
 - use xcompmgr to enable compositing.
 - using vblank_mode=0
 
Hardware:
Sapphire R9 285 Dual-X OC 2 GB (TONGA)

Software
kernel from adg5f/linux drm-next-4.3-wip commit 88a7d7fa964602514496223639c4e0432fbd457b (also occurs on 4.2-rc4)
drm, mesa from agd5f/... amdgpu branches
xf86-video-amdgpu from master
Xserver 1.17.2

My window manager is XMonad, which is a tiling window manager without compositing.

The attached Xorg.0.log contains some warnings:
(WW) AMDGPU(0): amdgpu_dri2_flip_event_handler: Pageflip completion event has impossible msc 189694 < target_msc 189695

However, running the example application or my original application does not (consistently) generate those warnings when run.
Comment 1 Bas Nieuwenhuizen 2015-08-03 19:11:37 UTC
Created attachment 117493 [details]
Xorg log
Comment 2 Bas Nieuwenhuizen 2015-08-03 19:11:57 UTC
Created attachment 117494 [details]
dmesg
Comment 3 Michel Dänzer 2015-08-20 03:54:52 UTC
Looks like the amdgpu driver doesn't properly wait for rendering to the back buffer to finish before flipping scanout to it.
Comment 4 Bas Nieuwenhuizen 2015-08-20 21:16:00 UTC
I tested this again with the agd5f/linux drm-next-4.3 branch and this bug did not occur anymore.
Comment 5 Michel Dänzer 2015-10-08 03:01:04 UTC
(In reply to Bas Nieuwenhuizen from comment #4)
> I tested this again with the agd5f/linux drm-next-4.3 branch and this bug
> did not occur anymore.

Is it really completely gone for you? I still seem to be seeing at least a mild variation of the problem after bootup, though sometimes it seems to disappear by itself after a while now.
Comment 6 Michel Dänzer 2015-10-15 03:09:28 UTC
The remaining issue is fixed in http://lists.freedesktop.org/archives/dri-devel/2015-October/092507.html .
Comment 7 Bas Nieuwenhuizen 2015-10-16 15:09:58 UTC
I haven't noticed any similar issues after my previous reply.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.