xserver-xorg-video-ati: Changes to 'debian-unstable'
ChangeLog | 380 ++++++++++++++++++++++++++++++++++++++
configure.ac | 2
debian/changelog | 14 +
man/radeon.man | 59 ++---
src/Makefile.am | 2
src/ati.c | 1
src/ati.h | 1
src/ati_pciids_gen.h | 13 +
src/atipciids.h | 1
src/atombios_output.c | 9
src/cayman_reg.h | 31 +--
src/drmmode_display.c | 52 +++--
src/drmmode_display.h | 10 -
src/evergreen_accel.c | 53 +++++
src/evergreen_exa.c | 147 +++++++++-----
src/evergreen_reg.h | 32 +--
src/pcidb/ati_pciids.csv | 13 +
src/r600_exa.c | 164 ++++++++++------
src/r600_reg.h | 35 +--
src/r6xx_accel.c | 4
src/radeon.h | 67 ------
src/radeon_bios.c | 2
src/radeon_chipinfo_gen.h | 13 +
src/radeon_chipset_gen.h | 13 +
src/radeon_commonfuncs.c | 6
src/radeon_dri.c | 30 ++-
src/radeon_dri2.c | 166 ++++++++++++----
src/radeon_driver.c | 14 +
src/radeon_exa_funcs.c | 18 +
src/radeon_kms.c | 36 ++-
src/radeon_pci_chipset_gen.h | 13 +
src/radeon_pci_device_match_gen.h | 13 +
src/radeon_probe.c | 29 ++
src/radeon_probe.h | 66 ++++++
src/radeon_textured_video.c | 2
src/radeon_video.c | 26 ++
src/radeon_video.h | 5
src/radeon_xvmc.c | 144 ++++++++++++++
src/theatre.c | 4
39 files changed, 1336 insertions(+), 354 deletions(-)
New commits:
commit 39635e5292aee3d51f5995d580179daa121f4c65
Author: Cyril Brulebois <kibi@debian.org>
Date: Thu Nov 3 00:36:52 2011 +0100
Upload to unstable.
diff --git a/debian/changelog b/debian/changelog
index 998fb1f..53dc805 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xserver-xorg-video-ati (1:6.14.3-1) UNRELEASED; urgency=low
+xserver-xorg-video-ati (1:6.14.3-1) unstable; urgency=low
* New upstream release. Some highlights follow:
- Add support for llano APUs.
@@ -10,7 +10,7 @@ xserver-xorg-video-ati (1:6.14.3-1) UNRELEASED; urgency=low
- “EXA >= R6xx / KMS: Avoid running out of CS space at inconvenient
times” (Closes: #645007).
- -- Cyril Brulebois <kibi@debian.org> Thu, 03 Nov 2011 00:26:53 +0100
+ -- Cyril Brulebois <kibi@debian.org> Thu, 03 Nov 2011 00:36:47 +0100
xserver-xorg-video-ati (1:6.14.2-2) unstable; urgency=low
commit 0872229500257294b9e91ca8242edc58d028daeb
Author: Cyril Brulebois <kibi@debian.org>
Date: Thu Nov 3 00:36:37 2011 +0100
Add some highlights to changelog, add Closes: #637258, #645007.
diff --git a/debian/changelog b/debian/changelog
index 25774f2..998fb1f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,14 @@
xserver-xorg-video-ati (1:6.14.3-1) UNRELEASED; urgency=low
- * New upstream release.
+ * New upstream release. Some highlights follow:
+ - Add support for llano APUs.
+ - “video: Don't round up bottom/right edge for clipping source
+ width/height” (Closes: #637258).
+ - “Bail if we're trying to start up in UMS mode on KMS.” According to
+ a comment in the code, this can happen if the radeon kernel module
+ wasn't loaded before X starts.
+ - “EXA >= R6xx / KMS: Avoid running out of CS space at inconvenient
+ times” (Closes: #645007).
-- Cyril Brulebois <kibi@debian.org> Thu, 03 Nov 2011 00:26:53 +0100
commit 01ad0ae19bcb210236373bc68767f17e7cd60a4c
Author: Cyril Brulebois <kibi@debian.org>
Date: Thu Nov 3 00:27:07 2011 +0100
Bump changelogs.
diff --git a/ChangeLog b/ChangeLog
index a09e872..7f195e0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,383 @@
+commit 93459f842c2d8dc178a1954b8e05150fcb96ac9a
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Wed Nov 2 12:51:15 2011 +0100
+
+ Bump version for 6.14.3 release.
+
+commit fe3ce559b7f07d39ded39abb38576846d6eb185b
+Author: Jeremy Huddleston <jeremyhu@apple.com>
+Date: Tue Nov 1 20:27:03 2011 -0700
+
+ Build fix for -Werror=int-to-pointer-cast
+
+ Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+commit d3d6a5da07aaec5961e51c9a8f90c1490ee101b6
+Author: Tormod Volden <debian.tormod@gmail.com>
+Date: Sat Oct 29 23:08:46 2011 +0200
+
+ radeon: do not include xf86PciInfo.h
+
+ We already use atipciids.h instead most places.
+
+ Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
+
+commit 70da7001e81363ed6ef2c4727c512daf53ae29fe
+Author: Jeremy Huddleston <jeremyhu@apple.com>
+Date: Sat Oct 29 20:15:09 2011 -0700
+
+ Use malloc/calloc/realloc/free directly
+
+ Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+commit a3bb07efb1757c33d70e2e1928219d12a4dd6498
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Tue Oct 25 17:43:58 2011 +0200
+
+ EXA >= R6xx / KMS: Avoid running out of CS space at inconvenient times.
+
+ Otherwise we may end up with things not properly set up at the beginning of the
+ next CS.
+
+ Fixes http://bugs.debian.org/645007 .
+
+ In contrast to the Composite code for < R6xx, this isn't necessary with UMS,
+ as the draw packet only uses constant space in the indirect buffer, and nothing
+ else can mess with the 3D state between indirect buffers.
+
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+ Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+
+commit 23788c4a5e3b6affb9b183e1393edd0e5ca4550e
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Thu Oct 27 19:12:22 2011 +0200
+
+ EXA < R6xx: Make sure 2D state is re-emitted after running out of CS space.
+
+ Otherwise it's basically luck what the 2D state ends up being at the beginning
+ of the next CS.
+
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+
+commit 6e0e1a821accc6ca95f4134e49b66a6b168c1934
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Tue Oct 25 17:39:57 2011 +0200
+
+ Make radeon_dri2_create_buffer(s) more robust. (Bug #30047)
+
+ In particular, handle and propagate failure to allocate GPU accessible memory,
+ instead of crashing. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=30047 .
+
+ Also take care not to leak resources in error paths.
+
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+
+commit 856583dbca9319c77fed40daa9956e81a0068f9e
+Author: Jerome Glisse <jglisse@redhat.com>
+Date: Thu Oct 20 14:17:14 2011 -0400
+
+ radeon/kms: fallback to vesa if GPU is not supported by UMS
+
+ For GPU not supported by UMS, test in probe so that we properly
+ fallback to vesa.
+
+ Signed-off-by: Jerome Glisse <jglisse@redhat.com>
+ Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+
+commit f6f1b4f7789cfef763c063e671b76b60be8bdd8e
+Author: Maarten Lankhorst <m.b.lankhorst@gmail.com>
+Date: Tue Oct 18 14:30:39 2011 +0200
+
+ dri2: Add vdpau driver name entry
+
+ libvdpau has a driver loading mechanism that looks for a dri2 driver
+ first before falling back to nvidia, so lets use that.
+
+ Allows use of libvdpau_rx00 without having to set things up separately,
+ similar to the patch to xf86-video-nouveau.
+
+ Signed-off-by: Maarten Lankhorst <m.b.lankhorst@gmail.com>
+ Reviewed-by: Christian König <deathsimple@vodafone.de>
+ Reviewed-by: Michel Dänzer <michel@daenzer.net>
+ Tested-by: Michel Dänzer <michel@daenzer.net>
+
+commit a6b2bd2d184f10d4c56c4ee17186aedb238a36ec
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Wed Sep 21 17:00:16 2011 -0400
+
+ UMS: fix DDIA enable on some rs690 systems
+
+ DVOOutputControl checks the value of of bios scratch reg 3
+ on some tables and assumes the encoder is already enabled
+ if the DFP2_ACTIVE bit is set. Clear that bit so the table
+ sets the DDIA enable bit properly.
+
+ Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
+
+commit d78860ba53d9bfcf6c28e1cfd2d970709b5e20fa
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Fri Aug 12 11:21:33 2011 +0200
+
+ Only call radeon_dri2_close_screen() if DRI2 was enabled.
+
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+
+commit 11330ca5dc61a70fe4507e63230f9133ca22d891
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Fri Aug 12 11:21:32 2011 +0200
+
+ Remove dead variable remain_size_bytes.
+
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+
+commit fcf0cca9c0ab0f692b222f619aee8f1cdad3b519
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Tue Sep 20 12:34:05 2011 +0200
+
+ KMS Color Tiling requires xserver which supports EXA_MIXED_PIXMAPS.
+
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+
+commit c96e6fb8a5f5be2319fdb4c431c1ba5279997fe8
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Sat Sep 17 08:26:12 2011 -0400
+
+ man: note that the list of marketing names is non-exhaustive
+
+ Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
+
+commit 1a51fce6f6ab169c882a86b936909c0820f27a68
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Thu Sep 15 17:52:25 2011 -0400
+
+ update man page with new marking names
+
+ Note that the driver support all currently
+ shipping asics and the names in the man page
+ are just a sampling.
+
+ Fixes:
+ https://bugs.freedesktop.org/show_bug.cgi?id=40808
+
+ Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
+
+commit 64f237a4cf3ef5bcb3163e88e1447ff275a1eefa
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Thu Aug 18 19:11:08 2011 +0200
+
+ Convert register ranges for >= r6xx from enums to defines.
+
+ Avoids lots of "comparison between 'enum <anonymous>' and 'enum <anonymous>'"
+ warnings with newer versions of gcc. See
+ https://bugs.freedesktop.org/show_bug.cgi?id=38238 .
+
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+
+commit 95991fcce45f0dd904f76b9f98f9c7ed5708e4fa
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Wed Aug 17 11:10:34 2011 +0200
+
+ Bail if we're trying to start up in UMS mode on KMS.
+
+ Ideally, the display manager will start the X server again, and everything
+ will be fine and dandy. But in the worst case, at least we won't hit the
+ hardware behind the KMS driver's back.
+
+ (This change intentionally makes (ab)use of the fact that Bool is defined as
+ int).
+
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+ Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+
+commit f95a41b7851565c282d22f8d679db1377428f165
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Thu Aug 11 11:22:57 2011 +0200
+
+ video: Don't round up bottom/right edge for clipping source width/height.
+
+ It's not necessary: If the top/left edge was rounded down, this will be
+ compensated by the subtraction.
+
+ Worse, if the original source width/height is odd, rounding up may result in
+ reading past the end of the source data.
+
+ Fixes http://bugs.debian.org/637258 .
+
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+ Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+
+commit 93fc0843a1e31dc9237433bc2bf17df79e956d26
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Wed Aug 10 17:44:37 2011 +0200
+
+ Change my e-mail address to something that still works, and always will, I hope.
+
+commit 9151f3b1c2ebcc34e63195888ba696f2183ba5e2
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date: Tue Aug 9 19:13:26 2011 +0200
+
+ Prefer the CRTC of the primary output for synchronization.
+
+ See https://bugs.freedesktop.org/show_bug.cgi?id=39696 .
+
+ Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+
+commit 3b9fdc807dd7e52af0576299cefba596040f6f2f
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Wed Aug 3 16:20:13 2011 -0400
+
+ r5xx+: Fix vline setup with crtc offsets
+
+ On r5xx+, vline is relative to to the viewport, not
+ the scanlines. Based on initial patch and investigation
+ from Herbert Pötzl (Bertl) on IRC.
+
+ Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
+
+commit 104b2d7c071f29266b1bc4184a74e9714d14febc
+Author: Alex Deucher <alexander.deucher@amd.com>
+Date: Mon Aug 1 10:05:30 2011 -0400
+
+ kms: fix possible leak in pageflip code
+
+ Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+
+commit d29bab632e9ecccba518d4107d52620bf75eb1cf
+Author: Ville Syrjala <syrjala@sci.fi>
+Date: Wed May 4 23:51:27 2011 +0300
+
+ kms: Move flip_count and co. to a per swap structure
+
+ If multiple drawables are doing page flipping, the global drmmode
+ structure can't be used to keep per swap information. For example
+ flip_count can increase prematurely due to another swap request,
+ and then the previous swap request never gets completed, leading to a
+ stuck client. Move the relevant pieces of data to a strucuture that
+ gets allocated once per swap request and shared by all involved CRTCs.
+
+ Signed-off-by: Ville Syrjala <syrjala@sci.fi>
+
+commit 9493563c1ef4b51af0ee8a44cb4e7c5bb280347e
+Author: Ville Syrjala <syrjala@sci.fi>
+Date: Wed May 4 23:51:26 2011 +0300
+
+ dri2: Update front buffer pixmap and name before exchanging buffers
+
+ Buffer exchange assumes that the front buffer pixmap and name
+ information is accurate. That may not be the case eg. if the window
+ has been (un)redirected since the buffer was created.
+
+ Signed-off-by: Ville Syrjala <syrjala@sci.fi>
+
+commit 8c9266ed2da22a510243f9a952c14d4423f48a2b
+Author: Alex Deucher <alexander.deucher@amd.com>
+Date: Fri Jul 15 10:44:57 2011 -0400
+
+ radeon: add some new NI pci ids
+
+ Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+
+commit f59c3b294b0f715fc96e2bbe25893f2b31aa488b
+Author: Christian König <deathsimple@vodafone.de>
+Date: Thu Jul 14 11:49:06 2011 +0200
+
+ Register XvMC video decoding acceleration
+
+commit e8d0d437957b15252dfad775796a3949ed50dbcf
+Author: Dave Airlie <airlied@redhat.com>
+Date: Tue Jul 12 11:43:25 2011 -0400
+
+ evergreen: Emit SQ_LDS_RESOURCE_MGMT
+
+ Avoids rendering problems when compute changes this reg.
+
+ Fixes:
+ https://bugs.freedesktop.org/show_bug.cgi?id=39119
+
+ Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
+
+commit 9bb31158466e6168116d841d12c8b4303f11c4a6
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Wed Jun 22 12:24:28 2011 -0400
+
+ evergreen: fix num_banks for 2D tiling config
+
+ The field is encoded.
+
+ Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
+
+commit 122b471f734aa07427b01d4bec35ff1ac28290b5
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Fri Jun 17 04:02:16 2011 -0400
+
+ dri2: fix copy pasto in a6154c00c64932332e8f6e334661ffd579cfd894
+
+ Reported-by: Nils Wallménius <nils.wallmenius@gmail.com>
+ Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
+
+commit 122bedcbcf45cb583cf51b2fd04ed2805e0ca60b
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Thu Jun 16 12:57:11 2011 -0400
+
+ dri2: missing bit from a6154c00c64932332e8f6e334661ffd579cfd894
+
+ Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
+
+commit a6154c00c64932332e8f6e334661ffd579cfd894
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Thu Jun 16 12:48:43 2011 -0400
+
+ dri2/eg+: fix size and alignment of depth/stencil buffers
+
+ Base alignment may be 256B or 512B depending on the group
+ size. Also need to check against front size for virtualX.
+
+ Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
+
+commit 41eb1fbb3d9da64feb4a96df7c575e44136b1538
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Mon Jun 13 12:50:39 2011 -0400
+
+ kms/man: update ColorTiling info
+
+ Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
+
+commit 481baa5c74271cd7ce38bae3965d2bc4b8809058
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Mon Jun 13 12:44:07 2011 -0400
+
+ kms: enable ColorTiling by default on r6xx-cayman asics
+
+ Currently only 1D tiling as 2D tiling still has some corner
+ cases to fix up.
+
+ Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
+
+commit cbcc57b0fa6f581be777bef648f2bf3efe7443ee
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Mon Apr 4 12:52:00 2011 -0400
+
+ radeon: add llano pci ids
+
+ Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
+
+commit 36afd1e1055eeadb2396dadcc68b214655bd90a9
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Tue May 31 16:03:36 2011 -0400
+
+ radeon: add support for llano APUs
+
+ - KMS only
+ - Includes full EXA/Xv support
+
+ Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
+
+commit 557f46dc2f18734ecf1f18dee7e951e0bf062e63
+Author: Dave Airlie <airlied@redhat.com>
+Date: Fri May 27 07:22:08 2011 +1000
+
+ bump version after release
+
commit 2fca40ea65d9f2a6f8451c324bb4b82786f34f76
Author: Dave Airlie <airlied@redhat.com>
Date: Thu May 26 12:52:21 2011 +1000
diff --git a/debian/changelog b/debian/changelog
index 44f9b58..25774f2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-video-ati (1:6.14.3-1) UNRELEASED; urgency=low
+
+ * New upstream release.
+
+ -- Cyril Brulebois <kibi@debian.org> Thu, 03 Nov 2011 00:26:53 +0100
+
xserver-xorg-video-ati (1:6.14.2-2) unstable; urgency=low
* Enable parallel building.
commit 93459f842c2d8dc178a1954b8e05150fcb96ac9a
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Wed Nov 2 12:51:15 2011 +0100
Bump version for 6.14.3 release.
diff --git a/configure.ac b/configure.ac
index ec54478..167432c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-video-ati],
- [6.14.99],
+ [6.14.3],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
[xf86-video-ati])
commit fe3ce559b7f07d39ded39abb38576846d6eb185b
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Tue Nov 1 20:27:03 2011 -0700
Build fix for -Werror=int-to-pointer-cast
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
diff --git a/src/radeon_dri.c b/src/radeon_dri.c
index f1ae65e..81dc08b 100644
--- a/src/radeon_dri.c
+++ b/src/radeon_dri.c
@@ -1581,7 +1581,7 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen)
pDRIInfo->ddxDriverMajorVersion = info->allowColorTiling ? 5 : 4;
pDRIInfo->ddxDriverMinorVersion = 3;
pDRIInfo->ddxDriverPatchVersion = 0;
- pDRIInfo->frameBufferPhysicalAddress = (void *)info->LinearAddr + info->dri->frontOffset;
+ pDRIInfo->frameBufferPhysicalAddress = (void *)(uintptr_t)info->LinearAddr + info->dri->frontOffset;
pDRIInfo->frameBufferSize = info->FbMapSize - info->FbSecureSize;
pDRIInfo->frameBufferStride = (pScrn->displayWidth *
info->CurrentLayout.pixel_bytes);
commit d3d6a5da07aaec5961e51c9a8f90c1490ee101b6
Author: Tormod Volden <debian.tormod@gmail.com>
Date: Sat Oct 29 23:08:46 2011 +0200
radeon: do not include xf86PciInfo.h
We already use atipciids.h instead most places.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
diff --git a/src/ati.c b/src/ati.c
index ea71e88..e1c136f 100644
--- a/src/ati.c
+++ b/src/ati.c
@@ -63,6 +63,7 @@
#include "atipcirename.h"
#include "ati.h"
+#include "atipciids.h"
#include "ativersion.h"
/* names duplicated from version headers */
diff --git a/src/ati.h b/src/ati.h
index 86c40a1..b7120d9 100644
--- a/src/ati.h
+++ b/src/ati.h
@@ -26,7 +26,6 @@
#include <unistd.h>
#include <stdint.h>
#include "xf86Pci.h"
-#include "xf86PciInfo.h"
#include "xf86.h"
diff --git a/src/atipciids.h b/src/atipciids.h
index 5f66aa0..04b5960 100644
--- a/src/atipciids.h
+++ b/src/atipciids.h
@@ -44,6 +44,7 @@
#ifndef PCI_VENDOR_HP
#define PCI_VENDOR_HP 0x103c
#endif
+#define PCI_VENDOR_SONY 0x104D
#include "ati_pciids_gen.h"
diff --git a/src/radeon_bios.c b/src/radeon_bios.c
index b53a0ed..5f12534 100644
--- a/src/radeon_bios.c
+++ b/src/radeon_bios.c
@@ -34,7 +34,7 @@
#include "xf86.h"
#include "xf86_OSproc.h"
-#include "xf86PciInfo.h"
+#include "atipciids.h"
#include "radeon.h"
#include "radeon_reg.h"
#include "radeon_macros.h"
diff --git a/src/radeon_dri.c b/src/radeon_dri.c
index 07f127c..f1ae65e 100644
--- a/src/radeon_dri.c
+++ b/src/radeon_dri.c
@@ -54,7 +54,6 @@
/* X and server generic header files */
#include "xf86.h"
-#include "xf86PciInfo.h"
#include "windowstr.h"
/* GLX/DRI/DRM definitions */
commit 70da7001e81363ed6ef2c4727c512daf53ae29fe
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Sat Oct 29 20:15:09 2011 -0700
Use malloc/calloc/realloc/free directly
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
diff --git a/src/theatre.c b/src/theatre.c
index ad055c5..fc68f27 100644
--- a/src/theatre.c
+++ b/src/theatre.c
@@ -46,7 +46,7 @@ TheatrePtr DetectTheatre(GENERIC_BUS_Ptr b)
return NULL;
}
- t = xcalloc(1,sizeof(TheatreRec));
+ t = calloc(1,sizeof(TheatreRec));
t->VIP = b;
t->theatre_num = -1;
t->mode=MODE_UNINITIALIZED;
@@ -81,7 +81,7 @@ TheatrePtr DetectTheatre(GENERIC_BUS_Ptr b)
if(t->theatre_num < 0)
{
- xfree(t);
+ free(t);
return NULL;
}
commit a3bb07efb1757c33d70e2e1928219d12a4dd6498
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Tue Oct 25 17:43:58 2011 +0200
EXA >= R6xx / KMS: Avoid running out of CS space at inconvenient times.
Otherwise we may end up with things not properly set up at the beginning of the
next CS.
Fixes http://bugs.debian.org/645007 .
In contrast to the Composite code for < R6xx, this isn't necessary with UMS,
as the draw packet only uses constant space in the indirect buffer, and nothing
else can mess with the 3D state between indirect buffers.
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
diff --git a/src/evergreen_exa.c b/src/evergreen_exa.c
index 306e90f..6becbb3 100644
--- a/src/evergreen_exa.c
+++ b/src/evergreen_exa.c
@@ -55,9 +55,6 @@ extern int cayman_xv_ps(RADEONChipFamily ChipSet, uint32_t* shader);
extern int cayman_comp_vs(RADEONChipFamily ChipSet, uint32_t* vs);
extern int cayman_comp_ps(RADEONChipFamily ChipSet, uint32_t* ps);
-static void
-EVERGREENDoneSolid(PixmapPtr pPix);
-
static Bool
EVERGREENPrepareSolid(PixmapPtr pPix, int alu, Pixel pm, Pixel fg)
{
@@ -205,9 +202,27 @@ EVERGREENPrepareSolid(PixmapPtr pPix, int alu, Pixel pm, Pixel fg)
if (accel_state->vsync)
RADEONVlineHelperClear(pScrn);
+ accel_state->dst_pix = pPix;
+ accel_state->fg = fg;
+
return TRUE;
}
+static void
+EVERGREENDoneSolid(PixmapPtr pPix)
+{
+ ScrnInfoPtr pScrn = xf86Screens[pPix->drawable.pScreen->myNum];
+ RADEONInfoPtr info = RADEONPTR(pScrn);
+ struct radeon_accel_state *accel_state = info->accel_state;
+
+ if (accel_state->vsync)
+ evergreen_cp_wait_vline_sync(pScrn, pPix,
+ accel_state->vline_crtc,
+ accel_state->vline_y1,
+ accel_state->vline_y2);
+
+ evergreen_finish_op(pScrn, 8);
+}
static void
EVERGREENSolid(PixmapPtr pPix, int x1, int y1, int x2, int y2)
@@ -217,6 +232,15 @@ EVERGREENSolid(PixmapPtr pPix, int x1, int y1, int x2, int y2)
struct radeon_accel_state *accel_state = info->accel_state;
float *vb;
+ if (CS_FULL(info->cs)) {
+ EVERGREENDoneSolid(info->accel_state->dst_pix);
+ radeon_cs_flush_indirect(pScrn);
+ EVERGREENPrepareSolid(accel_state->dst_pix,
+ accel_state->rop,
+ accel_state->planemask,
+ accel_state->fg);
+ }
+
if (accel_state->vsync)
RADEONVlineHelperSet(pScrn, x1, y1, x2, y2);
@@ -235,22 +259,6 @@ EVERGREENSolid(PixmapPtr pPix, int x1, int y1, int x2, int y2)
}
static void
-EVERGREENDoneSolid(PixmapPtr pPix)
-{
- ScrnInfoPtr pScrn = xf86Screens[pPix->drawable.pScreen->myNum];
- RADEONInfoPtr info = RADEONPTR(pScrn);
- struct radeon_accel_state *accel_state = info->accel_state;
-
- if (accel_state->vsync)
- evergreen_cp_wait_vline_sync(pScrn, pPix,
- accel_state->vline_crtc,
- accel_state->vline_y1,
- accel_state->vline_y2);
-
- evergreen_finish_op(pScrn, 8);
-}
-
-static void
EVERGREENDoPrepareCopy(ScrnInfoPtr pScrn)
{
RADEONInfoPtr info = RADEONPTR(pScrn);
@@ -510,10 +518,30 @@ EVERGREENPrepareCopy(PixmapPtr pSrc, PixmapPtr pDst,
if (accel_state->vsync)
RADEONVlineHelperClear(pScrn);
+ accel_state->dst_pix = pDst;
+ accel_state->src_pix = pSrc;
+ accel_state->xdir = xdir;
+ accel_state->ydir = ydir;
+
return TRUE;
}
static void
+EVERGREENDoneCopy(PixmapPtr pDst)
+{
+ ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum];
+ RADEONInfoPtr info = RADEONPTR(pScrn);
+ struct radeon_accel_state *accel_state = info->accel_state;
+
+ if (!accel_state->same_surface)
+ EVERGREENDoCopyVline(pDst);
+
+ if (accel_state->copy_area)
+ accel_state->copy_area = NULL;
+
+}
+
+static void
EVERGREENCopy(PixmapPtr pDst,
int srcX, int srcY,
int dstX, int dstY,
@@ -526,6 +554,17 @@ EVERGREENCopy(PixmapPtr pDst,
if (accel_state->same_surface && (srcX == dstX) && (srcY == dstY))
return;
+ if (CS_FULL(info->cs)) {
+ EVERGREENDoneCopy(info->accel_state->dst_pix);
+ radeon_cs_flush_indirect(pScrn);
+ EVERGREENPrepareCopy(accel_state->src_pix,
+ accel_state->dst_pix,
+ accel_state->xdir,
+ accel_state->ydir,
+ accel_state->rop,
+ accel_state->planemask);
+ }
+
if (accel_state->vsync)
RADEONVlineHelperSet(pScrn, dstX, dstY, dstX + w, dstY + h);
@@ -568,21 +607,6 @@ EVERGREENCopy(PixmapPtr pDst,
}
-static void
-EVERGREENDoneCopy(PixmapPtr pDst)
-{
- ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum];
- RADEONInfoPtr info = RADEONPTR(pScrn);
- struct radeon_accel_state *accel_state = info->accel_state;
-
- if (!accel_state->same_surface)
- EVERGREENDoCopyVline(pDst);
-
- if (accel_state->copy_area)
- accel_state->copy_area = NULL;
-
-}
-
struct blendinfo {
Bool dst_alpha;
Bool src_alpha;
@@ -1306,9 +1330,34 @@ static Bool EVERGREENPrepareComposite(int op, PicturePtr pSrcPicture,
if (accel_state->vsync)
RADEONVlineHelperClear(pScrn);
+ accel_state->composite_op = op;
+ accel_state->dst_pic = pDstPicture;
+ accel_state->src_pic = pSrcPicture;
+ accel_state->dst_pix = pDst;
+ accel_state->msk_pix = pMask;
+ accel_state->src_pix = pSrc;
+
return TRUE;
}
+static void EVERGREENDoneComposite(PixmapPtr pDst)
+{
+ ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum];
+ RADEONInfoPtr info = RADEONPTR(pScrn);
+ struct radeon_accel_state *accel_state = info->accel_state;
+ int vtx_size;
+
+ if (accel_state->vsync)
+ evergreen_cp_wait_vline_sync(pScrn, pDst,
+ accel_state->vline_crtc,
+ accel_state->vline_y1,
+ accel_state->vline_y2);
+
+ vtx_size = accel_state->msk_pic ? 24 : 16;
+
+ evergreen_finish_op(pScrn, vtx_size);
+}
+
static void EVERGREENComposite(PixmapPtr pDst,
int srcX, int srcY,
int maskX, int maskY,
@@ -1320,6 +1369,18 @@ static void EVERGREENComposite(PixmapPtr pDst,
struct radeon_accel_state *accel_state = info->accel_state;
float *vb;
+ if (CS_FULL(info->cs)) {
+ EVERGREENDoneComposite(info->accel_state->dst_pix);
+ radeon_cs_flush_indirect(pScrn);
+ EVERGREENPrepareComposite(info->accel_state->composite_op,
+ info->accel_state->src_pic,
+ info->accel_state->msk_pic,
+ info->accel_state->dst_pic,
+ info->accel_state->src_pix,
+ info->accel_state->msk_pix,
+ info->accel_state->dst_pix);
+ }
+
if (accel_state->vsync)
RADEONVlineHelperSet(pScrn, dstX, dstY, dstX + w, dstY + h);
@@ -1375,24 +1436,6 @@ static void EVERGREENComposite(PixmapPtr pDst,
}
-static void EVERGREENDoneComposite(PixmapPtr pDst)
-{
- ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum];
- RADEONInfoPtr info = RADEONPTR(pScrn);
- struct radeon_accel_state *accel_state = info->accel_state;
- int vtx_size;
-
- if (accel_state->vsync)
- evergreen_cp_wait_vline_sync(pScrn, pDst,
- accel_state->vline_crtc,
- accel_state->vline_y1,
- accel_state->vline_y2);
-
- vtx_size = accel_state->msk_pic ? 24 : 16;
-
- evergreen_finish_op(pScrn, vtx_size);
-}
-
static Bool
EVERGREENUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h,
char *src, int src_pitch)
diff --git a/src/r600_exa.c b/src/r600_exa.c
index 2673599..71e1393 100644
--- a/src/r600_exa.c
+++ b/src/r600_exa.c
@@ -132,6 +132,11 @@ R600SetAccelState(ScrnInfoPtr pScrn,
accel_state->dst_size = 0;
}
+#ifdef XF86DRM_MODE
+ if (info->cs && CS_FULL(info->cs))
+ radeon_cs_flush_indirect(pScrn);
+#endif
+
accel_state->rop = rop;
accel_state->planemask = planemask;
@@ -170,9 +175,6 @@ R600SetAccelState(ScrnInfoPtr pScrn,
return TRUE;
}
-static void
-R600DoneSolid(PixmapPtr pPix);
-
static Bool
R600PrepareSolid(PixmapPtr pPix, int alu, Pixel pm, Pixel fg)
{
@@ -318,9 +320,27 @@ R600PrepareSolid(PixmapPtr pPix, int alu, Pixel pm, Pixel fg)
if (accel_state->vsync)
RADEONVlineHelperClear(pScrn);
+ accel_state->dst_pix = pPix;
+ accel_state->fg = fg;
+
return TRUE;
}
+static void
+R600DoneSolid(PixmapPtr pPix)
+{
+ ScrnInfoPtr pScrn = xf86Screens[pPix->drawable.pScreen->myNum];
+ RADEONInfoPtr info = RADEONPTR(pScrn);
+ struct radeon_accel_state *accel_state = info->accel_state;
+
+ if (accel_state->vsync)
+ r600_cp_wait_vline_sync(pScrn, accel_state->ib, pPix,
+ accel_state->vline_crtc,
+ accel_state->vline_y1,
+ accel_state->vline_y2);
+
+ r600_finish_op(pScrn, 8);
+}
static void
R600Solid(PixmapPtr pPix, int x1, int y1, int x2, int y2)
@@ -330,6 +350,17 @@ R600Solid(PixmapPtr pPix, int x1, int y1, int x2, int y2)
struct radeon_accel_state *accel_state = info->accel_state;
float *vb;
+#ifdef XF86DRM_MODE
+ if (info->cs && CS_FULL(info->cs)) {
+ R600DoneSolid(info->accel_state->dst_pix);
+ radeon_cs_flush_indirect(pScrn);
+ R600PrepareSolid(accel_state->dst_pix,
+ accel_state->rop,
+ accel_state->planemask,
+ accel_state->fg);
+ }
+#endif
+
if (accel_state->vsync)
RADEONVlineHelperSet(pScrn, x1, y1, x2, y2);
@@ -348,22 +379,6 @@ R600Solid(PixmapPtr pPix, int x1, int y1, int x2, int y2)
}
static void
-R600DoneSolid(PixmapPtr pPix)
-{
- ScrnInfoPtr pScrn = xf86Screens[pPix->drawable.pScreen->myNum];
- RADEONInfoPtr info = RADEONPTR(pScrn);
- struct radeon_accel_state *accel_state = info->accel_state;
-
- if (accel_state->vsync)
- r600_cp_wait_vline_sync(pScrn, accel_state->ib, pPix,
- accel_state->vline_crtc,
- accel_state->vline_y1,
- accel_state->vline_y2);
-
- r600_finish_op(pScrn, 8);
-}
-
-static void
R600DoPrepareCopy(ScrnInfoPtr pScrn)
{
RADEONInfoPtr info = RADEONPTR(pScrn);
@@ -653,10 +668,33 @@ R600PrepareCopy(PixmapPtr pSrc, PixmapPtr pDst,
if (accel_state->vsync)
RADEONVlineHelperClear(pScrn);
+ accel_state->dst_pix = pDst;
+ accel_state->src_pix = pSrc;
+ accel_state->xdir = xdir;
Reply to: