rpms/xorg-x11-drv-ati/devel radeon-6.11.0-git.patch, 1.1, 1.2 radeon-modeset.patch, 1.32, 1.33 xorg-x11-drv-ati.spec, 1.150, 1.151
Dave Airlie
airlied at fedoraproject.org
Mon Mar 2 23:42:19 UTC 2009
Author: airlied
Update of /cvs/pkgs/rpms/xorg-x11-drv-ati/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv5987
Modified Files:
radeon-6.11.0-git.patch radeon-modeset.patch
xorg-x11-drv-ati.spec
Log Message:
* Tue Mar 03 2009 Dave Airlie <airlied at redhat.com> 6.11.0-2
- rebase to latest upstream r600 accel
- fixup VT switch on DRI2
radeon-6.11.0-git.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.1 -r 1.2 radeon-6.11.0-git.patch
Index: radeon-6.11.0-git.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/devel/radeon-6.11.0-git.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- radeon-6.11.0-git.patch 27 Feb 2009 03:57:32 -0000 1.1
+++ radeon-6.11.0-git.patch 2 Mar 2009 23:42:19 -0000 1.2
@@ -1,5 +1,5 @@
diff --git a/configure.ac b/configure.ac
-index 0523cc0..28207d6 100644
+index 0523cc0..b094a50 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
@@ -11,34 +11,8 @@
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-video-ati)
-@@ -129,7 +129,7 @@ if test "x$EXA" = xyes; then
- AC_MSG_RESULT(yes)
-
- SAVE_CPPFLAGS="$CPPFLAGS"
-- CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
-+ CPPFLAGS="$CPPFLAGS $XORG_CFLAGS -DEXA_DRIVER_KNOWN_MAJOR=3"
- AC_CHECK_HEADER(exa.h,
- [have_exa_h="yes"], [have_exa_h="no"])
- CPPFLAGS="$SAVE_CPPFLAGS"
-@@ -138,7 +138,7 @@ else
- fi
-
- SAVE_CPPFLAGS="$CPPFLAGS"
--CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
-+CPPFLAGS="$CPPFLAGS $XORG_CFLAGS -DEXA_DRIVER_KNOWN_MAJOR=3"
- if test "x$have_exa_h" = xyes; then
- AC_MSG_CHECKING([whether EXA version is at least 2.0.0])
- AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
-@@ -153,6 +153,7 @@ if test "x$have_exa_h" = xyes; then
-
- if test "x$USE_EXA" = xyes; then
- AC_DEFINE(USE_EXA, 1, [Build support for Exa])
-+ AC_DEFINE(EXA_DRIVER_KNOWN_MAJOR, 3, [Major version of EXA we know how to handle])
- fi
- fi
-
diff --git a/src/Makefile.am b/src/Makefile.am
-index c15cc30..7ff7d31 100644
+index c15cc30..7cc2a6f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -66,7 +66,7 @@ XMODE_SRCS=\
@@ -46,7 +20,7 @@
if USE_EXA
-RADEON_EXA_SOURCES = radeon_exa.c
-+RADEON_EXA_SOURCES = radeon_exa.c r600_exa.c r6xx_accel.c r600_textured_videofuncs.c
++RADEON_EXA_SOURCES = radeon_exa.c r600_exa.c r6xx_accel.c r600_textured_videofuncs.c r600_shader.c
endif
AM_CFLAGS = @XORG_CFLAGS@ @DRI_CFLAGS@ @XMODES_CFLAGS@ -DDISABLE_EASF -DENABLE_ALL_SERVICE_FUNCTIONS -DATOM_BIOS -DATOM_BIOS_PARSER -DDRIVER_PARSER
@@ -63,12 +37,24 @@
ati.h \
ativersion.h \
bicubic_table.h \
+diff --git a/src/atipciids.h b/src/atipciids.h
+index 7735e93..47c03c7 100644
+--- a/src/atipciids.h
++++ b/src/atipciids.h
+@@ -34,6 +34,7 @@
+ #define _ATIPCIIDS_H
+
+ /* PCI Vendor */
++#define PCI_VENDOR_ASUS 0x1043
+ #define PCI_VENDOR_ATI 0x1002
+ #define PCI_VENDOR_IBM 0x1014
+ #define PCI_VENDOR_AMD 0x1022
diff --git a/src/r600_exa.c b/src/r600_exa.c
new file mode 100644
-index 0000000..17c5567
+index 0000000..3a4dc8d
--- /dev/null
+++ b/src/r600_exa.c
-@@ -0,0 +1,4441 @@
+@@ -0,0 +1,2128 @@
+/*
+ * Copyright 2008 Advanced Micro Devices, Inc.
+ *
@@ -105,6 +91,7 @@
+
+#include "radeon.h"
+#include "radeon_macros.h"
++#include "radeon_reg.h"
+#include "r600_shader.h"
+#include "r600_reg.h"
+#include "r600_state.h"
@@ -112,7 +99,7 @@
+extern PixmapPtr
+RADEONGetDrawablePixmap(DrawablePtr pDrawable);
+
-+//#define SHOW_VERTEXES
++/* #define SHOW_VERTEXES */
+
+# define RADEON_ROP3_ZERO 0x00000000
+# define RADEON_ROP3_DSa 0x00880000
@@ -173,11 +160,11 @@
+ accel_state->dst_size = exaGetPixmapPitch(pPix) * pPix->drawable.height;
+ accel_state->dst_pitch = exaGetPixmapPitch(pPix) / (pPix->drawable.bitsPerPixel / 8);
+
-+ // bad pitch
++ /* bad pitch */
+ if (accel_state->dst_pitch & 7)
+ return FALSE;
+
-+ // bad offset
++ /* bad offset */
+ if (accel_state->dst_mc_addr & 0xff)
+ return FALSE;
+
@@ -188,7 +175,7 @@
+ CLEAR (vs_conf);
+ CLEAR (ps_conf);
+
-+ //return FALSE;
++ /* return FALSE; */
+
+#ifdef SHOW_VERTEXES
+ ErrorF("%dx%d @ %dbpp, 0x%08x\n", pPix->drawable.width, pPix->drawable.height,
@@ -200,13 +187,11 @@
+ /* Init */
+ start_3d(pScrn, accel_state->ib);
+
-+ //cp_set_surface_sync(pScrn, accel_state->ib);
-+
+ set_default_state(pScrn, accel_state->ib);
+
+ /* Scissor / viewport */
-+ ereg (accel_state->ib, PA_CL_VTE_CNTL, VTX_XY_FMT_bit);
-+ ereg (accel_state->ib, PA_CL_CLIP_CNTL, CLIP_DISABLE_bit);
++ EREG(accel_state->ib, PA_CL_VTE_CNTL, VTX_XY_FMT_bit);
++ EREG(accel_state->ib, PA_CL_CLIP_CNTL, CLIP_DISABLE_bit);
+
+ accel_state->vs_mc_addr = info->fbLocation + pScrn->fbOffset + accel_state->shaders->offset +
+ accel_state->solid_vs_offset;
@@ -240,17 +225,16 @@
+
+ /* Render setup */
+ if (pm & 0x000000ff)
-+ pmask |= 4; //B
++ pmask |= 4; /* B */
+ if (pm & 0x0000ff00)
-+ pmask |= 2; //G
++ pmask |= 2; /* G */
+ if (pm & 0x00ff0000)
-+ pmask |= 1; //R
++ pmask |= 1; /* R */
+ if (pm & 0xff000000)
-+ pmask |= 8; //A
-+ ereg (accel_state->ib, CB_SHADER_MASK, (pmask << OUTPUT0_ENABLE_shift));
-+ ereg (accel_state->ib, R7xx_CB_SHADER_CONTROL, (RT0_ENABLE_bit));
-+ ereg (accel_state->ib, CB_COLOR_CONTROL, RADEON_ROP[alu]);
-+
++ pmask |= 8; /* A */
++ EREG(accel_state->ib, CB_SHADER_MASK, (pmask << OUTPUT0_ENABLE_shift));
++ EREG(accel_state->ib, R7xx_CB_SHADER_CONTROL, (RT0_ENABLE_bit));
++ EREG(accel_state->ib, CB_COLOR_CONTROL, RADEON_ROP[alu]);
+
+ cb_conf.id = 0;
+ cb_conf.w = accel_state->dst_pitch;
@@ -259,67 +243,68 @@
+
+ if (pPix->drawable.bitsPerPixel == 8) {
+ cb_conf.format = COLOR_8;
-+ cb_conf.comp_swap = 3; //A
++ cb_conf.comp_swap = 3; /* A */
+ } else if (pPix->drawable.bitsPerPixel == 16) {
+ cb_conf.format = COLOR_5_6_5;
-+ cb_conf.comp_swap = 2; //RGB
++ cb_conf.comp_swap = 2; /* RGB */
+ } else {
+ cb_conf.format = COLOR_8_8_8_8;
-+ cb_conf.comp_swap = 1; //ARGB
++ cb_conf.comp_swap = 1; /* ARGB */
+ }
+ cb_conf.source_format = 1;
+ cb_conf.blend_clamp = 1;
+ set_render_target(pScrn, accel_state->ib, &cb_conf);
+
-+ ereg (accel_state->ib, PA_SU_SC_MODE_CNTL, (FACE_bit |
-+ (POLYMODE_PTYPE__TRIANGLES << POLYMODE_FRONT_PTYPE_shift) |
-+ (POLYMODE_PTYPE__TRIANGLES << POLYMODE_BACK_PTYPE_shift)));
-+ ereg (accel_state->ib, DB_SHADER_CONTROL, ((1 << Z_ORDER_shift) | /* EARLY_Z_THEN_LATE_Z */
-+ DUAL_EXPORT_ENABLE_bit)); /* Only useful if no depth export */
++ EREG(accel_state->ib, PA_SU_SC_MODE_CNTL, (FACE_bit |
++ (POLYMODE_PTYPE__TRIANGLES << POLYMODE_FRONT_PTYPE_shift) |
++ (POLYMODE_PTYPE__TRIANGLES << POLYMODE_BACK_PTYPE_shift)));
++ EREG(accel_state->ib, DB_SHADER_CONTROL, ((1 << Z_ORDER_shift) | /* EARLY_Z_THEN_LATE_Z */
++ DUAL_EXPORT_ENABLE_bit)); /* Only useful if no depth export */
+
+ /* Interpolator setup */
-+ // one unused export from VS (VS_EXPORT_COUNT is zero based, count minus one)
[...7293 lines suppressed...]
+ /* Intel 82830 830 Chipset Host Bridge / Mobility M6 LY Needs AGPMode 2 (fdo #17360)*/
+ { PCI_VENDOR_INTEL,0x3575, PCI_VENDOR_ATI,0x4c59, PCI_VENDOR_DELL,0x00e3, 2 },
++ /* Intel 82852/82855 host bridge / Mobility FireGL 9000 R250 Needs AGPMode 1 (lp #296617) */
++ { PCI_VENDOR_INTEL,0x3580, PCI_VENDOR_ATI,0x4c66, PCI_VENDOR_DELL,0x0149, 1 },
+ /* Intel 82852/82855 host bridge / Mobility 9600 M10 RV350 Needs AGPMode 1 (deb #467460) */
+- { PCI_VENDOR_INTEL,0x3580, PCI_VENDOR_ATI,0x4e50, 0x1025,0x0061, 1 },
++ { PCI_VENDOR_INTEL,0x3580, PCI_VENDOR_ATI,0x4e50, 0x1025,0x0061, 1 },
+ /* Intel 82852/82855 host bridge / Mobility 9600 M10 RV350 Needs AGPMode 1 (lp #203007) */
+- { PCI_VENDOR_INTEL,0x3580, PCI_VENDOR_ATI,0x4e50, 0x1025,0x0064, 1 },
++ { PCI_VENDOR_INTEL,0x3580, PCI_VENDOR_ATI,0x4e50, 0x1025,0x0064, 1 },
+ /* Intel 82852/82855 host bridge / Mobility 9600 M10 RV350 Needs AGPMode 1 (lp #141551) */
+- { PCI_VENDOR_INTEL,0x3580, PCI_VENDOR_ATI,0x4e50, 0x1043,0x1942, 1 },
+- /* Intel 82852/82855 host bridge / Mobility FireGL 9000 R250 Needs AGPMode 1 (lp #296617) */
+- { PCI_VENDOR_INTEL,0x3580, PCI_VENDOR_ATI,0x4c66, 0x1028,0x0149, 1 },
++ { PCI_VENDOR_INTEL,0x3580, PCI_VENDOR_ATI,0x4e50, PCI_VENDOR_ASUS,0x1942, 1 },
+ /* Intel 82852/82855 host bridge / Mobility 9600/9700 Needs AGPMode 1 (deb #510208) */
+- { PCI_VENDOR_INTEL,0x3580, PCI_VENDOR_ATI,0x4e50, 0x10cf,0x127f, 1 },
++ { PCI_VENDOR_INTEL,0x3580, PCI_VENDOR_ATI,0x4e50, 0x10cf,0x127f, 1 },
+
+- /* ASRock K7VT4A+ AGP 8x / ATI Radeon 9250 AGP Needs AGPMode 4 (LP: #133192) */
+- { 0x1849,0x3189, PCI_VENDOR_ATI,0x5960, 0x1787, 0x5960, 4 },
++ /* ASRock K7VT4A+ AGP 8x / ATI Radeon 9250 AGP Needs AGPMode 4 (lp #133192) */
++ { 0x1849,0x3189, PCI_VENDOR_ATI,0x5960, 0x1787,0x5960, 4 },
+
++ /* VIA K8M800 Host Bridge / RV280 [Radeon 9200 PRO] Needs AGPMode 4 (fdo #12544) */
++ { PCI_VENDOR_VIA,0x0204, PCI_VENDOR_ATI,0x5960, 0x17af,0x2020, 4 },
++ /* VIA KT880 Host Bridge / RV350 [Radeon 9550] Needs AGPMode 4 (fdo #19981) */
++ { PCI_VENDOR_VIA,0x0269, PCI_VENDOR_ATI,0x4153, PCI_VENDOR_ASUS,0x003c, 4 },
+ /* VIA VT8363 Host Bridge / R200 QL [Radeon 8500] Needs AGPMode 2 (lp #141551) */
+- { 0x1106,0x0305, PCI_VENDOR_ATI,0x514c, 0x1002,0x013a, 2 },
++ { PCI_VENDOR_VIA,0x0305, PCI_VENDOR_ATI,0x514c, PCI_VENDOR_ATI,0x013a, 2 },
++ /* VIA VT82C693A Host Bridge / RV280 [Radeon 9200 PRO] Needs AGPMode 2 (deb #515512) */
++ { PCI_VENDOR_VIA,0x0691, PCI_VENDOR_ATI,0x5960, PCI_VENDOR_ASUS,0x004c, 2 },
++ /* VIA VT82C693A Host Bridge / RV280 [Radeon 9200 PRO] Needs AGPMode 2 */
++ { PCI_VENDOR_VIA,0x0691, PCI_VENDOR_ATI,0x5960, PCI_VENDOR_ASUS,0x0054, 2 },
+ /* VIA VT8377 Host Bridge / R200 QM [Radeon 9100] Needs AGPMode 4 (deb #461144) */
+- { 0x1106,0x3189, PCI_VENDOR_ATI,0x514d, 0x174b,0x7149, 4 },
++ { PCI_VENDOR_VIA,0x3189, PCI_VENDOR_ATI,0x514d, 0x174b,0x7149, 4 },
+ /* VIA VT8377 Host Bridge / RV280 [Radeon 9200 PRO] Needs AGPMode 4 (lp #312693) */
+- { 0x1106,0x3189, PCI_VENDOR_ATI,0x5960, 0x1462,0x0380, 4 },
++ { PCI_VENDOR_VIA,0x3189, PCI_VENDOR_ATI,0x5960, 0x1462,0x0380, 4 },
+ /* VIA VT8377 Host Bridge / RV280 Needs AGPMode 4 (ati ML) */
+- { 0x1106,0x3189, PCI_VENDOR_ATI,0x5964, 0x148c,0x2073, 4 },
+- /* VIA VT82C693A Host Bridge / RV280 [Radeon 9200 PRO] Needs AGPMode 2 */
+- { 0x1106,0x0691, PCI_VENDOR_ATI,0x5960, 0x1043,0x0054, 2 },
+- /* VIA VT82C693A Host Bridge / RV280 [Radeon 9200 PRO] Needs AGPMode 2 (deb #515512) */
+- { 0x1106,0x0691, PCI_VENDOR_ATI,0x5960, 0x1043,0x004c, 2 },
+- /* VIA K8M800 Host Bridge / RV280 [Radeon 9200 PRO] Needs AGPMode 4 (fdo #12544) */
+- { 0x1106,0x0204, PCI_VENDOR_ATI,0x5960, 0x17af,0x2020, 4 },
+- /* VIA KT880 Host Bridge / RV350 [Radeon 9550] Needs AGPMode 4 (fdo #19981) */
+- { 0x1106,0x0269, PCI_VENDOR_ATI,0x4153, 0x1043,0x003c, 4 },
++ { PCI_VENDOR_VIA,0x3189, PCI_VENDOR_ATI,0x5964, 0x148c,0x2073, 4 },
+
+ /* ATI Host Bridge / RV280 [M9+] Needs AGPMode 1 (phoronix forum) */
+- { 0x1002,0xcbb2, PCI_VENDOR_ATI,0x5c61, 0x104d,0x8175, 1 },
++ { PCI_VENDOR_ATI,0xcbb2, PCI_VENDOR_ATI,0x5c61, PCI_VENDOR_SONY,0x8175, 1 },
++
++ /* HP Host Bridge / R300 [FireGL X1] Needs AGPMode 2 (fdo #7770) */
++ { PCI_VENDOR_HP,0x122e, PCI_VENDOR_ATI,0x4e47, PCI_VENDOR_ATI,0x0152, 2 },
+
+ { 0, 0, 0, 0, 0, 0, 0 },
+ };
+@@ -790,92 +800,96 @@ static Bool RADEONSetAgpMode(RADEONInfoPtr info, ScreenPtr pScreen)
unsigned long mode = drmAgpGetMode(info->dri->drmFD); /* Default mode */
unsigned int vendor = drmAgpVendorId(info->dri->drmFD);
unsigned int device = drmAgpDeviceId(info->dri->drmFD);
@@ -11481,7 +11089,7 @@
xf86DrvMsg(pScreen->myNum, X_INFO,
"[agp] Mode 0x%08lx [AGP 0x%04x/0x%04x; Card 0x%04x/0x%04x 0x%04x/0x%04x]\n",
-@@ -910,6 +915,9 @@ static void RADEONSetAgpBase(RADEONInfoPtr info, ScreenPtr pScreen)
+@@ -910,6 +924,9 @@ static void RADEONSetAgpBase(RADEONInfoPtr info, ScreenPtr pScreen)
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
unsigned char *RADEONMMIO = info->MMIO;
@@ -11491,7 +11099,7 @@
/* drm already does this, so we can probably remove this.
* agp_base_2 ?
*/
-@@ -1183,13 +1191,14 @@ static int RADEONDRIKernelInit(RADEONInfoPtr info, ScreenPtr pScreen)
+@@ -1183,13 +1200,14 @@ static int RADEONDRIKernelInit(RADEONInfoPtr info, ScreenPtr pScreen)
drm_radeon_init_t drmInfo;
memset(&drmInfo, 0, sizeof(drm_radeon_init_t));
@@ -11512,7 +11120,7 @@
drmInfo.sarea_priv_offset = sizeof(XF86DRISAREARec);
drmInfo.is_pci = (info->cardType!=CARD_AGP);
-@@ -1223,7 +1232,8 @@ static int RADEONDRIKernelInit(RADEONInfoPtr info, ScreenPtr pScreen)
+@@ -1223,7 +1241,8 @@ static int RADEONDRIKernelInit(RADEONInfoPtr info, ScreenPtr pScreen)
* registers back to their default values, so we need to restore
* those engine register here.
*/
@@ -11522,7 +11130,7 @@
return TRUE;
}
-@@ -1299,14 +1309,16 @@ static void RADEONDRIIrqInit(RADEONInfoPtr info, ScreenPtr pScreen)
+@@ -1299,14 +1318,16 @@ static void RADEONDRIIrqInit(RADEONInfoPtr info, ScreenPtr pScreen)
"[drm] falling back to irq-free operation\n");
info->dri->irq = 0;
} else {
@@ -11547,7 +11155,7 @@
}
}
-@@ -1840,7 +1852,8 @@ void RADEONDRIResume(ScreenPtr pScreen)
+@@ -1840,7 +1861,8 @@ void RADEONDRIResume(ScreenPtr pScreen)
/* FIXME: return? */
}
@@ -12033,19 +11641,10 @@
static Bool RADEONPrepareAccess(PixmapPtr pPix, int index)
{
diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
-index cd97cc6..dec0285 100644
+index cd97cc6..59cb46f 100644
--- a/src/radeon_exa_funcs.c
+++ b/src/radeon_exa_funcs.c
-@@ -56,8 +56,6 @@
-
- #include "radeon.h"
-
--#include "exa.h"
--
- static int
- FUNC_NAME(RADEONMarkSync)(ScreenPtr pScreen)
- {
-@@ -129,7 +127,8 @@ FUNC_NAME(RADEONSolid)(PixmapPtr pPix, int x1, int y1, int x2, int y2)
+@@ -129,7 +129,8 @@ FUNC_NAME(RADEONSolid)(PixmapPtr pPix, int x1, int y1, int x2, int y2)
TRACE;
@@ -12055,7 +11654,7 @@
BEGIN_ACCEL(2);
OUT_ACCEL_REG(RADEON_DST_Y_X, (y1 << 16) | x1);
-@@ -230,7 +229,8 @@ FUNC_NAME(RADEONCopy)(PixmapPtr pDst,
+@@ -230,7 +231,8 @@ FUNC_NAME(RADEONCopy)(PixmapPtr pDst,
dstY += h - 1;
}
@@ -12065,7 +11664,7 @@
BEGIN_ACCEL(3);
-@@ -281,7 +281,8 @@ RADEONUploadToScreenCP(PixmapPtr pDst, int x, int y, int w, int h,
+@@ -281,7 +283,8 @@ RADEONUploadToScreenCP(PixmapPtr pDst, int x, int y, int w, int h,
RADEON_SWITCH_TO_2D();
@@ -12075,6 +11674,16 @@
while ((buf = RADEONHostDataBlit(pScrn,
cpp, w, dst_pitch_off, &buf_pitch,
+@@ -476,6 +479,9 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
+ #endif /* X_BYTE_ORDER == X_BIG_ENDIAN */
+
+ info->accel_state->exa->flags = EXA_OFFSCREEN_PIXMAPS;
++#ifdef EXA_SUPPORTS_PREPARE_AUX
++ info->accel_state->exa->flags |= EXA_SUPPORTS_PREPARE_AUX;
++#endif
+ info->accel_state->exa->pixmapOffsetAlign = RADEON_BUFFER_ALIGN + 1;
+ info->accel_state->exa->pixmapPitchAlign = 64;
+
diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c
index c44502c..571204a 100644
--- a/src/radeon_exa_render.c
@@ -12201,20 +11810,10 @@
range[0] = 0; /* off */
diff --git a/src/radeon_probe.h b/src/radeon_probe.h
-index 447ef57..49044e3 100644
+index 447ef57..f072b9c 100644
--- a/src/radeon_probe.h
+++ b/src/radeon_probe.h
-@@ -43,9 +43,6 @@
-
- #include "xf86Crtc.h"
-
--#ifdef USE_EXA
--#include "exa.h"
--#endif
- #ifdef USE_XAA
- #include "xaa.h"
- #endif
-@@ -373,7 +370,7 @@ struct avivo_state
+@@ -373,7 +373,7 @@ struct avivo_state
/* dvoa */
uint32_t dvoa[16];
@@ -12223,7 +11822,7 @@
uint32_t fmt1[18];
uint32_t fmt2[18];
uint32_t dig1[19];
-@@ -384,9 +381,15 @@ struct avivo_state
+@@ -384,9 +384,15 @@ struct avivo_state
uint32_t aux_cntl2[14];
uint32_t aux_cntl3[14];
uint32_t aux_cntl4[14];
radeon-modeset.patch:
Index: radeon-modeset.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/devel/radeon-modeset.patch,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- radeon-modeset.patch 27 Feb 2009 03:57:32 -0000 1.32
+++ radeon-modeset.patch 2 Mar 2009 23:42:19 -0000 1.33
@@ -1,5 +1,5 @@
diff --git a/configure.ac b/configure.ac
-index 28207d6..051eca8 100644
+index b094a50..29a19e3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -114,8 +114,19 @@ if test "$DRI" = yes; then
@@ -23,7 +23,7 @@
CFLAGS="$XORG_CFLAGS"
AC_CHECK_HEADER(xf86Modes.h,[XMODES=yes],[XMODES=no],[#include "xorg-server.h"])
diff --git a/src/Makefile.am b/src/Makefile.am
-index 7ff7d31..c03a2c7 100644
+index 7cc2a6f..8a55d1c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -90,12 +90,14 @@ radeon_drv_ladir = @moduledir@/drivers
@@ -1012,7 +1012,7 @@
+#endif
+#endif
diff --git a/src/radeon.h b/src/radeon.h
-index a7ed95e..69e41a6 100644
+index 355a949..9cdc12a 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -46,6 +46,8 @@
@@ -1118,7 +1118,7 @@
int fbX;
int fbY;
int backX;
-@@ -817,6 +852,7 @@ typedef struct {
+@@ -783,6 +818,7 @@ typedef struct {
RADEONCardType cardType; /* Current card is a PCI card */
struct radeon_cp *cp;
struct radeon_dri *dri;
@@ -1126,7 +1126,7 @@
#ifdef USE_EXA
Bool accelDFS;
#endif
-@@ -918,6 +954,44 @@ typedef struct {
+@@ -884,6 +920,44 @@ typedef struct {
int virtualX;
int virtualY;
@@ -1171,7 +1171,7 @@
} RADEONInfoRec, *RADEONInfoPtr;
#define RADEONWaitForFifo(pScrn, entries) \
-@@ -1170,6 +1244,23 @@ extern void
+@@ -1136,6 +1210,23 @@ extern void
radeon_legacy_free_memory(ScrnInfoPtr pScrn,
void *mem_struct);
@@ -1195,7 +1195,7 @@
#ifdef XF86DRI
# ifdef USE_XAA
/* radeon_accelfuncs.c */
-@@ -1188,7 +1279,9 @@ do { \
+@@ -1154,7 +1245,9 @@ do { \
#define RADEONCP_RELEASE(pScrn, info) \
do { \
@@ -1206,7 +1206,7 @@
RADEON_PURGE_CACHE(); \
RADEON_WAIT_UNTIL_IDLE(); \
RADEONCPReleaseIndirect(pScrn); \
-@@ -1223,7 +1316,7 @@ do { \
+@@ -1189,7 +1282,7 @@ do { \
#define RADEONCP_REFRESH(pScrn, info) \
do { \
@@ -1215,7 +1215,7 @@
if (info->cp->needCacheFlush) { \
RADEON_PURGE_CACHE(); \
RADEON_PURGE_ZCACHE(); \
-@@ -1250,6 +1343,13 @@ do { \
+@@ -1216,6 +1309,13 @@ do { \
#define RING_LOCALS uint32_t *__head = NULL; int __expected; int __count = 0
#define BEGIN_RING(n) do { \
@@ -1229,7 +1229,7 @@
if (RADEON_VERBOSE) { \
xf86DrvMsg(pScrn->scrnIndex, X_INFO, \
"BEGIN_RING(%d) in %s\n", (unsigned int)n, __FUNCTION__);\
-@@ -1262,13 +1362,6 @@ do { \
+@@ -1228,13 +1328,6 @@ do { \
} \
info->cp->dma_debug_func = __FILE__; \
info->cp->dma_debug_lineno = __LINE__; \
@@ -1243,7 +1243,7 @@
__expected = n; \
__head = (pointer)((char *)info->cp->indirectBuffer->address + \
info->cp->indirectBuffer->used); \
-@@ -1311,6 +1404,14 @@ do { \
+@@ -1277,6 +1370,14 @@ do { \
OUT_RING(val); \
} while (0)
@@ -2481,7 +2481,7 @@
xf86CrtcPtr crtc = xf86_config->crtc[c];
RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
diff --git a/src/radeon_dri.c b/src/radeon_dri.c
-index 45c927f..b9641a8 100644
+index 45f79ed..0b1f7d8 100644
--- a/src/radeon_dri.c
+++ b/src/radeon_dri.c
@@ -40,6 +40,8 @@
@@ -2493,16 +2493,16 @@
/* Driver data structures */
#include "radeon.h"
-@@ -51,6 +53,8 @@
- #include "radeon_dri.h"
- #include "radeon_version.h"
+@@ -53,6 +55,8 @@
+
+ #include "atipciids.h"
+#include "radeon_drm.h"
+
/* X and server generic header files */
#include "xf86.h"
#include "xf86PciInfo.h"
-@@ -68,16 +72,31 @@ static size_t radeon_drm_page_size;
+@@ -70,16 +74,31 @@ static size_t radeon_drm_page_size;
extern void GlxSetVisualConfigs(int nconfigs, __GLXvisualConfig *configs,
void **configprivs);
@@ -2536,7 +2536,7 @@
static void RADEONDRIClipNotify(ScreenPtr pScreen, WindowPtr *ppWin, int num);
#endif
#endif
-@@ -350,6 +369,129 @@ static void RADEONDestroyContext(ScreenPtr pScreen, drm_context_t hwContext,
+@@ -352,6 +371,133 @@ static void RADEONDestroyContext(ScreenPtr pScreen, drm_context_t hwContext,
#endif
}
@@ -2645,7 +2645,7 @@
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ RADEONInfoPtr info = RADEONPTR(pScrn);
+ Bool success;
-+ drm_radeon_sarea_t * sarea = DRIGetSAREAPrivate(pScreen);
++ drm_radeon_sarea_t *sarea;
+
+ if (info->ChipFamily >= CHIP_FAMILY_R600)
+ return TRUE;
@@ -2653,6 +2653,10 @@
+ if (!info->drm_mm)
+ return TRUE;
+
++ if (info->dri2.enabled)
++ return TRUE;
++
++ sarea = DRIGetSAREAPrivate(pScreen);
+ success = radeon_update_dri_mappings(pScrn, sarea);
+
+ if (!success)
@@ -2666,7 +2670,7 @@
/* Called when the X server is woken up to allow the last client's
* context to be saved and the X server's context to be loaded. This is
* not necessary for the Radeon since the client detects when it's
-@@ -699,25 +841,35 @@ static void RADEONDRIInitGARTValues(RADEONInfoPtr info)
+@@ -701,25 +847,35 @@ static void RADEONDRIInitGARTValues(RADEONInfoPtr info)
info->dri->gartOffset = 0;
@@ -2721,7 +2725,7 @@
}
/* AGP Mode Quirk List - Certain hostbridge/gfx-card combos don't work with
-@@ -979,6 +1131,8 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
+@@ -988,6 +1144,8 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
"[agp] ring handle = 0x%08x\n",
(unsigned int)info->dri->ringHandle);
@@ -2730,7 +2734,7 @@
if (drmMap(info->dri->drmFD, info->dri->ringHandle, info->dri->ringMapSize,
&info->dri->ring) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR, "[agp] Could not map ring\n");
-@@ -987,9 +1141,10 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
+@@ -996,9 +1154,10 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
xf86DrvMsg(pScreen->myNum, X_INFO,
"[agp] Ring mapped at 0x%08lx\n",
(unsigned long)info->dri->ring);
@@ -2742,7 +2746,7 @@
xf86DrvMsg(pScreen->myNum, X_ERROR,
"[agp] Could not add ring read ptr mapping\n");
return FALSE;
-@@ -998,6 +1153,8 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
+@@ -1007,6 +1166,8 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
"[agp] ring read ptr handle = 0x%08x\n",
(unsigned int)info->dri->ringReadPtrHandle);
@@ -2751,7 +2755,7 @@
if (drmMap(info->dri->drmFD, info->dri->ringReadPtrHandle, info->dri->ringReadMapSize,
&info->dri->ringReadPtr) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR,
-@@ -1007,6 +1164,7 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
+@@ -1016,6 +1177,7 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
xf86DrvMsg(pScreen->myNum, X_INFO,
"[agp] Ring read ptr mapped at 0x%08lx\n",
(unsigned long)info->dri->ringReadPtr);
@@ -2759,7 +2763,7 @@
if (drmAddMap(info->dri->drmFD, info->dri->bufStart, info->dri->bufMapSize,
DRM_AGP, 0, &info->dri->bufHandle) < 0) {
-@@ -1084,6 +1242,7 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
+@@ -1093,6 +1255,7 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
"[pci] ring handle = 0x%08x\n",
(unsigned int)info->dri->ringHandle);
@@ -2767,7 +2771,7 @@
if (drmMap(info->dri->drmFD, info->dri->ringHandle, info->dri->ringMapSize,
&info->dri->ring) < 0) {
xf86DrvMsg(pScreen->myNum, X_ERROR, "[pci] Could not map ring\n");
-@@ -1095,6 +1254,7 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
+@@ -1104,6 +1267,7 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
xf86DrvMsg(pScreen->myNum, X_INFO,
"[pci] Ring contents 0x%08lx\n",
*(unsigned long *)(pointer)info->dri->ring);
@@ -2775,7 +2779,7 @@
if (drmAddMap(info->dri->drmFD, info->dri->ringReadOffset, info->dri->ringReadMapSize,
DRM_SCATTER_GATHER, flags, &info->dri->ringReadPtrHandle) < 0) {
-@@ -1106,8 +1266,10 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
+@@ -1115,8 +1279,10 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
"[pci] ring read ptr handle = 0x%08x\n",
(unsigned int)info->dri->ringReadPtrHandle);
@@ -2786,7 +2790,7 @@
xf86DrvMsg(pScreen->myNum, X_ERROR,
"[pci] Could not map ring read ptr\n");
return FALSE;
-@@ -1118,6 +1280,7 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
+@@ -1127,6 +1293,7 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
xf86DrvMsg(pScreen->myNum, X_INFO,
"[pci] Ring read ptr contents 0x%08lx\n",
*(unsigned long *)(pointer)info->dri->ringReadPtr);
@@ -2794,7 +2798,7 @@
if (drmAddMap(info->dri->drmFD, info->dri->bufStart, info->dri->bufMapSize,
DRM_SCATTER_GATHER, 0, &info->dri->bufHandle) < 0) {
-@@ -1170,6 +1333,9 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
+@@ -1179,6 +1346,9 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
*/
static Bool RADEONDRIMapInit(RADEONInfoPtr info, ScreenPtr pScreen)
{
@@ -2804,7 +2808,7 @@
/* Map registers */
info->dri->registerSize = info->MMIOSize;
if (drmAddMap(info->dri->drmFD, info->MMIOAddr, info->dri->registerSize,
-@@ -1210,20 +1376,23 @@ static int RADEONDRIKernelInit(RADEONInfoPtr info, ScreenPtr pScreen)
+@@ -1219,20 +1389,23 @@ static int RADEONDRIKernelInit(RADEONInfoPtr info, ScreenPtr pScreen)
drmInfo.fb_bpp = info->CurrentLayout.pixel_code;
drmInfo.depth_bpp = (info->dri->depthBits - 8) * 2;
@@ -2842,7 +2846,7 @@
if (drmCommandWrite(info->dri->drmFD, DRM_RADEON_CP_INIT,
&drmInfo, sizeof(drm_radeon_init_t)) < 0)
return FALSE;
-@@ -1232,8 +1401,9 @@ static int RADEONDRIKernelInit(RADEONInfoPtr info, ScreenPtr pScreen)
+@@ -1241,8 +1414,9 @@ static int RADEONDRIKernelInit(RADEONInfoPtr info, ScreenPtr pScreen)
* registers back to their default values, so we need to restore
* those engine register here.
*/
@@ -2854,7 +2858,7 @@
return TRUE;
}
-@@ -1431,12 +1601,11 @@ Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn)
+@@ -1440,12 +1614,11 @@ Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn)
/* Get DRM version & close DRM */
info->dri->pKernelDRMVersion = drmGetVersion(fd);
@@ -2868,7 +2872,7 @@
}
/* Now check if we qualify */
-@@ -1470,10 +1639,29 @@ Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn)
+@@ -1479,10 +1652,29 @@ Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn)
req_patch);
drmFreeVersion(info->dri->pKernelDRMVersion);
info->dri->pKernelDRMVersion = NULL;
@@ -2899,7 +2903,7 @@
}
Bool RADEONDRISetVBlankInterrupt(ScrnInfoPtr pScrn, Bool on)
-@@ -1482,6 +1670,9 @@ Bool RADEONDRISetVBlankInterrupt(ScrnInfoPtr pScrn, Bool on)
+@@ -1491,6 +1683,9 @@ Bool RADEONDRISetVBlankInterrupt(ScrnInfoPtr pScrn, Bool on)
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
int value = 0;
@@ -2909,7 +2913,7 @@
if (!info->want_vblank_interrupts)
on = FALSE;
-@@ -1501,6 +1692,48 @@ Bool RADEONDRISetVBlankInterrupt(ScrnInfoPtr pScrn, Bool on)
+@@ -1510,6 +1705,48 @@ Bool RADEONDRISetVBlankInterrupt(ScrnInfoPtr pScrn, Bool on)
return TRUE;
}
@@ -2958,7 +2962,7 @@
/* Initialize the screen-specific data structures for the DRI and the
* Radeon. This is the main entry point to the device-specific
-@@ -1564,10 +1797,22 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen)
+@@ -1573,10 +1810,22 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen)
pDRIInfo->ddxDriverMajorVersion = info->allowColorTiling ? 5 : 4;
pDRIInfo->ddxDriverMinorVersion = 3;
pDRIInfo->ddxDriverPatchVersion = 0;
@@ -2985,7 +2989,7 @@
pDRIInfo->ddxDrawableTableEntry = RADEON_MAX_DRAWABLES;
pDRIInfo->maxDrawableTableEntry = (SAREA_MAX_DRAWABLES
< RADEON_MAX_DRAWABLES
-@@ -1620,9 +1865,7 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen)
+@@ -1629,9 +1878,7 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen)
pDRIInfo->TransitionTo3d = RADEONDRITransitionTo3d;
pDRIInfo->TransitionSingleToMulti3D = RADEONDRITransitionSingleToMulti3d;
pDRIInfo->TransitionMultiToSingle3D = RADEONDRITransitionMultiToSingle3d;
@@ -2996,7 +3000,7 @@
pDRIInfo->ClipNotify = RADEONDRIClipNotify;
#endif
-@@ -1654,57 +1897,60 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen)
+@@ -1663,57 +1910,60 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen)
pDRIInfo = NULL;
return FALSE;
}
@@ -3101,7 +3105,7 @@
static Bool RADEONDRIDoCloseScreen(int scrnIndex, ScreenPtr pScreen)
{
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
-@@ -1746,17 +1992,21 @@ Bool RADEONDRIFinishScreenInit(ScreenPtr pScreen)
+@@ -1755,17 +2005,21 @@ Bool RADEONDRIFinishScreenInit(ScreenPtr pScreen)
return FALSE;
}
@@ -3131,7 +3135,7 @@
/* Initialize and start the CP if required */
RADEONDRICPInit(pScrn);
-@@ -1765,6 +2015,10 @@ Bool RADEONDRIFinishScreenInit(ScreenPtr pScreen)
+@@ -1774,6 +2028,10 @@ Bool RADEONDRIFinishScreenInit(ScreenPtr pScreen)
pSAREAPriv = (drm_radeon_sarea_t*)DRIGetSAREAPrivate(pScreen);
memset(pSAREAPriv, 0, sizeof(*pSAREAPriv));
@@ -3142,7 +3146,7 @@
pRADEONDRI = (RADEONDRIPtr)info->dri->pDRIInfo->devPrivate;
pRADEONDRI->deviceID = info->Chipset;
-@@ -1922,6 +2176,8 @@ void RADEONDRICloseScreen(ScreenPtr pScreen)
+@@ -1931,6 +2189,8 @@ void RADEONDRICloseScreen(ScreenPtr pScreen)
drmUnmap(info->dri->buf, info->dri->bufMapSize);
info->dri->buf = NULL;
}
@@ -3151,7 +3155,7 @@
if (info->dri->ringReadPtr) {
drmUnmap(info->dri->ringReadPtr, info->dri->ringReadMapSize);
info->dri->ringReadPtr = NULL;
-@@ -1930,6 +2186,7 @@ void RADEONDRICloseScreen(ScreenPtr pScreen)
+@@ -1939,6 +2199,7 @@ void RADEONDRICloseScreen(ScreenPtr pScreen)
drmUnmap(info->dri->ring, info->dri->ringMapSize);
info->dri->ring = NULL;
}
@@ -3159,7 +3163,7 @@
if (info->dri->agpMemHandle != DRM_AGP_NO_HANDLE) {
drmAgpUnbind(info->dri->drmFD, info->dri->agpMemHandle);
drmAgpFree(info->dri->drmFD, info->dri->agpMemHandle);
-@@ -2335,3 +2592,16 @@ int RADEONDRISetParam(ScrnInfoPtr pScrn, unsigned int param, int64_t value)
+@@ -2344,3 +2605,16 @@ int RADEONDRISetParam(ScrnInfoPtr pScrn, unsigned int param, int64_t value)
&radeonsetparam, sizeof(drm_radeon_setparam_t));
return ret;
}
@@ -6093,10 +6097,10 @@
}
#endif
diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
-index dec0285..6e9c212 100644
+index 59cb46f..7172cc2 100644
--- a/src/radeon_exa_funcs.c
+++ b/src/radeon_exa_funcs.c
-@@ -72,21 +72,73 @@ FUNC_NAME(RADEONSync)(ScreenPtr pScreen, int marker)
+@@ -74,21 +74,73 @@ FUNC_NAME(RADEONSync)(ScreenPtr pScreen, int marker)
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
RADEONInfoPtr info = RADEONPTR(pScrn);
@@ -6171,7 +6175,7 @@
ACCEL_PREAMBLE();
TRACE;
-@@ -95,25 +147,58 @@ FUNC_NAME(RADEONPrepareSolid)(PixmapPtr pPix, int alu, Pixel pm, Pixel fg)
+@@ -97,25 +149,58 @@ FUNC_NAME(RADEONPrepareSolid)(PixmapPtr pPix, int alu, Pixel pm, Pixel fg)
RADEON_FALLBACK(("24bpp unsupported\n"));
if (!RADEONGetDatatypeBpp(pPix->drawable.bitsPerPixel, &datatype))
RADEON_FALLBACK(("RADEONGetDatatypeBpp failed\n"));
@@ -6245,7 +6249,7 @@
return TRUE;
}
-@@ -144,6 +229,7 @@ FUNC_NAME(RADEONDoneSolid)(PixmapPtr pPix)
+@@ -146,6 +231,7 @@ FUNC_NAME(RADEONDoneSolid)(PixmapPtr pPix)
TRACE;
@@ -6253,7 +6257,7 @@
BEGIN_ACCEL(2);
OUT_ACCEL_REG(RADEON_DSTCACHE_CTLSTAT, RADEON_RB2D_DC_FLUSH_ALL);
OUT_ACCEL_REG(RADEON_WAIT_UNTIL,
-@@ -151,6 +237,7 @@ FUNC_NAME(RADEONDoneSolid)(PixmapPtr pPix)
+@@ -153,6 +239,7 @@ FUNC_NAME(RADEONDoneSolid)(PixmapPtr pPix)
FINISH_ACCEL();
}
@@ -6261,7 +6265,7 @@
void
FUNC_NAME(RADEONDoPrepareCopy)(ScrnInfoPtr pScrn, uint32_t src_pitch_offset,
uint32_t dst_pitch_offset, uint32_t datatype, int rop,
-@@ -161,23 +248,28 @@ FUNC_NAME(RADEONDoPrepareCopy)(ScrnInfoPtr pScrn, uint32_t src_pitch_offset,
+@@ -163,23 +250,28 @@ FUNC_NAME(RADEONDoPrepareCopy)(ScrnInfoPtr pScrn, uint32_t src_pitch_offset,
RADEON_SWITCH_TO_2D();
@@ -6307,7 +6311,7 @@
}
static Bool
-@@ -188,9 +280,46 @@ FUNC_NAME(RADEONPrepareCopy)(PixmapPtr pSrc, PixmapPtr pDst,
+@@ -190,9 +282,46 @@ FUNC_NAME(RADEONPrepareCopy)(PixmapPtr pSrc, PixmapPtr pDst,
{
RINFO_FROM_SCREEN(pDst->drawable.pScreen);
uint32_t datatype, src_pitch_offset, dst_pitch_offset;
@@ -6355,7 +6359,7 @@
info->accel_state->xdir = xdir;
info->accel_state->ydir = ydir;
-@@ -198,10 +327,11 @@ FUNC_NAME(RADEONPrepareCopy)(PixmapPtr pSrc, PixmapPtr pDst,
+@@ -200,10 +329,11 @@ FUNC_NAME(RADEONPrepareCopy)(PixmapPtr pSrc, PixmapPtr pDst,
RADEON_FALLBACK(("24bpp unsupported"));
if (!RADEONGetDatatypeBpp(pDst->drawable.bitsPerPixel, &datatype))
RADEON_FALLBACK(("RADEONGetDatatypeBpp failed\n"));
@@ -6369,7 +6373,7 @@
FUNC_NAME(RADEONDoPrepareCopy)(pScrn, src_pitch_offset, dst_pitch_offset,
datatype, rop, planemask);
-@@ -249,6 +379,7 @@ FUNC_NAME(RADEONDoneCopy)(PixmapPtr pDst)
+@@ -251,6 +381,7 @@ FUNC_NAME(RADEONDoneCopy)(PixmapPtr pDst)
TRACE;
@@ -6377,7 +6381,7 @@
BEGIN_ACCEL(2);
OUT_ACCEL_REG(RADEON_DSTCACHE_CTLSTAT, RADEON_RB2D_DC_FLUSH_ALL);
OUT_ACCEL_REG(RADEON_WAIT_UNTIL,
-@@ -259,12 +390,15 @@ FUNC_NAME(RADEONDoneCopy)(PixmapPtr pDst)
+@@ -261,12 +392,15 @@ FUNC_NAME(RADEONDoneCopy)(PixmapPtr pDst)
#ifdef ACCEL_CP
@@ -6393,7 +6397,7 @@
unsigned int hpass;
uint32_t buf_pitch, dst_pitch_off;
-@@ -273,9 +407,45 @@ RADEONUploadToScreenCP(PixmapPtr pDst, int x, int y, int w, int h,
+@@ -275,9 +409,45 @@ RADEONUploadToScreenCP(PixmapPtr pDst, int x, int y, int w, int h,
if (bpp < 8)
return FALSE;
@@ -6442,7 +6446,7 @@
int cpp = bpp / 8;
ACCEL_PREAMBLE();
-@@ -298,17 +468,24 @@ RADEONUploadToScreenCP(PixmapPtr pDst, int x, int y, int w, int h,
+@@ -300,17 +470,24 @@ RADEONUploadToScreenCP(PixmapPtr pDst, int x, int y, int w, int h,
return FALSE;
}
@@ -6469,7 +6473,7 @@
OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL,
RADEON_GMC_DST_PITCH_OFFSET_CNTL |
RADEON_GMC_SRC_PITCH_OFFSET_CNTL |
-@@ -319,8 +496,14 @@ RADEONBlitChunk(ScrnInfoPtr pScrn, uint32_t datatype, uint32_t src_pitch_offset,
+@@ -321,8 +498,14 @@ RADEONBlitChunk(ScrnInfoPtr pScrn, uint32_t datatype, uint32_t src_pitch_offset,
RADEON_DP_SRC_SOURCE_MEMORY |
RADEON_GMC_CLR_CMP_CNTL_DIS |
RADEON_GMC_WR_MSK_DIS);
@@ -6484,7 +6488,7 @@
OUT_ACCEL_REG(RADEON_SRC_Y_X, (srcY << 16) | srcX);
OUT_ACCEL_REG(RADEON_DST_Y_X, (dstY << 16) | dstX);
OUT_ACCEL_REG(RADEON_DST_HEIGHT_WIDTH, (h << 16) | w);
-@@ -332,6 +515,173 @@ RADEONBlitChunk(ScrnInfoPtr pScrn, uint32_t datatype, uint32_t src_pitch_offset,
+@@ -334,6 +517,173 @@ RADEONBlitChunk(ScrnInfoPtr pScrn, uint32_t datatype, uint32_t src_pitch_offset,
FINISH_ACCEL();
}
@@ -6658,7 +6662,7 @@
static Bool
RADEONDownloadFromScreenCP(PixmapPtr pSrc, int x, int y, int w, int h,
-@@ -345,12 +695,17 @@ RADEONDownloadFromScreenCP(PixmapPtr pSrc, int x, int y, int w, int h,
+@@ -347,12 +697,17 @@ RADEONDownloadFromScreenCP(PixmapPtr pSrc, int x, int y, int w, int h,
TRACE;
@@ -6677,7 +6681,7 @@
RADEONGetPixmapOffsetPitch(pSrc, &src_pitch_offset) &&
(scratch = RADEONCPGetBuffer(pScrn)))
{
-@@ -365,7 +720,8 @@ RADEONDownloadFromScreenCP(PixmapPtr pSrc, int x, int y, int w, int h,
+@@ -367,7 +722,8 @@ RADEONDownloadFromScreenCP(PixmapPtr pSrc, int x, int y, int w, int h,
RADEON_SWITCH_TO_2D();
/* Kick the first blit as early as possible */
@@ -6687,7 +6691,7 @@
x, y, 0, 0, w, hpass);
FLUSH_RING();
-@@ -392,7 +748,8 @@ RADEONDownloadFromScreenCP(PixmapPtr pSrc, int x, int y, int w, int h,
+@@ -394,7 +750,8 @@ RADEONDownloadFromScreenCP(PixmapPtr pSrc, int x, int y, int w, int h,
/* Prepare next blit if anything's left */
if (hpass) {
scratch_off = scratch->total/2 - scratch_off;
@@ -6697,7 +6701,7 @@
x, y, 0, 0, w, hpass);
}
-@@ -466,19 +823,22 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
+@@ -468,15 +825,13 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
info->accel_state->exa->MarkSync = FUNC_NAME(RADEONMarkSync);
info->accel_state->exa->WaitMarker = FUNC_NAME(RADEONSync);
#ifdef ACCEL_CP
@@ -6713,18 +6717,20 @@
-#endif /* X_BYTE_ORDER == X_BIG_ENDIAN */
info->accel_state->exa->flags = EXA_OFFSCREEN_PIXMAPS;
-- info->accel_state->exa->pixmapOffsetAlign = RADEON_BUFFER_ALIGN + 1;
+ #ifdef EXA_SUPPORTS_PREPARE_AUX
+@@ -485,6 +840,11 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
+ info->accel_state->exa->pixmapOffsetAlign = RADEON_BUFFER_ALIGN + 1;
info->accel_state->exa->pixmapPitchAlign = 64;
-+ info->accel_state->exa->pixmapOffsetAlign = RADEON_BUFFER_ALIGN + 1;
-+
+
+ if (info->drm_mm) {
+ info->accel_state->exa->flags |= EXA_HANDLES_PIXMAPS;
+ } else {
+ }
-
++
#ifdef RENDER
if (info->RenderAccel) {
-@@ -488,7 +848,7 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
+ if (info->ChipFamily >= CHIP_FAMILY_R600)
+@@ -493,7 +853,7 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
else if (IS_R300_3D || IS_R500_3D) {
if ((info->ChipFamily < CHIP_FAMILY_RS400)
#ifdef XF86DRI
@@ -6733,7 +6739,7 @@
#endif
) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
-@@ -523,6 +883,16 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
+@@ -528,6 +888,16 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
}
#endif
@@ -7779,10 +7785,10 @@
+}
+
diff --git a/src/radeon_probe.h b/src/radeon_probe.h
-index 49044e3..9a01a24 100644
+index f072b9c..6d31e39 100644
--- a/src/radeon_probe.h
+++ b/src/radeon_probe.h
-@@ -142,6 +142,27 @@ typedef struct
+@@ -145,6 +145,27 @@ typedef struct
Bool hw_capable;
} RADEONI2CBusRec, *RADEONI2CBusPtr;
@@ -7810,7 +7816,7 @@
typedef struct _RADEONCrtcPrivateRec {
void *crtc_rotate_mem;
void *cursor_mem;
-@@ -155,6 +176,8 @@ typedef struct _RADEONCrtcPrivateRec {
+@@ -158,6 +179,8 @@ typedef struct _RADEONCrtcPrivateRec {
int can_tile;
Bool enabled;
Bool initialized;
Index: xorg-x11-drv-ati.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/devel/xorg-x11-drv-ati.spec,v
retrieving revision 1.150
retrieving revision 1.151
diff -u -r1.150 -r1.151
--- xorg-x11-drv-ati.spec 27 Feb 2009 03:57:32 -0000 1.150
+++ xorg-x11-drv-ati.spec 2 Mar 2009 23:42:19 -0000 1.151
@@ -5,7 +5,7 @@
Summary: Xorg X11 ati video driver
Name: xorg-x11-drv-ati
Version: 6.11.0
-Release: 1%{?dist}
+Release: 2%{?dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X Hardware Support
@@ -76,6 +76,10 @@
%{_mandir}/man4/radeon.4*
%changelog
+* Tue Mar 03 2009 Dave Airlie <airlied at redhat.com> 6.11.0-2
+- rebase to latest upstream r600 accel
+- fixup VT switch on DRI2
+
* Fri Feb 27 2009 Dave Airlie <airlied at redhat.com> 6.11.0-1
- rebase to latest upstream
- enable R600 acceleration for EXA and Xv.
More information about the scm-commits
mailing list