Properly fix dithering problems

Bug #284346 reported by Oibaf
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
xserver-xorg-video-ati (Ubuntu)
Fix Released
High
Bryce Harrington
Intrepid
Fix Released
High
Unassigned

Bug Description

[Justification]
During Intrepid development, we worked with upstream to develop two patches to work around banding issues on certain classes of hardware. Upstream has carried on this development work and corrected several flaws that were subsequently found in our patches (including regression bug #274234).

[Development]
Upstream's git tree contains the fixes for this. We will be pulling them in when we next update our git snapshot and will be included in the next -ati release.

[Patch]
debdiff of changes cherrypicked from upstream git is attached below.

In the development of our original fixes, we had found it difficult to insert our fixes due to the way the code was organized. To correct this, upstream restructured the code that handles dithering. This is why the patch is quite a bit larger than our original patches.

[Test Case]
On some HD 2600 hardware, booting up into X results in an X failure with the following error message in Xorg.0.log:
(EE) RADEON(0): ParseTable said: CD_INVALID_OPCODE

[Regression Potential]
The size of this patch alone suggests that regression potential is a concern. A code review did not turn up any obvious flaws, and preliminary testing by myself (and others who have tested snapshots of the upstream code) shows it to be safe. However, I think this should be kept in -proposed for at least a couple weeks. I'd like to see it tested across a wider range of ATI hardware.

[Original Report]
Currently the xserver-xorg-video-ati 1:6.9.0+git20081003.f9826a56-0ubuntu2 is shipping two patches to workaround dithering problem on some cards. I suggest to update to current git version which has proper fixes for this problems:
* RV530 on MacBook Pro
 + bug #264535
 + https://bugs.freedesktop.org/show_bug.cgi?id=17897
 + the current upstream fix has the following advantages over current ubuntu 103_rv530_enable_diethering.patch:
  - it fixes completely the problem (the ubuntu patch still leaves some banding);
  - it is targetting only RV530 on MacBook Pro (where there is the dithering problem), not all RV530;
  - it makes the 103_rv530_enable_diethering.patch useless making the ubuntu packages more inline with supported upstream;
 + I tested current git version and noticed no regression so far
* RV6xx/RV7xx cards:
 + https://bugs.freedesktop.org/show_bug.cgi?id=17094
 + current git version should also fix this problem in a similar way, though I don't own this hardware to test; it should have the following advantages:
  - it should fix completely the problem (the ubuntu patch appears to leave some banding);
  - it has a more general approach targetting not only specified cards;
  - it makes the 101_rv635_enable_dithering.patch useless making the ubuntu packages more inline with supported upstream;

Current git version (2008-10-15 commit 435cf7da68186f2601c4b888296117d4f652c625) has 9 commits more than current ubuntu version:
 - 8 commits related to the dithering problems;
 - 1 cleanup commit renaming some function;

I suggest to update the ubuntu version to current git to properly fix the dithering problems.

Test packages provided by Tormod Volden can be found at:
https://edge.launchpad.net/~tormodvolden/+archive

Revision history for this message
Bryce Harrington (bryce) wrote :

Hi fabio-pedretti,

Please attach the output of `lspci -vvnn`, and attach your /var/log/Xorg.0.log file from after reproducing this issue. If you've made any customizations to your /etc/X11/xorg.conf please attach that as well.

Changed in xserver-xorg-video-ati:
status: New → Incomplete
Revision history for this message
Oibaf (oibaf) wrote :
Oibaf (oibaf)
Changed in xserver-xorg-video-ati:
status: Incomplete → New
Revision history for this message
Bryce Harrington (bryce) wrote :

Too late for intrepid, but probably worth considering as an SRU.

Changed in xserver-xorg-video-ati:
assignee: nobody → bryceharrington
importance: Undecided → High
milestone: none → intrepid-updates
status: New → Triaged
Bryce Harrington (bryce)
Changed in xserver-xorg-video-ati:
status: Triaged → In Progress
Revision history for this message
Bryce Harrington (bryce) wrote :

I've built a new package that drops our two dithering patches, and includes the dithering rework up to commit 435cf7da. I decided to omit the rename patch since it was pretty large and didn't seem to bear on the problem.

The patch built, installed, and ran fine; I found no regressions on the hardware used for #17094, and the upstream changes fixes the original issue as well as my patches had. I did not find it completely eliminated banding though; but it looks no
worse than before.

I've reviewed the patch in depth. The patch is unfortunately pretty lengthy for SRU purposes, but I don't see a way to simplify it further while retaining the fixes it provides.

Bryce Harrington (bryce)
description: updated
Revision history for this message
Bryce Harrington (bryce) wrote :

Uploaded to intrepid-proposed.

description: updated
Changed in xserver-xorg-video-ati:
importance: Undecided → High
status: New → Fix Committed
Revision history for this message
Martin Pitt (pitti) wrote :

You uploaded to intrepid-updates, not -proposed; please reupload.

Changed in xserver-xorg-video-ati:
status: Fix Committed → In Progress
Revision history for this message
Bryce Harrington (bryce) wrote :

Done

Revision history for this message
Martin Pitt (pitti) wrote :

Accepted into intrepid-proposed, please test and give feedback here. Please see https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in xserver-xorg-video-ati:
status: In Progress → Fix Committed
Revision history for this message
Martin Pitt (pitti) wrote :

This is really a borderline SRU, and we should collect test results from lots of different hardware.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xserver-xorg-video-ati - 1:6.9.0+git20081003.f9826a56-0ubuntu3

---------------
xserver-xorg-video-ati (1:6.9.0+git20081003.f9826a56-0ubuntu3) jaunty; urgency=low

  * Add 103_dithering_rework.patch: Complete, correct fix for dithering
    issues we'd initially worked around in patches 101 and 102. Those
    patches also appear to have introduced regressions on certain hardware,
    which this rework addresses more elegantly. This patch essentially
    includes all of upstream's work up to commit 435cf7da, except that it
    drops commit 0975e007 (rename radeon_memory to radeon_legacy_memory)
    which is unrelated to the dithering problem.
    (Closes LP: #274234, #284346)

 -- Bryce Harrington <email address hidden> Tue, 25 Nov 2008 03:38:53 +0000

Changed in xserver-xorg-video-ati:
status: In Progress → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xserver-xorg-video-ati - 1:6.9.0+git20081003.f9826a56-0ubuntu2.1

---------------
xserver-xorg-video-ati (1:6.9.0+git20081003.f9826a56-0ubuntu2.1) intrepid-proposed; urgency=low

  * Add 103_dithering_rework.patch: Complete, correct fix for dithering
    issues we'd initially worked around in patches 101 and 102. Those
    patches also appear to have introduced regressions on certain hardware,
    which this rework addresses more elegantly. This patch essentially
    includes all of upstream's work up to commit 435cf7da, except that it
    drops commit 0975e007 (rename radeon_memory to radeon_legacy_memory)
    which is unrelated to the dithering problem.
    (Closes LP: #274234, #284346)

 -- Bryce Harrington <email address hidden> Wed, 12 Nov 2008 15:44:59 -0800

Changed in xserver-xorg-video-ati:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.