Bug 15538 - Screen corruption (triangular parts missing)
Summary: Screen corruption (triangular parts missing)
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/Radeon (show other bugs)
Version: 7.3 (2007.09)
Hardware: x86-64 (AMD64) Linux (All)
: medium major
Assignee: xf86-video-ati maintainers
QA Contact: Xorg Project Team
URL: http://gitweb.freedesktop.org/?p=xorg...
Whiteboard:
Keywords:
: 15581 (view as bug list)
Depends on:
Blocks:
 
Reported: 2008-04-16 11:49 UTC by Jure Repinc
Modified: 2008-04-28 16:32 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
Screenshot of corruption (405.36 KB, image/png)
2008-04-16 11:49 UTC, Jure Repinc
no flags Details
xorg.conf (5.26 KB, text/plain)
2008-04-16 11:50 UTC, Jure Repinc
no flags Details
Xorg.0.log (50.45 KB, text/plain)
2008-04-16 11:53 UTC, Jure Repinc
no flags Details
possible fix (525 bytes, patch)
2008-04-17 00:03 UTC, Alex Deucher
no flags Details | Splinter Review
another possible fix (503 bytes, patch)
2008-04-20 17:20 UTC, Alex Deucher
no flags Details | Splinter Review
possible fix (825 bytes, patch)
2008-04-23 22:35 UTC, Alex Deucher
no flags Details | Splinter Review
working patch on the latest commit (IGP: fix EXA composite corruption) (558 bytes, patch)
2008-04-28 00:10 UTC, Stephan Wolf
no flags Details | Splinter Review

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.