Felix Kuehling
81ffbbedc3
drm/radeon: fix deferred page-flip detection logic on Avivo-based ASICs
...
This fixes page-flip-related flickering observed on Iconia Tab W500.
The update_pending status returned by radeon_page_flip is very accurate on
Avivo-based ASICs when vpos is negative.
Experiments were conducted on several ASIC generations ranging from RS690
to Cayman where the page flip was artificially timed to occur at a specific
vpos. With negative vpos, overriding update_pending always lead to
flickering.
The same experiment on RV380 and RV410 showed that update_pending is not
accurate with negative vpos. In most cases update_pending == 1 is returned
although the flip would complete before the start of the next frame.
Therefore I left the behaviour unchanged for pre-AVIVO ASICs for
performance reasons, although this may result in flickering in rare cases.
This change also makes the logic a little easier to understand.
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Reviewed-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2012-02-29 10:23:50 +00:00
..
2012-02-13 12:28:13 +00:00
2009-09-25 13:08:21 +10:00
2009-06-15 12:01:53 +10:00
2009-06-15 12:01:53 +10:00
2009-06-15 12:01:53 +10:00
2012-01-06 10:01:35 +00:00
2011-10-19 09:47:47 +01:00
2012-02-13 12:28:13 +00:00
2012-02-02 15:26:50 +00:00
2012-01-24 17:35:52 +00:00
2012-02-03 09:38:05 +00:00
2011-06-17 09:28:01 +10:00
2010-02-23 09:46:21 +10:00
2011-05-26 09:19:31 +10:00
2011-05-26 09:19:31 +10:00
2012-02-03 09:31:14 +00:00
2011-02-14 10:10:09 +10:00
2010-10-06 11:46:30 +10:00
2012-02-16 09:18:13 +00:00
2012-02-27 14:46:13 +00:00
2012-02-29 10:14:47 +00:00
2012-02-13 12:28:13 +00:00
2011-05-26 09:22:05 +10:00
2012-02-03 09:38:05 +00:00
2011-02-14 09:22:54 +10:00
2011-01-07 14:11:38 +10:00
2012-02-29 10:14:47 +00:00
2012-01-23 11:03:26 +00:00
2010-11-23 09:23:14 +10:00
2011-10-18 09:44:52 +01:00
2012-02-29 10:15:16 +00:00
2010-12-21 12:55:33 +10:00
2012-02-03 09:41:35 +00:00
2011-10-18 09:53:05 +01:00
2011-03-31 11:26:23 -03:00
2012-02-29 10:14:57 +00:00
2011-01-06 13:00:45 +10:00
2012-02-29 10:14:47 +00:00
2009-10-02 08:51:46 +10:00
2012-02-27 14:46:13 +00:00
2012-02-29 10:14:47 +00:00
2009-09-29 11:15:56 +10:00
2011-12-19 18:40:26 +00:00
2012-02-03 09:31:14 +00:00
2011-02-14 09:23:38 +10:00
2010-09-13 20:26:04 +10:00
2011-10-18 09:44:38 +01:00
2011-12-20 19:49:36 +00:00
2012-02-13 12:28:13 +00:00
2012-01-03 09:40:47 +00:00
2011-01-27 13:54:13 +10:00
2012-02-29 10:14:47 +00:00
2012-02-13 12:28:13 +00:00
2011-12-01 09:57:34 +00:00
2010-08-20 08:48:55 +10:00
2012-02-29 10:16:20 +00:00
2012-02-29 10:14:47 +00:00
2012-01-03 09:17:16 +00:00
2012-02-02 15:25:16 +00:00
2012-02-29 10:14:14 +00:00
2012-01-24 17:34:32 +00:00
2012-02-03 09:31:14 +00:00
2012-02-29 10:15:16 +00:00
2011-11-12 17:46:40 +00:00
2011-11-03 17:53:18 +00:00
2012-02-16 18:31:07 +00:00
2012-02-29 10:11:30 +00:00
2011-10-03 18:37:37 +01:00
2012-02-01 15:41:39 +00:00
2012-02-29 10:23:50 +00:00
2012-02-13 12:28:13 +00:00
2011-03-31 11:26:23 -03:00
2012-01-24 17:35:52 +00:00
2011-06-02 10:47:37 +10:00
2012-02-09 10:34:43 +00:00
2012-01-06 09:16:09 +00:00
2012-01-09 12:49:48 +00:00
2012-01-09 12:10:09 +00:00
2012-02-03 09:38:05 +00:00
2009-12-18 11:22:31 +10:00
2012-01-23 11:00:48 +00:00
2011-10-18 09:53:05 +01:00
2012-02-16 18:31:07 +00:00
2011-12-20 14:43:53 +00:00
2011-04-09 16:20:36 +10:00
2011-10-18 09:53:05 +01:00
2011-07-25 20:57:13 -07:00
2012-01-24 17:35:52 +00:00
2012-02-13 12:28:13 +00:00
2012-01-06 09:15:42 +00:00
2012-02-29 10:15:16 +00:00
2012-02-27 14:46:13 +00:00
2012-02-29 10:11:54 +00:00
2011-12-20 19:52:12 +00:00
2012-01-05 10:03:53 +00:00
2011-10-18 09:53:05 +01:00
2012-01-05 10:02:42 +00:00
2010-12-16 14:37:47 +10:00
2010-12-16 14:37:47 +10:00
2012-02-29 10:14:14 +00:00
2012-02-29 10:16:20 +00:00
2009-10-02 08:51:49 +10:00
2012-02-29 10:14:47 +00:00
2009-10-02 08:51:46 +10:00
2012-02-29 10:15:16 +00:00
2010-05-18 18:21:42 +10:00
2012-02-29 10:14:47 +00:00
2010-03-31 14:54:47 +10:00
2009-10-02 08:51:49 +10:00
2009-10-02 08:51:49 +10:00
2009-10-02 08:51:46 +10:00
2012-02-29 10:14:47 +00:00
2010-04-06 11:21:11 +10:00
2012-02-29 10:14:47 +00:00
2011-02-14 09:23:38 +10:00