xserver-xorg-video-ati: Changes to 'debian-experimental'
ChangeLog | 526 +++++++++++++++++++++++++++
configure.ac | 3
debian/changelog | 6
man/radeon.man | 120 ++++--
src/AtomBios/CD_Operations.c | 8
src/AtomBios/includes/atombios.h | 11
src/Makefile.am | 4
src/ati_pciids_gen.h | 29 +
src/atombios_crtc.c | 14
src/atombios_output.c | 439 +++++++++++++---------
src/legacy_crtc.c | 44 +-
src/legacy_output.c | 17
src/pcidb/ati_pciids.csv | 43 +-
src/radeon.h | 56 ++
src/radeon_accel.c | 5
src/radeon_atombios.c | 224 +++++++----
src/radeon_atombios.h | 6
src/radeon_bios.c | 19
src/radeon_chipinfo_gen.h | 29 +
src/radeon_chipset_gen.h | 43 +-
src/radeon_commonfuncs.c | 123 +++---
src/radeon_crtc.c | 51 ++
src/radeon_dri.c | 6
src/radeon_driver.c | 7
src/radeon_drm.h | 26 -
src/radeon_exa.c | 61 +--
src/radeon_exa_funcs.c | 15
src/radeon_exa_render.c | 174 +++++---
src/radeon_modes.c | 65 +++
src/radeon_output.c | 68 ++-
src/radeon_pci_chipset_gen.h | 29 +
src/radeon_pci_device_match_gen.h | 29 +
src/radeon_probe.c | 2
src/radeon_probe.h | 8
src/radeon_reg.h | 222 ++++++-----
src/radeon_textured_video.c | 75 +++
src/radeon_textured_videofuncs.c | 735 ++++++++++++++++++++++++++++++--------
src/radeon_video.c | 32 +
src/radeon_video.h | 10
39 files changed, 2593 insertions(+), 791 deletions(-)
New commits:
commit c3a9a3cd50e03bd06f4a34c4a82c6e90275724ac
Author: Brice Goglin <bgoglin@debian.org>
Date: Tue Dec 23 08:01:27 2008 +0100
Prepare changelog for upload
diff --git a/debian/changelog b/debian/changelog
index 6914753..8c5c53b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,8 @@
-xserver-xorg-video-ati (1:6.9.0.91-1) UNRELEASED; urgency=low
+xserver-xorg-video-ati (1:6.9.0.91-1) experimental; urgency=low
* New upstream release candidate.
- -- Brice Goglin <bgoglin@debian.org> Tue, 23 Dec 2008 07:51:52 +0100
+ -- Brice Goglin <bgoglin@debian.org> Tue, 23 Dec 2008 08:01:02 +0100
xserver-xorg-video-ati (1:6.9.0+git20081129.783cdb73-1) experimental; urgency=low
commit 87a8a228792de30b32f7a737e3c70b1d22bf2a6d
Author: Brice Goglin <bgoglin@debian.org>
Date: Tue Dec 23 07:59:36 2008 +0100
New upstream release candidate
diff --git a/ChangeLog b/ChangeLog
index 4c4427d..c317d7d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,529 @@
+commit 631123d144d088d4f77a0599c34deaa31d551d71
+Author: Dave Airlie <airlied@redhat.com>
+Date: Tue Dec 23 10:08:46 2008 +1000
+
+ radeon: update to 6.9.0.91
+
+ do a prerelease for end of year.
+
+commit 047f7603174f6047090f4fafbe6488d697eb78bc
+Author: Dave Airlie <airlied@linux.ie>
+Date: Tue Dec 23 08:16:25 2008 +1000
+
+ radeon: pass distcheck
+
+commit c0c33dab44e6966b1702d4e8cfba3537fc6e2d5c
+Author: Patrick Haller <patrick.haller@haller-consult.com>
+Date: Mon Dec 22 03:06:23 2008 -0500
+
+ Fix off by one in EXA composite limit checking
+
+ Patch from Patrick, with some updates from me:
+ - fix r200 limits
+ - note about r100 limits
+
+commit d01a609a2b07da4ca0f182e79459432584ec61f6
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Mon Dec 22 02:18:43 2008 -0500
+
+ R3xx-R5xx: better fix for xv primitive tearing issues
+
+ R5xx: always use single clipped triangle
+ R3xx/R4xx: use single clipped triangle up to guardband limit,
+ then use quad.
+
+commit 4d009d14c9c72f6e1bc8100ec8d9b8037ee4e514
+Merge: d52882d... 4e96278...
+Author: Dave Airlie <airlied@redhat.com>
+Date: Mon Dec 22 16:00:01 2008 +1000
+
+ Merge branch 'atom-tvout'
+
+commit 4e96278b581e296c1203d97a6d7aa3bff3977222
+Author: Dave Airlie <airlied@redhat.com>
+Date: Mon Dec 22 15:58:35 2008 +1000
+
+ atombios/tv: add an option to enable atom tv-out for users.
+
+ This code is still experimental but we will allow users to enable it for experimental reasons
+
+commit d52882d8188830dd52fa112dadcf5ea7f3e5fd5e
+Author: Dave Airlie <airlied@redhat.com>
+Date: Mon Dec 22 09:27:47 2008 +1000
+
+ radeon: setup 3D engine even when no DRI.
+
+ This should fix some missing font issues in EXA without DRI cases.
+
+commit 2346fd7cbd90dcdce2b361d374a53da064fa6a12
+Author: Dave Airlie <airlied@redhat.com>
+Date: Thu Dec 18 16:35:13 2008 +1000
+
+ radeon: add all new pci ids for rv730/rv710 families
+
+commit b2b43905a5385a8bb0b59b8e50952863d8dacb59
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Wed Dec 17 00:59:52 2008 -0500
+
+ Pre-avivo: fix FP setup
+
+ - make sure to clear various shadow timing bits
+ - crtc1 select bit was set wrong.
+ - should fix bugs like 19100
+
+commit 3754cc23abac99880eda87d06aa42e16081b6c8a
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Wed Dec 17 00:56:19 2008 -0500
+
+ R2xx: switch EXA composite to rects rather quads
+
+ For conistency with Xv path and to reduce potential diagonal tearing
+
+commit 435d996949185201a97493e131f9920a32863acd
+Author: Dave Airlie <airlied@redhat.com>
+Date: Wed Dec 17 11:50:48 2008 +1000
+
+ radeon: tv timings have crev/frev wrong way around for some reason.
+
+commit b9549e89cbdf8fff4aa7bd9f3adfb7d5732508cc
+Author: Dave Airlie <airlied@redhat.com>
+Date: Wed Dec 17 11:40:53 2008 +1000
+
+ atombios: re-enable TV dpms
+
+commit db85ff2e0c52a030546c0cc8ed0b851418f3e045
+Author: Dave Airlie <airlied@redhat.com>
+Date: Wed Dec 17 11:37:17 2008 +1000
+
+ atom/r600: re-enable TV outputs
+
+commit ff7b52c9a48f2e417acf6bec3b72546ad9b33471
+Author: Dave Airlie <airlied@redhat.com>
+Date: Wed Dec 17 11:36:38 2008 +1000
+
+ radeon: use latest atombios constants for TV encoders in set_crtc_source
+
+commit 1e0c7d3f0bf6be67b976fdea8fa2df0b4b16435f
+Author: Dave Airlie <airlied@redhat.com>
+Date: Wed Dec 17 11:35:06 2008 +1000
+
+ atom: spc3 only requires ucEncoderMode for DIG outputs
+
+commit 105cfd0b8696347ef71ad9daa941abb308bd6c2c
+Author: Dave Airlie <airlied@redhat.com>
+Date: Wed Dec 17 11:31:15 2008 +1000
+
+ atom/tv: enable scaler can set the TV output scaler up.
+
+ Add the tv standard to the scaler enable for TV use.
+
+commit 2a768abbd2f18abe203571213260bccc225f70fd
+Author: Dave Airlie <airlied@redhat.com>
+Date: Wed Dec 17 11:29:07 2008 +1000
+
+ atom/tv: fixup the tv out default if bios doesn't specify
+
+commit b7fdd5da08bfec705691363b8890699c794dce53
+Author: Dave Airlie <airlied@redhat.com>
+Date: Wed Dec 17 11:24:56 2008 +1000
+
+ atombios: fixup parsing of TV tables on r500 and r600 cards.
+
+ The TV tables changed between for later cards.
+
+commit e3b08cb59716b525b3063b184eab70e32b9d66f0
+Author: Dave Airlie <airlied@redhat.com>
+Date: Tue Dec 16 15:43:16 2008 +1000
+
+ atombios: correct fix for previous issue.
+
+ I committed an old patch.
+
+commit 1431bc6900b0e0d7f486b5b3ba281873472b3fdc
+Author: Dave Airlie <airlied@redhat.com>
+Date: Tue Dec 16 15:31:34 2008 +1000
+
+ atombios: fix issue with Clearing of MM_INDEX 0.
+
+ While playing with tv-out I discovered this issue with clearing
+ the MM_INDEX register.
+
+commit f72367aff2d09161d30066a00673ba291b292a36
+Author: Dave Airlie <airlied@redhat.com>
+Date: Tue Dec 16 12:32:24 2008 +1000
+
+ radeon: add initial rv730 pciids.
+
+ Lots more to come, this just adds a few to start.
+
+commit 4d2429f3ec4d7d3e1512b268c7ff5cbff8d186b4
+Author: Dave Airlie <airlied@redhat.com>
+Date: Tue Dec 16 12:19:00 2008 +1000
+
+ DCE32: add support for DCE3.2 digital outputs.
+
+ This adds support for the digital outputs on the RV730.
+
+commit 4d3792fd1b9f733107582436540f483d8993199f
+Author: Dave Airlie <airlied@redhat.com>
+Date: Fri Dec 12 10:34:57 2008 +1000
+
+ radeon: fixes from Alex for some output engines
+ (cherry picked from commit 1e8ac6ea7b35ccbc3649c96ead60f69158f66ebc)
+
+commit f892154dbd0d8b6dd8abdf2196ab0c7c18327412
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Mon Dec 15 19:41:32 2008 -0500
+
+ R3xx-R5xx: switch back to quad rendering for Xv
+
+ The large clipped triangle trick hits the guardband limits on
+ large displays. This gets textured video working again
+ until we sort out how to deal with the situation better.
+
+ See bug 19046
+
+commit 62344e460f5d0cac81f94c535cda77d3d76528a9
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Mon Dec 15 11:30:42 2008 -0500
+
+ Remove remnants of unused DDCMode option
+
+commit f1efee6a11dc9436276fb12cfb90aa79ada1192b
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Mon Dec 15 11:27:17 2008 -0500
+
+ Remove mention of MergedFB from server log
+
+ noticed by Fabio, bug 19098
+
+commit 94bffac6968057cdedc792f8540fe44cb6ecfd7c
+Author: Fabio <fabio.ped@libero.it>
+Date: Mon Dec 15 11:22:56 2008 -0500
+
+ man page updates
+
+ from bug 19098 with some minor fixes from me
+
+commit c7899905ec824071f9cabbd1e271c4d76010b733
+Author: Fabio <fabio.ped@libero.it>
+Date: Mon Dec 15 10:58:23 2008 -0500
+
+ Remove duplicate ATI in some device names
+
+ from bug 19098
+
+commit 89a8fd5337c77abf1f3166e69ed061d85b5c20f0
+Author: Dave Airlie <airlied@redhat.com>
+Date: Mon Dec 15 14:41:10 2008 +1000
+
+ r600: don't idle engine
+ (cherry picked from commit b77729448e487d37707ce028d8edc59352d1cc2d)
+
+commit 4ce255a9db8027f2471ba50e57724d3e4d5b16ba
+Author: Fabio <fabio.ped@libero.it>
+Date: Fri Dec 12 09:53:33 2008 -0500
+
+ Fix formatting in man page
+
+ fixes bug 19039
+
+commit 0e99017cb9a6d46b891705df73678c2705439532
+Author: Joseph Adams <joeyadams3.14159@gmail.com>
+Date: Thu Dec 11 00:57:03 2008 -0500
+
+ Add more eMac modes, fix crash in last patch
+
+commit fb46c30d316ab3ec54c54f3aec91d5164070a423
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Wed Dec 10 17:16:56 2008 -0500
+
+ Add support for Apple eMacs
+
+ Thanks to Joseph Adams for helping me sort this out.
+ Verified on eMac G4/1.0 with radeon 7500
+ Later eMacs with radeon 9200 or 9600 chips may have
+ different ddc setups. Need to verify.
+
+commit c0bcea9150ef215fa614733cef9a5b71a55a33bd
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Wed Dec 10 11:40:47 2008 -0500
+
+ Add another AGP quirk
+
+ fixes bug 12544
+
+commit 607b02d6abf78147902a5944bd006897ad95e982
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Wed Dec 10 03:54:35 2008 -0500
+
+ Add randr 1.3 panning support
+
+commit 24007acbf36bcfd09cb5e74ce4a8d918d393cf34
+Author: Benjamin Close <Benjamin.Close@clearchain.com>
+Date: Wed Dec 10 02:17:56 2008 -0500
+
+ [PATCH] xf86misc extension has been removed, update driver to reflect it
+
+commit 69e445f7f2ebd299070e44457b434bbc28b7e05c
+Author: Dave Airlie <airlied@linux.ie>
+Date: Tue Dec 9 18:59:11 2008 +1000
+
+ radeon: memset the pll setting function
+
+ Thanks to Peter Zijlstra for making me debug this and providing
+ feedback.
+
+commit c72b732a2f5597cd72bd4ebe207799ae07f2681e
+Author: Adrian Friedli <adi@koalatux.ch>
+Date: Mon Dec 8 10:42:46 2008 -0500
+
+ Add another AGP quirk
+
+commit 979ad04d901676cb41aea5cf47a8a2e9c19064dd
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Fri Dec 5 17:53:57 2008 -0500
+
+ Add missing .TP in man page
+
+commit b89d434011787fb71593395f462d142375783e35
+Author: Pierre Ossman <pierre@ossman.eu>
+Date: Fri Dec 5 17:52:02 2008 -0500
+
+ Fix scissor setup for Xv
+
+ We need to adjust the scissoring for each clip box, so move the setup
+ to inside the while loop.
+
+commit 83c1115333cbe763f86422fa5aabf4ab21951e68
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Fri Dec 5 11:52:18 2008 -0500
+
+ R200: Remove scissor setup from init3d()
+
+ We aren't using them, so no need to set them up.
+
+commit 7593d5399cdb2f42ecbcb5193580385b286a9db9
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Fri Dec 5 11:18:15 2008 -0500
+
+ set coherent mode consistently (enabled for now)
+
+ It's set to enabled in the output setup, but then was set to
+ disabled when teh output properties were setup. Set it up
+ consistently.
+
+commit ad2579f8898251105a6b36b745afd1ce1dab103e
+Author: Dave Airlie <airlied@linux.ie>
+Date: Fri Dec 5 20:03:53 2008 +1000
+
+ radeon: damn you bios, HDMI cannot have DACs.
+
+commit bae30856f2cb3884387ef347327af6ff00b75854
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Fri Dec 5 08:15:59 2008 +0100
+
+ Make VSync for EXA and Xv configurable
+
+commit 33638d9e388b330e2f4eb4debd05ba09924cf176
+Author: Pierre Ossman <pierre@ossman.eu>
+Date: Thu Dec 4 23:29:31 2008 +0100
+
+ Optimise RADEONWaitForVLine
+
+ Only avoid the vlines we are rendering to, instead of the entire
+ screen. This way we don't stall the card for longer than we
+ absolutely have to.
+
+ EXA calls fixed by Alex Deucher.
+
+commit d1690f5cc096e2f735c8b407c370a1c1cd7a8afc
+Author: Pierre Ossman <pierre@ossman.eu>
+Date: Wed Dec 3 21:49:37 2008 +0100
+
+ Improve tearing avoidance for Xvideo in two steps
+
+ - Fix up VLINE handling to trigger whenever scanout is outside the
+ visible area.
+
+ - Render the video as a scissored triangle as R300+ cannot render a
+ quad in a single pass.
+
+commit 4d98acbca2e630056bf56cdcd0e23007fded2ced
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Wed Jul 16 03:14:06 2008 -0400
+
+ First pass at tear-free accel
+
+ if the dest pixmap is the front buffer, stall the pipe
+ until the vline is outside the active area.
+ For EXA, pick crtc based on the larger mode area;
+ ideally we'd have one pixmap per crtc.
+ For Xv, use dst window area to determine crtc.
+
+commit 82d67b70d0fb747cf7b1eb0b64244ae56cb84572
+Author: Pierre Ossman <pierre@ossman.eu>
+Date: Thu Dec 4 15:38:13 2008 -0500
+
+ Switch r200 Xv to use rect lists rather than quads to avoid tearing
+
+ Patch from Pierre with fixes from me.
+
+commit 9eccd0ad0827a1b8ec9abb2cebf5768d204a5ce9
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Thu Dec 4 12:28:12 2008 -0500
+
+ Fix up US setup after r3xx bicubic merge
+
+commit e13fba853ba19e6b0f081b9b3d9fa76c38a0f82b
+Merge: d296337... 79bbdd9...
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Thu Dec 4 12:25:29 2008 -0500
+
+ Merge branch 'bicubic' of git://git.infradead.org/users/drzeus/xf86-video-ati
+
+commit d29633708b5451f5541e88371d831ae03019a7f5
+Author: Dave Airlie <airlied@redhat.com>
+Date: Thu Dec 4 09:08:48 2008 +1000
+
+ radeon: apply atom quirks to object table
+
+commit 941ac0d3ab839dc5aaaef2f3b7f5c7085b2894c5
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Wed Dec 3 17:31:25 2008 -0500
+
+ Make sure 3D state is emited when switching to 3D IB
+
+ - fixes bug 18864
+
+commit 79bbdd984c925e37f5b3db2605339f1a21377fcf
+Author: Pierre Ossman <pierre@ossman.eu>
+Date: Wed Dec 3 20:33:36 2008 +0100
+
+ Change the XV_BICUBIC attribute to a tristate, where the third state
+ automatically turns the filter on and off as appropriate.
+
+commit bbdf821c179242266fd86edf9e688a6be9cf985f
+Author: Pierre Ossman <pierre@ossman.eu>
+Date: Wed Dec 3 19:42:50 2008 +0100
+
+ Make the R300 bicubic shader program a bit easier to understand by
+ having comments that describe the operation, not how it has to be
+ implemented in the hardware.
+
+commit 8f4b22932c91f1d51fcbf1d1a99d852fcdaafdcc
+Author: Pierre Ossman <pierre@ossman.eu>
+Date: Wed Dec 3 19:31:31 2008 +0100
+
+ Now that we have a bicubic code path that messes up the pixel shader,
+ we need to restore it in the non-bicubic code.
+
+commit 0851daa6e7db77e440188d774ef8b3236146bcb9
+Author: Pierre Ossman <pierre@ossman.eu>
+Date: Wed Dec 3 19:17:36 2008 +0100
+
+ Fix macros so that they are safe to use with expressions as parameters.
+
+commit e04bcb0066781f61e97787856261e3380036d304
+Author: Pierre Ossman <pierre@ossman.eu>
+Date: Wed Dec 3 19:16:03 2008 +0100
+
+ Fix node setup on R300 bicubic pixel shader. It was backwards and used
+ the wrong base for sizes.
+
+commit 927aee181f3637bda1b761caf93fbc0652e1207b
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Wed Dec 3 01:39:38 2008 -0500
+
+ Only flush IB when direct rendering is enabled
+
+commit ca74ebf8813b7fab8d08465ef9600f001c948e94
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Tue Dec 2 22:26:21 2008 -0500
+
+ move 3d state init after RADEON_SWITCH_TO_3D()
+
+commit fc079c5267baf431bbecee7744e484783d393152
+Author: Dave Airlie <airlied@redhat.com>
+Date: Tue Dec 2 22:11:57 2008 -0500
+
+ Don't mix 2D and 3D in the same IB
+
+ fix from radeon-gem-cs
+
+commit 678693aabd0b4c1812ab44bf5abb4c8394b254bb
+Author: Dave Airlie <airlied@redhat.com>
+Date: Tue Dec 2 22:02:21 2008 -0500
+
+ Stability fixes from radeon-gem-cs
+
+commit f231e4d9b2c683dc16f42cf09484fae926a892c1
+Author: Dave Airlie <airlied@redhat.com>
+Date: Wed Dec 3 11:39:04 2008 +1000
+
+ radeon: fix HDMI having DACs in some BIOSes
+
+commit fe73d9a7dfe8ec5c8f1a8dc08e14b4e138aa9276
+Author: Bryce Harrington <bryce@canonical.com>
+Date: Tue Dec 2 19:47:45 2008 -0500
+
+ Add another AGP quirk
+
+commit 6e0c48958c6a50a639368e369ce72d813256aee4
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Mon Dec 1 18:50:40 2008 -0500
+
+ Add quirk for r200 card with the primary dac wired to both ports
+
+ refactor load detection setup as a byproduct
+ should fix bug 18719
+
+commit fa496d7b0397d9be57db90d0860928e9ced73cca
+Author: Pierre Ossman <pierre@ossman.eu>
+Date: Mon Dec 1 08:29:29 2008 +0100
+
+ Fix comments for R500 fragment shader to reflect the code.
+
+commit 0d95fca114194664d9ab612c90d3222912cf41ff
+Author: Corbin Simpson <MostAwesomeDude@gmail.com>
+Date: Sat Aug 30 12:38:43 2008 -0700
+
+ Fix indentation on IS_R300_3D Xv code.
+
+commit 36a62b8c47def3f23a0b735875f59d23ed3c095a
+Author: Corbin Simpson <MostAwesomeDude@gmail.com>
+Date: Sat Aug 30 11:15:20 2008 -0700
+
+ r3xx: Various Xv fixes.
+
+commit 01ed5462fad56f5b7bf867041d00443bdf81c653
+Author: Corbin Simpson <MostAwesomeDude@gmail.com>
+Date: Thu Aug 7 18:08:54 2008 -0700
+
+ Switch to Mesa-style 24-bit float packing.
+ Seems like Mesa's got it right, so we should follow suit.
+
+commit 85bbe889045aa434f71a3eb0ba8153b7d2cc5023
+Author: Maciej Cencora <m.cencora@gmail.com>
+Date: Thu Aug 7 07:06:46 2008 -0700
+
+ Enable bicubic Xv on r3xx+. Still some buggies in the actual display, but looks pretty good.
+
+commit bf6263cff50bb85c19ff6dfebb739333fa8aca18
+Author: Maciej Cencora <m.cencora@gmail.com>
+Date: Thu Aug 7 07:00:36 2008 -0700
+
+ Add r3xx-specific bicubic filtering code. FP, RS, mostly, everything else is shared with r5xx.
+
+commit da021c36bbdf3bca31ee50ebe01cdb9495c09b36
+Author: Dave Airlie <airlied@linux.ie>
+Date: Sun Nov 30 18:44:24 2008 +1000
+
+ radeon_drm.h: remove kernel defines
+
+ remove these we should update from an installed kernel copy not from the
+ original kernel copy.
+
commit 783cdb7374941bb1d2b63eea375fbf2f1b808cc3
Author: Dave Airlie <airlied@redhat.com>
Date: Thu Nov 27 15:29:06 2008 +1000
diff --git a/debian/changelog b/debian/changelog
index 7c77737..6914753 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-video-ati (1:6.9.0.91-1) UNRELEASED; urgency=low
+
+ * New upstream release candidate.
+
+ -- Brice Goglin <bgoglin@debian.org> Tue, 23 Dec 2008 07:51:52 +0100
+
xserver-xorg-video-ati (1:6.9.0+git20081129.783cdb73-1) experimental; urgency=low
* Pull upstream snapshot, up to commit 783cdb73.
commit 631123d144d088d4f77a0599c34deaa31d551d71
Author: Dave Airlie <airlied@redhat.com>
Date: Tue Dec 23 10:08:46 2008 +1000
radeon: update to 6.9.0.91
do a prerelease for end of year.
diff --git a/configure.ac b/configure.ac
index 5ffe0d9..4b9c6b1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-video-ati],
- 6.9.0,
+ 6.9.0.91,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-video-ati)
commit 047f7603174f6047090f4fafbe6488d697eb78bc
Author: Dave Airlie <airlied@linux.ie>
Date: Tue Dec 23 08:16:25 2008 +1000
radeon: pass distcheck
diff --git a/src/Makefile.am b/src/Makefile.am
index d65a3e4..a13bfad 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -130,18 +130,16 @@ EXTRA_DIST = \
radeon_textured_videofuncs.c \
ati.h \
ativersion.h \
+ bicubic_table.h \
generic_bus.h \
- radeon_common.h \
radeon_commonfuncs.c \
radeon_dri.h \
- radeon_dripriv.h \
radeon_exa_render.c \
radeon_exa_funcs.c \
radeon.h \
radeon_macros.h \
radeon_probe.h \
radeon_reg.h \
- radeon_sarea.h \
radeon_version.h \
radeon_video.h \
radeon_tv.h \
commit c0c33dab44e6966b1702d4e8cfba3537fc6e2d5c
Author: Patrick Haller <patrick.haller@haller-consult.com>
Date: Mon Dec 22 03:06:23 2008 -0500
Fix off by one in EXA composite limit checking
Patch from Patrick, with some updates from me:
- fix r200 limits
- note about r100 limits
diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c
index 55e55be..c285109 100644
--- a/src/radeon_exa_render.c
+++ b/src/radeon_exa_render.c
@@ -320,7 +320,11 @@ static Bool R100CheckCompositeTexture(PicturePtr pPict, int unit)
int h = pPict->pDrawable->height;
int i;
- if ((w > 0x7ff) || (h > 0x7ff))
+ /* r100 limit should be 2048, there are issues with 2048
+ * see 197a62704742a4a19736c2637ac92d1dc5ab34ed
+ */
+
+ if ((w > 2047) || (h > 2047))
RADEON_FALLBACK(("Picture w/h too large (%dx%d)\n", w, h));
for (i = 0; i < sizeof(R100TexFormats) / sizeof(R100TexFormats[0]); i++) {
@@ -456,10 +460,14 @@ static Bool R100CheckComposite(int op, PicturePtr pSrcPicture,
if (!pSrcPicture->pDrawable)
return FALSE;
+ /* r100 limit should be 2048, there are issues with 2048
+ * see 197a62704742a4a19736c2637ac92d1dc5ab34ed
+ */
+
pSrcPixmap = RADEONGetDrawablePixmap(pSrcPicture->pDrawable);
- if (pSrcPixmap->drawable.width >= 2048 ||
- pSrcPixmap->drawable.height >= 2048) {
+ if (pSrcPixmap->drawable.width > 2047 ||
+ pSrcPixmap->drawable.height > 2047) {
RADEON_FALLBACK(("Source w/h too large (%d,%d).\n",
pSrcPixmap->drawable.width,
pSrcPixmap->drawable.height));
@@ -467,8 +475,8 @@ static Bool R100CheckComposite(int op, PicturePtr pSrcPicture,
pDstPixmap = RADEONGetDrawablePixmap(pDstPicture->pDrawable);
- if (pDstPixmap->drawable.width >= 2048 ||
- pDstPixmap->drawable.height >= 2048) {
+ if (pDstPixmap->drawable.width > 2047 ||
+ pDstPixmap->drawable.height > 2047) {
RADEON_FALLBACK(("Dest w/h too large (%d,%d).\n",
pDstPixmap->drawable.width,
pDstPixmap->drawable.height));
@@ -477,8 +485,8 @@ static Bool R100CheckComposite(int op, PicturePtr pSrcPicture,
if (pMaskPicture) {
PixmapPtr pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable);
- if (pMaskPixmap->drawable.width >= 2048 ||
- pMaskPixmap->drawable.height >= 2048) {
+ if (pMaskPixmap->drawable.width > 2047 ||
+ pMaskPixmap->drawable.height > 2047) {
RADEON_FALLBACK(("Mask w/h too large (%d,%d).\n",
pMaskPixmap->drawable.width,
pMaskPixmap->drawable.height));
@@ -531,7 +539,7 @@ static Bool FUNC_NAME(R100PrepareComposite)(int op,
return FALSE;
if (pDstPicture->format == PICT_a8 && RadeonBlendOp[op].dst_alpha)
- RADEON_FALLBACK("Can't dst alpha blend A8\n");
+ RADEON_FALLBACK("Can't dst alpha blend A8\n");
if (pMask)
info->accel_state->has_mask = TRUE;
@@ -635,7 +643,7 @@ static Bool R200CheckCompositeTexture(PicturePtr pPict, int unit)
int h = pPict->pDrawable->height;
int i;
- if ((w > 0x7ff) || (h > 0x7ff))
+ if ((w > 2048) || (h > 2048))
RADEON_FALLBACK(("Picture w/h too large (%dx%d)\n", w, h));
for (i = 0; i < sizeof(R200TexFormats) / sizeof(R200TexFormats[0]); i++)
@@ -762,8 +770,8 @@ static Bool R200CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP
pSrcPixmap = RADEONGetDrawablePixmap(pSrcPicture->pDrawable);
- if (pSrcPixmap->drawable.width >= 2048 ||
- pSrcPixmap->drawable.height >= 2048) {
+ if (pSrcPixmap->drawable.width > 2048 ||
+ pSrcPixmap->drawable.height > 2048) {
RADEON_FALLBACK(("Source w/h too large (%d,%d).\n",
pSrcPixmap->drawable.width,
pSrcPixmap->drawable.height));
@@ -771,8 +779,8 @@ static Bool R200CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP
pDstPixmap = RADEONGetDrawablePixmap(pDstPicture->pDrawable);
- if (pDstPixmap->drawable.width >= 2048 ||
- pDstPixmap->drawable.height >= 2048) {
+ if (pDstPixmap->drawable.width > 2048 ||
+ pDstPixmap->drawable.height > 2048) {
RADEON_FALLBACK(("Dest w/h too large (%d,%d).\n",
pDstPixmap->drawable.width,
pDstPixmap->drawable.height));
@@ -781,8 +789,8 @@ static Bool R200CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP
if (pMaskPicture) {
PixmapPtr pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable);
- if (pMaskPixmap->drawable.width >= 2048 ||
- pMaskPixmap->drawable.height >= 2048) {
+ if (pMaskPixmap->drawable.width > 2048 ||
+ pMaskPixmap->drawable.height > 2048) {
RADEON_FALLBACK(("Mask w/h too large (%d,%d).\n",
pMaskPixmap->drawable.width,
pMaskPixmap->drawable.height));
@@ -831,7 +839,7 @@ static Bool FUNC_NAME(R200PrepareComposite)(int op, PicturePtr pSrcPicture,
return FALSE;
if (pDstPicture->format == PICT_a8 && RadeonBlendOp[op].dst_alpha)
- RADEON_FALLBACK("Can't dst alpha blend A8\n");
+ RADEON_FALLBACK("Can't dst alpha blend A8\n");
if (pMask)
info->accel_state->has_mask = TRUE;
@@ -1054,7 +1062,7 @@ static Bool FUNC_NAME(R300TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
txfilter |= R300_TX_CLAMP_T(R300_TX_CLAMP_WRAP);
else
txfilter |= R300_TX_CLAMP_T(R300_TX_CLAMP_CLAMP_GL);
-
+
txfilter |= (unit << R300_TX_ID_SHIFT);
switch (pPict->filter) {
@@ -1121,8 +1129,8 @@ static Bool R300CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP
max_dst_h = 2560;
}
- if (pSrcPixmap->drawable.width >= max_tex_w ||
- pSrcPixmap->drawable.height >= max_tex_h) {
+ if (pSrcPixmap->drawable.width > max_tex_w ||
+ pSrcPixmap->drawable.height > max_tex_h) {
RADEON_FALLBACK(("Source w/h too large (%d,%d).\n",
pSrcPixmap->drawable.width,
pSrcPixmap->drawable.height));
@@ -1130,8 +1138,8 @@ static Bool R300CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP
pDstPixmap = RADEONGetDrawablePixmap(pDstPicture->pDrawable);
- if (pDstPixmap->drawable.width >= max_dst_w ||
- pDstPixmap->drawable.height >= max_dst_h) {
+ if (pDstPixmap->drawable.width > max_dst_w ||
+ pDstPixmap->drawable.height > max_dst_h) {
RADEON_FALLBACK(("Dest w/h too large (%d,%d).\n",
pDstPixmap->drawable.width,
pDstPixmap->drawable.height));
@@ -1140,8 +1148,8 @@ static Bool R300CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP
if (pMaskPicture) {
PixmapPtr pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable);
- if (pMaskPixmap->drawable.width >= max_tex_w ||
- pMaskPixmap->drawable.height >= max_tex_h) {
+ if (pMaskPixmap->drawable.width > max_tex_w ||
+ pMaskPixmap->drawable.height > max_tex_h) {
RADEON_FALLBACK(("Mask w/h too large (%d,%d).\n",
pMaskPixmap->drawable.width,
pMaskPixmap->drawable.height));
commit d01a609a2b07da4ca0f182e79459432584ec61f6
Author: Alex Deucher <alexdeucher@gmail.com>
Date: Mon Dec 22 02:18:43 2008 -0500
R3xx-R5xx: better fix for xv primitive tearing issues
R5xx: always use single clipped triangle
R3xx/R4xx: use single clipped triangle up to guardband limit,
then use quad.
diff --git a/src/radeon_textured_videofuncs.c b/src/radeon_textured_videofuncs.c
index 410430c..2fe852d 100644
--- a/src/radeon_textured_videofuncs.c
+++ b/src/radeon_textured_videofuncs.c
@@ -1486,16 +1486,30 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
pPriv->drw_y + pPriv->dst_h,
pPriv->vsync);
- BEGIN_ACCEL(2);
- OUT_ACCEL_REG(R300_SC_SCISSOR0, ((0 << R300_SCISSOR_X_SHIFT) |
- (0 << R300_SCISSOR_Y_SHIFT)));
- OUT_ACCEL_REG(R300_SC_SCISSOR1, ((8191 << R300_SCISSOR_X_SHIFT) |
- (8191 << R300_SCISSOR_Y_SHIFT)));
- FINISH_ACCEL();
+ /*
+ * Rendering of the actual polygon is done in two different
+ * ways depending on chip generation:
+ *
+ * < R300:
+ *
+ * These chips can render a rectangle in one pass, so
+ * handling is pretty straight-forward.
+ *
+ * >= R300:
+ *
+ * These chips can accept a quad, but will render it as
+ * two triangles which results in a diagonal tear. Instead
+ * We render a single, large triangle and use the scissor
+ * functionality to restrict it to the desired rectangle.
+ * Due to guardband limits on r3xx/r4xx, we can only use
+ * the single triangle up to 2880 pixels; above that we
+ * render as a quad.
+ */
while (nBox--) {
int srcX, srcY, srcw, srch;
int dstX, dstY, dstw, dsth;
+ Bool use_quad = FALSE;
dstX = pBox->x1 + dstxoff;
dstY = pBox->y1 + dstyoff;
dstw = pBox->x2 - pBox->x1;
@@ -1514,6 +1528,28 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
ErrorF("src: %d, %d, %d, %d\n", srcX, srcY, srcw, srch);
#endif
+ if (IS_R300_3D || IS_R500_3D) {
+ if (IS_R300_3D && ((dstw > 1440) || (dsth > 1440)))
+ use_quad = TRUE;
+ /*
+ * Set up the scissor area to that of the output size.
+ */
+ BEGIN_ACCEL(2);
+ if (IS_R300_3D) {
+ /* R300 has an offset */
+ OUT_ACCEL_REG(R300_SC_SCISSOR0, (((dstX + 1088) << R300_SCISSOR_X_SHIFT) |
+ ((dstY + 1088) << R300_SCISSOR_Y_SHIFT)));
+ OUT_ACCEL_REG(R300_SC_SCISSOR1, (((dstX + dstw + 1088 - 1) << R300_SCISSOR_X_SHIFT) |
+ ((dstY + dsth + 1088 - 1) << R300_SCISSOR_Y_SHIFT)));
+ } else {
+ OUT_ACCEL_REG(R300_SC_SCISSOR0, (((dstX) << R300_SCISSOR_X_SHIFT) |
+ ((dstY) << R300_SCISSOR_Y_SHIFT)));
+ OUT_ACCEL_REG(R300_SC_SCISSOR1, (((dstX + dstw - 1) << R300_SCISSOR_X_SHIFT) |
+ ((dstY + dsth - 1) << R300_SCISSOR_Y_SHIFT)));
+ }
+ FINISH_ACCEL();
+ }
+
#ifdef ACCEL_CP
if (info->ChipFamily < CHIP_FAMILY_R200) {
BEGIN_RING(3 * vtx_count + 3);
@@ -1527,12 +1563,21 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
RADEON_CP_VC_CNTL_VTX_FMT_RADEON_MODE |
(3 << RADEON_CP_VC_CNTL_NUM_SHIFT));
} else if (IS_R300_3D || IS_R500_3D) {
- BEGIN_RING(4 * vtx_count + 4);
- OUT_RING(CP_PACKET3(R200_CP_PACKET3_3D_DRAW_IMMD_2,
- 4 * vtx_count));
- OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_QUAD_LIST |
- RADEON_CP_VC_CNTL_PRIM_WALK_RING |
- (4 << RADEON_CP_VC_CNTL_NUM_SHIFT));
+ if (use_quad) {
+ BEGIN_RING(4 * vtx_count + 4);
+ OUT_RING(CP_PACKET3(R200_CP_PACKET3_3D_DRAW_IMMD_2,
+ 4 * vtx_count));
+ OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_QUAD_LIST |
+ RADEON_CP_VC_CNTL_PRIM_WALK_RING |
+ (4 << RADEON_CP_VC_CNTL_NUM_SHIFT));
+ } else {
+ BEGIN_RING(3 * vtx_count + 4);
+ OUT_RING(CP_PACKET3(R200_CP_PACKET3_3D_DRAW_IMMD_2,
+ 3 * vtx_count));
+ OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_LIST |
+ RADEON_CP_VC_CNTL_PRIM_WALK_RING |
+ (3 << RADEON_CP_VC_CNTL_NUM_SHIFT));
+ }
} else {
BEGIN_RING(3 * vtx_count + 2);
OUT_RING(CP_PACKET3(R200_CP_PACKET3_3D_DRAW_IMMD_2,
@@ -1542,9 +1587,12 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
(3 << RADEON_CP_VC_CNTL_NUM_SHIFT));
}
#else /* ACCEL_CP */
- if (IS_R300_3D || IS_R500_3D)
- BEGIN_ACCEL(2 + vtx_count * 4);
- else
+ if (IS_R300_3D || IS_R500_3D) {
+ if (use_quad)
+ BEGIN_ACCEL(2 + vtx_count * 4);
+ else
+ BEGIN_ACCEL(2 + vtx_count * 3);
+ } else
BEGIN_ACCEL(1 + vtx_count * 3);
if (info->ChipFamily < CHIP_FAMILY_R200)
@@ -1552,11 +1600,16 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
RADEON_VF_PRIM_WALK_DATA |
RADEON_VF_RADEON_MODE |
(3 << RADEON_VF_NUM_VERTICES_SHIFT)));
- else if (IS_R300_3D || IS_R500_3D)
- OUT_ACCEL_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_QUAD_LIST |
- RADEON_VF_PRIM_WALK_DATA |
- (4 << RADEON_VF_NUM_VERTICES_SHIFT)));
- else
+ else if (IS_R300_3D || IS_R500_3D) {
+ if (use_quad)
+ OUT_ACCEL_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_QUAD_LIST |
+ RADEON_VF_PRIM_WALK_DATA |
+ (4 << RADEON_VF_NUM_VERTICES_SHIFT)));
+ else
+ OUT_ACCEL_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_TRIANGLE_LIST |
+ RADEON_VF_PRIM_WALK_DATA |
+ (3 << RADEON_VF_NUM_VERTICES_SHIFT)));
+ } else
OUT_ACCEL_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_RECTANGLE_LIST |
RADEON_VF_PRIM_WALK_DATA |
(3 << RADEON_VF_NUM_VERTICES_SHIFT)));
@@ -1567,6 +1620,7 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
* This code is only executed on >= R300, so we don't
* have to deal with the legacy handling.
*/
+ if (use_quad) {
VTX_OUT_FILTER((float)dstX, (float)dstY,
(float)srcX / info->accel_state->texW[0], (float)srcY / info->accel_state->texH[0],
(float)srcX + 0.5, (float)srcY + 0.5);
@@ -1579,27 +1633,52 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
VTX_OUT_FILTER((float)(dstX + dstw), (float)dstY,
(float)(srcX + srcw) / info->accel_state->texW[0], (float)srcY / info->accel_state->texH[0],
(float)(srcX + srcw) + 0.5, (float)srcY + 0.5);
+ } else {
Reply to: