Bug 15538

Summary: Screen corruption (triangular parts missing)
Product: xorg Reporter: Jure Repinc <jlp.bugs>
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: major    
Priority: medium CC: stephan
Version: 7.3 (2007.09)   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
URL: http://gitweb.freedesktop.org/?p=xorg/driver/xf86-video-ati.git;a=commit;h=d79040906cd25bd494feb5901f465bbd050aa923
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Screenshot of corruption
none
xorg.conf
none
Xorg.0.log
none
possible fix
none
another possible fix
none
possible fix
none
working patch on the latest commit (IGP: fix EXA composite corruption) none

Description Jure Repinc 2008-04-16 11:49:38 UTC
Created attachment 15955 [details]
Screenshot of corruption

After updating to latest revision from git I got some terrible screen corruption. Triangular parts of icons and other screen elements were missing or there was just a black part there. See the attached screenshot.

I've done a bisection and the commit that started causing this bug is "R3xx+: EXA/textured video fixes":
http://gitweb.freedesktop.org/?p=xorg/driver/xf86-video-ati.git;a=commit;h=d79040906cd25bd494feb5901f465bbd050aa923

This is on a HP Compay nx6325 laptop with an integrated Radeon Xpress:
01:05.0 VGA compatible controller: ATI Technologies Inc RS485 [Radeon Xpress 1100 IGP] (prog-if 00 [VGA controller])
Comment 1 Jure Repinc 2008-04-16 11:50:58 UTC
Created attachment 15956 [details]
xorg.conf
Comment 2 Jure Repinc 2008-04-16 11:53:22 UTC
Created attachment 15957 [details]
Xorg.0.log
Comment 3 Alex Deucher 2008-04-17 00:03:51 UTC
Created attachment 15973 [details] [review]
possible fix

looks like gb_tile_config may not be correct on RS4xx.  Does the attached patch fix it?
Comment 4 Alex Deucher 2008-04-18 08:29:28 UTC
*** Bug 15581 has been marked as a duplicate of this bug. ***
Comment 5 Stephan Wolf 2008-04-19 12:55:37 UTC
possible fix doesn't help
Comment 6 Alex Deucher 2008-04-20 17:20:31 UTC
Created attachment 16070 [details] [review]
another possible fix

How about this patch?  perhaps the rs400 like to wait for the 3D engine to idle after sending verticies.
Comment 7 Stephan Wolf 2008-04-21 12:35:50 UTC
second patch does not help:-( maybe the VAP_CNTL values are wrong. They are also changed but I have no glue what are the right values.
Comment 8 Alex Deucher 2008-04-23 22:35:12 UTC
Created attachment 16146 [details] [review]
possible fix

(In reply to comment #7)
> second patch does not help:-( maybe the VAP_CNTL values are wrong. They are
> also changed but I have no glue what are the right values.
> 

VAP_CNTL shouldn't be relevant as the IGP chips have no PVS block, but perhaps something needs to be written to that register.  try the attached patch.  Also, see if any combinations of the patches help.

Another thing to try is to replace this line:
OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_DC_FLUSH_3D);
with this one:
OUT_VIDEO_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_DC_FLUSH_3D | R300_DC_FREE_3D);
in radeon_exa_render.c
Comment 9 Stephan Wolf 2008-04-28 00:10:23 UTC
Created attachment 16211 [details] [review]
working patch on the latest commit (IGP: fix EXA composite corruption)
Comment 10 Stephan Wolf 2008-04-28 00:15:46 UTC
patch works for me. Patch set the VAP CNTL values back to the same values as from the first change from the original identified fix. It seems to me a combination of the wait flags and this fixes it. Currently there is no chipset checking in the patch

@Jure: Could you please test it on your hardware?

Regards,
Stephan
Comment 11 Alex Deucher 2008-04-28 07:23:40 UTC
Does my fix in ati git master help?
211e0041c7fc2df494b77428553943a2b526ee4e
Comment 12 Alex Deucher 2008-04-28 09:07:39 UTC
I've gone ahead and tested and committed your changes:
070cce5255a5c311f9d8b85ec54bd56655014933
Comment 13 Stephan Wolf 2008-04-28 13:03:29 UTC
works for me. no screen corruption anymore. glxgears reports approx. 1300 fps
Comment 14 Jure Repinc 2008-04-28 16:32:00 UTC
Sorry for late response. I just updated to commit 070cce5255a5c311f9d8b85ec54bd56655014933 and tested with this and it all works fine for me again. Thanks!

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.