rpms/xorg-x11-drv-ati/F-10 radeon-modeset.patch, 1.33, 1.34 xorg-x11-drv-ati.spec, 1.145, 1.146 radeon-modeset-gtt-map.patch, 1.1, NONE
Dave Airlie
airlied at fedoraproject.org
Fri Nov 14 06:08:22 UTC 2008
- Previous message (by thread): rpms/projectM-libvisual/F-8 import.log, NONE, 1.1 projectM-libvisual.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Next message (by thread): rpms/projectM-libvisual/F-9 import.log, NONE, 1.1 projectM-libvisual.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: airlied
Update of /cvs/pkgs/rpms/xorg-x11-drv-ati/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv10877
Modified Files:
radeon-modeset.patch xorg-x11-drv-ati.spec
Removed Files:
radeon-modeset-gtt-map.patch
Log Message:
* Fri Nov 14 2008 Dave Airlie <airlied at redhat.com> 6.9.0-46
- fix rebooting on low memory cards.
radeon-modeset.patch:
Index: radeon-modeset.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/F-10/radeon-modeset.patch,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- radeon-modeset.patch 10 Nov 2008 05:06:38 -0000 1.33
+++ radeon-modeset.patch 14 Nov 2008 06:07:52 -0000 1.34
@@ -1,3 +1,33 @@
+commit 912a135fa66d50174ed925676ebcbaeae7bd8556
+Author: Dave Airlie <airlied at redhat.com>
+Date: Fri Nov 14 15:56:16 2008 +1000
+
+ radeon: make space accounting a lot smarter
+
+commit 1163200d644744bbfc72c205f47bf00a92446c68
+Author: Dave Airlie <airlied at redhat.com>
+Date: Fri Nov 14 15:55:12 2008 +1000
+
+ radeon: retry on CS2 EAGAIN
+
+commit 9f16d36104d242385e2a14916a66cdc95fca96ca
+Author: Dave Airlie <airlied at redhat.com>
+Date: Fri Nov 14 15:20:59 2008 +1000
+
+ radeon: add src/mask/dest to fallbacks
+
+commit 38b1f12d268f5a3213380e3b4fbd730d17ba073c
+Author: Dave Airlie <airlied at redhat.com>
+Date: Fri Nov 14 15:20:37 2008 +1000
+
+ radeon_memory: align all allocations
+
+commit 40804bd0927833048fd92ec7a1332f10f9d6a850
+Author: Dave Airlie <airlied at redhat.com>
+Date: Fri Nov 14 11:03:34 2008 +1000
+
+ radeon: force gtt for mmap after fallbacks
+
commit a9bd6835e8f41a1ceb2a62bd1c4a8f92051cb620
Author: Dave Airlie <airlied at redhat.com>
Date: Mon Nov 10 14:18:17 2008 +1000
@@ -1871,7 +1901,7 @@
do { \
if (RADEON_VERBOSE) \
diff --git a/src/radeon_accel.c b/src/radeon_accel.c
-index a6e332d..d7c70c5 100644
+index a6e332d..d40da24 100644
--- a/src/radeon_accel.c
+++ b/src/radeon_accel.c
@@ -311,6 +311,9 @@ void RADEONEngineRestore(ScrnInfoPtr pScrn)
@@ -2007,7 +2037,7 @@
switch (info->CurrentLayout.pixel_code) {
case 8: datatype = 2; break;
-@@ -550,6 +556,148 @@ int RADEONCPStop(ScrnInfoPtr pScrn, RADEONInfoPtr info)
+@@ -550,6 +556,153 @@ int RADEONCPStop(ScrnInfoPtr pScrn, RADEONInfoPtr info)
}
}
@@ -2040,6 +2070,7 @@
+ struct drm_radeon_cs2 args;
+ struct drm_radeon_cs_chunk chunk[2];
+ uint64_t chunk_array[2];
++ int retry = 0;
+ int ret;
+ RING_LOCALS;
+
@@ -2069,12 +2100,16 @@
+ args.num_chunks = 2;
+ args.chunks = (uint64_t)(unsigned long)chunk_array;
+
-+ ret = drmCommandWriteRead(info->dri->drmFD, DRM_RADEON_CS2,
-+ &args, sizeof(args));
-+
++ do {
++ ret = drmCommandWriteRead(info->dri->drmFD, DRM_RADEON_CS2,
++ &args, sizeof(args));
++ if (ret)
++ ErrorF("DRM Command submission failure %d\n", ret);
++ retry++;
++ } while (ret == -EAGAIN && retry < 1000);
+ if (ret) {
-+ FatalError("DRM Command submission failure %d\n", ret);
-+ return;
++ FatalError("DRM Command submission failure %d\n", ret);
++ return;
+ }
+
+
@@ -2156,7 +2191,7 @@
/* Get an indirect buffer for the CP 2D acceleration commands */
drmBufPtr RADEONCPGetBuffer(ScrnInfoPtr pScrn)
{
-@@ -560,6 +708,9 @@ drmBufPtr RADEONCPGetBuffer(ScrnInfoPtr pScrn)
+@@ -560,6 +713,9 @@ drmBufPtr RADEONCPGetBuffer(ScrnInfoPtr pScrn)
int size = 0;
int i = 0;
int ret;
@@ -2166,7 +2201,7 @@
#if 0
/* FIXME: pScrn->pScreen has not been initialized when this is first
-@@ -625,6 +776,11 @@ void RADEONCPFlushIndirect(ScrnInfoPtr pScrn, int discard)
+@@ -625,6 +781,11 @@ void RADEONCPFlushIndirect(ScrnInfoPtr pScrn, int discard)
if (!buffer) return;
if (start == buffer->used && !discard) return;
@@ -2178,7 +2213,7 @@
if (RADEON_VERBOSE) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Flushing buffer %d\n",
buffer->idx);
-@@ -659,10 +815,16 @@ void RADEONCPReleaseIndirect(ScrnInfoPtr pScrn)
+@@ -659,10 +820,16 @@ void RADEONCPReleaseIndirect(ScrnInfoPtr pScrn)
int start = info->cp->indirectStart;
drm_radeon_indirect_t indirect;
@@ -2195,7 +2230,7 @@
if (RADEON_VERBOSE) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Releasing buffer %d\n",
-@@ -789,6 +951,7 @@ RADEONHostDataBlit(
+@@ -789,6 +956,7 @@ RADEONHostDataBlit(
ret = ( uint8_t* )&__head[__count];
__count += dwords;
@@ -2203,7 +2238,7 @@
ADVANCE_RING();
*y += *hpass;
-@@ -926,7 +1089,7 @@ Bool RADEONAccelInit(ScreenPtr pScreen)
+@@ -926,7 +1094,7 @@ Bool RADEONAccelInit(ScreenPtr pScreen)
#ifdef USE_EXA
if (info->useEXA) {
# ifdef XF86DRI
@@ -2212,7 +2247,7 @@
if (!RADEONDrawInitCP(pScreen))
return FALSE;
} else
-@@ -947,7 +1110,7 @@ Bool RADEONAccelInit(ScreenPtr pScreen)
+@@ -947,7 +1115,7 @@ Bool RADEONAccelInit(ScreenPtr pScreen)
}
#ifdef XF86DRI
@@ -2221,7 +2256,7 @@
RADEONAccelInitCP(pScreen, a);
else
#endif /* XF86DRI */
-@@ -969,11 +1132,13 @@ void RADEONInit3DEngine(ScrnInfoPtr pScrn)
+@@ -969,11 +1137,13 @@ void RADEONInit3DEngine(ScrnInfoPtr pScrn)
RADEONInfoPtr info = RADEONPTR (pScrn);
#ifdef XF86DRI
@@ -2239,7 +2274,7 @@
RADEONInit3DEngineCP(pScrn);
} else
#endif
-@@ -981,7 +1146,7 @@ void RADEONInit3DEngine(ScrnInfoPtr pScrn)
+@@ -981,7 +1151,7 @@ void RADEONInit3DEngine(ScrnInfoPtr pScrn)
info->accel_state->XInited3D = TRUE;
}
@@ -2281,10 +2316,10 @@
+#endif
diff --git a/src/radeon_bufmgr_gem.c b/src/radeon_bufmgr_gem.c
new file mode 100644
-index 0000000..a8bc465
+index 0000000..92fbaa8
--- /dev/null
+++ b/src/radeon_bufmgr_gem.c
-@@ -0,0 +1,547 @@
+@@ -0,0 +1,600 @@
+/**************************************************************************
+ *
+ * Copyright © 2007-2008 Red Hat Inc.
@@ -2359,10 +2394,10 @@
+ const char *name;
+ struct _dri_bo_gem *next;
+ int in_vram; /* have we migrated this bo to VRAM ever */
++ int force_gtt;
+ int pinned;
+ int touched;
-+ int space_accounted;
-+
++ uint32_t space_accounted;
+} dri_bo_gem;
+
+typedef struct _dri_bufmgr_gem {
@@ -2525,15 +2560,27 @@
+{
+ dri_bufmgr_gem *bufmgr_gem = (dri_bufmgr_gem *)buf->bufmgr;
+ struct drm_radeon_gem_wait_rendering args;
++ struct drm_radeon_gem_set_domain sd_args;
+ dri_bo_gem *gem_bo = (dri_bo_gem *)buf;
+ int ret;
+
-+ args.handle = gem_bo->gem_handle;
++ /* do a set domain */
++ if (gem_bo->force_gtt) {
++ sd_args.handle = gem_bo->gem_handle;
++ sd_args.read_domains = RADEON_GEM_DOMAIN_GTT;
++ sd_args.write_domain = 0;
+
-+ do {
-+ ret = drmCommandWriteRead(bufmgr_gem->fd, DRM_RADEON_GEM_WAIT_RENDERING,
-+ &args, sizeof(args));
-+ } while (ret == -EAGAIN);
++ ret = drmCommandWriteRead(bufmgr_gem->fd, DRM_RADEON_GEM_SET_DOMAIN,
++ &sd_args, sizeof(sd_args));
++
++ } else {
++ args.handle = gem_bo->gem_handle;
++
++ do {
++ ret = drmCommandWriteRead(bufmgr_gem->fd, DRM_RADEON_GEM_WAIT_RENDERING,
++ &args, sizeof(args));
++ } while (ret == -EAGAIN);
++ }
+ return;
+}
+
@@ -2613,6 +2660,9 @@
+ }
+ }
+
++ if (gem_bo->force_gtt && (read_domains & RADEON_GEM_DOMAIN_VRAM))
++ read_domains = RADEON_GEM_DOMAIN_GTT;
++
+ if (have_reloc != -1) {
+ uint32_t old_write, old_read;
+
@@ -2712,32 +2762,63 @@
+{
+ dri_bufmgr_gem *bufmgr_gem = (dri_bufmgr_gem *)buf->bufmgr;
+ dri_bo_gem *gem_bo = (dri_bo_gem *)buf;
++ int old_accounted = 0;
+
+ if (gem_bo->pinned)
+ return 0;
+
-+ if (gem_bo->space_accounted == 1)
++ if (write_domain && (write_domain == gem_bo->space_accounted))
+ return 0;
+
-+ if (write_domain == RADEON_GEM_DOMAIN_VRAM) {
-+ bufmgr_gem->vram_write_used += buf->size;
++ if (read_domains && ((read_domains << 16) == gem_bo->space_accounted))
++ return 0;
++
++ old_accounted = gem_bo->space_accounted;
++
++ if (gem_bo->space_accounted == 0) {
++ gem_bo->space_accounted = (read_domains << 16) | write_domain;
++ if (write_domain == RADEON_GEM_DOMAIN_VRAM) {
++ bufmgr_gem->vram_write_used += buf->size;
++ } else {
++ bufmgr_gem->read_used += buf->size;
++ }
+ } else {
-+ bufmgr_gem->read_used += buf->size;
-+ }
++ uint16_t old_read, old_write;
++
++ old_read = gem_bo->space_accounted >> 16;
++ old_write = gem_bo->space_accounted & 0xffff;
+
++ if (write_domain && (old_read & write_domain)) {
++ gem_bo->space_accounted = write_domain;
++ /* moving from read to a write domain */
++ if (write_domain == RADEON_GEM_DOMAIN_VRAM) {
++ bufmgr_gem->read_used -= buf->size;
++ bufmgr_gem->vram_write_used += buf->size;
++ }
++ } else if (read_domains & old_write) {
++ gem_bo->space_accounted &= 0xffff;
++ } else {
++ /* rewrite the domains */
++ if (write_domain != old_write)
++ ErrorF("WRITE DOMAIN RELOC FAILURE 0x%x %d %d\n", gem_bo->gem_handle, write_domain, old_write);
++ if (read_domains != old_read)
++ ErrorF("READ DOMAIN RELOC FAILURE 0x%x %d %d\n", gem_bo->gem_handle, read_domains, old_read);
++ }
++ }
++
+ if (bufmgr_gem->vram_write_used > bufmgr_gem->vram_limit) {
+ bufmgr_gem->vram_write_used = 0;
+ bufmgr_gem->read_used = 0;
++ gem_bo->space_accounted = old_accounted;
+ return -1;
+ }
+
+ if (bufmgr_gem->read_used > bufmgr_gem->gart_limit) {
+ bufmgr_gem->vram_write_used = 0;
+ bufmgr_gem->read_used = 0;
++ gem_bo->space_accounted = old_accounted;
+ return -1;
-+ }
-+
-+ gem_bo->space_accounted = 1;
++ }
+
+ return 0;
+}
@@ -2832,12 +2913,19 @@
+ bufmgr_gem->gart_limit = limit;
+
+}
++
++void radeon_bufmgr_gem_force_gtt(dri_bo *buf)
++{
++ dri_bo_gem *gem_bo = (dri_bo_gem *)buf;
++
++ gem_bo->force_gtt = 1;
++}
diff --git a/src/radeon_bufmgr_gem.h b/src/radeon_bufmgr_gem.h
new file mode 100644
-index 0000000..c40a24e
+index 0000000..b13a642
--- /dev/null
+++ b/src/radeon_bufmgr_gem.h
-@@ -0,0 +1,15 @@
+@@ -0,0 +1,18 @@
+#ifndef RADEON_BUFMGR_GEM_H
+#define RADEON_BUFMGR_GEM_H
+
@@ -2851,7 +2939,10 @@
+void radeon_bufmgr_unpin(dri_bo *buf);
+uint32_t radeon_bufmgr_get_handle(dri_bo *buf);
+int radeon_bufmgr_gem_has_references(dri_bo *buf);
++int radeon_bufmgr_gem_force_gtt(dri_bo *buf);
+void radeon_bufmgr_gem_set_limit(dri_bufmgr *bufmgr, uint32_t domain, uint32_t limit);
++
++
+#endif
diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c
index dba197e..10d146e 100644
@@ -6231,7 +6322,7 @@
}
#endif
diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
-index 62224d0..fe104c4 100644
+index 62224d0..17b90dc 100644
--- a/src/radeon_exa_funcs.c
+++ b/src/radeon_exa_funcs.c
@@ -74,21 +74,71 @@ FUNC_NAME(RADEONSync)(ScreenPtr pScreen, int marker)
@@ -6325,7 +6416,7 @@
+ RADEONCPFlushIndirect(pScrn, 1);
+ retry_count++;
+ if (retry_count == 2)
-+ RADEON_FALLBACK(("Not enough Video RAM\n"));
++ RADEON_FALLBACK(("Not enough Video RAM for dst\n"));
+ goto retry;
+ }
+ }
@@ -6461,7 +6552,7 @@
+ RADEONCPFlushIndirect(pScrn, 1);
+ retry_count++;
+ if (retry_count == 2)
-+ RADEON_FALLBACK(("Not enough Video RAM\n"));
++ RADEON_FALLBACK(("Not enough Video RAM for src\n"));
+ goto retry;
+ }
+ info->state_2d.src_bo = driver_priv->bo;
@@ -6473,7 +6564,7 @@
+ RADEONCPFlushIndirect(pScrn, 1);
+ retry_count++;
+ if (retry_count == 2)
-+ RADEON_FALLBACK(("Not enough Video RAM\n"));
++ RADEON_FALLBACK(("Not enough Video RAM for dst\n"));
+ goto retry;
+ }
+ info->state_2d.dst_bo = driver_priv->bo;
@@ -6795,7 +6886,7 @@
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Setting EXA maxPitchBytes\n");
diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c
-index 97199ae..c19ca0b 100644
+index 97199ae..0de7666 100644
--- a/src/radeon_exa_render.c
+++ b/src/radeon_exa_render.c
@@ -355,12 +355,14 @@ static Bool FUNC_NAME(R100TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
@@ -7029,7 +7120,37 @@
OUT_ACCEL_REG(R200_SE_VTX_FMT_0, R200_VTX_XY);
if (pMask)
-@@ -999,15 +1065,19 @@ static Bool FUNC_NAME(R300TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
+@@ -941,6 +1007,10 @@ static Bool R300CheckCompositeTexture(PicturePtr pPict,
+ int unit,
+ Bool is_r500)
+ {
++ ScreenPtr pScreen = pDstPict->pDrawable->pScreen;
++ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
++ RADEONInfoPtr info = RADEONPTR(pScrn);
++
+ int w = pPict->pDrawable->width;
+ int h = pPict->pDrawable->height;
+ int i;
+@@ -966,8 +1036,17 @@ static Bool R300CheckCompositeTexture(PicturePtr pPict,
+ RADEON_FALLBACK(("Unsupported picture format 0x%x\n",
+ (int)pPict->format));
+
+- if (!RADEONCheckTexturePOT(pPict, unit == 0))
++ if (!RADEONCheckTexturePOT(pPict, unit == 0)) {
++ if (info->new_cs) {
++ struct radeon_exa_pixmap_priv *driver_priv;
++ PixmapPtr pPix;
++
++ pPix = RADEONGetDrawablePixmap(pPict->pDrawable);
++ driver_priv = exaGetPixmapDriverPrivate(pPix);
++ radeon_bufmgr_gem_force_gtt(driver_priv->bo);
++ }
+ return FALSE;
++ }
+
+ if (pPict->filter != PictFilterNearest &&
+ pPict->filter != PictFilterBilinear)
+@@ -999,15 +1078,19 @@ static Bool FUNC_NAME(R300TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
int w = pPict->pDrawable->width;
int h = pPict->pDrawable->height;
int i, pixel_shift;
@@ -7052,7 +7173,7 @@
if ((txpitch & 0x1f) != 0)
RADEON_FALLBACK(("Bad texture pitch 0x%x\n", (int)txpitch));
-@@ -1068,13 +1138,26 @@ static Bool FUNC_NAME(R300TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
+@@ -1068,13 +1151,26 @@ static Bool FUNC_NAME(R300TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
RADEON_FALLBACK(("Bad filter 0x%x\n", pPict->filter));
}
@@ -7081,7 +7202,7 @@
if (!pPict->repeat)
OUT_ACCEL_REG(R300_TX_BORDER_COLOR_0 + (unit * 4), 0);
FINISH_ACCEL();
-@@ -1173,6 +1256,7 @@ static Bool R300CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP
+@@ -1173,6 +1269,7 @@ static Bool R300CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP
return TRUE;
}
@@ -7089,7 +7210,7 @@
#endif /* ONLY_ONCE */
static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
-@@ -1184,10 +1268,52 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
+@@ -1184,10 +1281,52 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
uint32_t txenable, colorpitch;
uint32_t blendcntl;
int pixel_shift;
@@ -7108,7 +7229,7 @@
+ RADEONCPFlushIndirect(pScrn, 1);
+ retry_count++;
+ if (retry_count == 2)
-+ RADEON_FALLBACK(("Not enough Video RAM\n"));
++ RADEON_FALLBACK(("Not enough Video RAM for src\n"));
+ goto retry;
+ }
+
@@ -7119,7 +7240,7 @@
+ RADEONCPFlushIndirect(pScrn, 1);
+ retry_count++;
+ if (retry_count == 2)
-+ RADEON_FALLBACK(("Not enough Video RAM\n"));
++ RADEON_FALLBACK(("Not enough Video RAM for mask\n"));
+ goto retry;
+ }
+ }
@@ -7131,7 +7252,7 @@
+ RADEONCPFlushIndirect(pScrn, 1);
+ retry_count++;
+ if (retry_count == 2)
-+ RADEON_FALLBACK(("Not enough Video RAM\n"));
++ RADEON_FALLBACK(("Not enough Video RAM for dst\n"));
+ goto retry;
+ }
+ }
@@ -7142,7 +7263,7 @@
if (!info->accel_state->XInited3D)
RADEONInit3DEngine(pScrn);
-@@ -1201,7 +1327,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
+@@ -1201,7 +1340,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
pixel_shift = pDst->drawable.bitsPerPixel >> 4;
@@ -7151,7 +7272,7 @@
dst_pitch = exaGetPixmapPitch(pDst);
colorpitch = dst_pitch >> pixel_shift;
-@@ -1210,7 +1336,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
+@@ -1210,7 +1349,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
colorpitch |= dst_format;
@@ -7160,7 +7281,7 @@
RADEON_FALLBACK(("Bad destination offset 0x%x\n", (int)dst_offset));
if (((dst_pitch >> pixel_shift) & 0x7) != 0)
RADEON_FALLBACK(("Bad destination pitch 0x%x\n", (int)dst_pitch));
-@@ -1829,9 +1955,18 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
+@@ -1829,9 +1968,18 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
FINISH_ACCEL();
}
@@ -7219,10 +7340,10 @@
ExaOffscreenArea *area = mem_struct;
diff --git a/src/radeon_memory.c b/src/radeon_memory.c
new file mode 100644
-index 0000000..273b8f9
+index 0000000..c613ade
--- /dev/null
+++ b/src/radeon_memory.c
-@@ -0,0 +1,410 @@
+@@ -0,0 +1,415 @@
+
+#include <errno.h>
+#include <sys/ioctl.h>
@@ -7488,7 +7609,7 @@
+ int stride = pScrn->displayWidth * cpp;
+ int total_size_bytes = 0, remain_size_bytes;
+ int fb_size_bytes;
-+
++ int pagesize = 4096;
+
+ screen_size = RADEON_ALIGN(pScrn->virtualY, 16) * stride;
+
@@ -7498,6 +7619,7 @@
+ int cursor_size = 64 * 4 * 64;
+ int c;
+
++ cursor_size = RADEON_ALIGN(cursor_size, pagesize);
+ for (c = 0; c < xf86_config->num_crtc; c++) {
+ /* cursor objects */
+ info->mm.cursor[c] = radeon_allocate_memory(pScrn, RADEON_POOL_VRAM, cursor_size, 0, 1, "Cursor", 1);
@@ -7522,6 +7644,7 @@
+ }
+ }
+
++ screen_size = RADEON_ALIGN(screen_size, pagesize);
+ /* keep area front front buffer - but don't allocate it yet */
+ total_size_bytes += screen_size;
+
@@ -7538,6 +7661,7 @@
+ {
+ int depthCpp = (info->dri->depthBits - 8) / 4;
+ int depth_size = RADEON_ALIGN(pScrn->virtualY, 16) * info->dri->depthPitch * depthCpp;
++ depth_size = RADEON_ALIGN(depth_size, pagesize);
+ info->mm.depth_buffer = radeon_allocate_memory(pScrn, RADEON_POOL_VRAM, depth_size, 0, 1, "Depth Buffer", 1);
+ if (!info->mm.depth_buffer) {
+ return FALSE;
@@ -7555,6 +7679,8 @@
+ else
+ info->dri->textureSize = remain_size_bytes / 2;
+
++ info->dri->textureSize = RADEON_ALIGN(info->dri->textureSize, pagesize);
++
+ remain_size_bytes -= info->dri->textureSize;
+
+ ErrorF("texture size is %dK, exa is %dK\n", info->dri->textureSize / 1024, remain_size_bytes/1024);
Index: xorg-x11-drv-ati.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/F-10/xorg-x11-drv-ati.spec,v
retrieving revision 1.145
retrieving revision 1.146
diff -u -r1.145 -r1.146
--- xorg-x11-drv-ati.spec 14 Nov 2008 04:59:59 -0000 1.145
+++ xorg-x11-drv-ati.spec 14 Nov 2008 06:07:52 -0000 1.146
@@ -5,7 +5,7 @@
Summary: Xorg X11 ati video driver
Name: xorg-x11-drv-ati
Version: 6.9.0
-Release: 45%{?dist}
+Release: 46%{?dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X Hardware Support
@@ -22,7 +22,6 @@
Patch7: radeon-6.9.0-add-hd3300.patch
Patch8: radeon-6.9.0-quirk-agp.patch
Patch9: radeon-6.9.0-dig1-hdmi.patch
-Patch10: radeon-modeset-gtt-map.patch
ExcludeArch: s390 s390x
@@ -52,7 +51,6 @@
%patch7 -p1 -b .pciid
%patch8 -p1 -b .quirk
%patch9 -p1 -b .hdmi
-%patch10 -p1 -b .gtt
%build
autoreconf
@@ -84,6 +82,9 @@
%{_mandir}/man4/radeon.4*
%changelog
+* Fri Nov 14 2008 Dave Airlie <airlied at redhat.com> 6.9.0-46
+- fix rebooting on low memory cards.
+
* Fri Nov 14 2008 Dave Airlie <airlied at redhat.com> 6.9.0-45
- try and speed up fallback cases a bit
--- radeon-modeset-gtt-map.patch DELETED ---
- Previous message (by thread): rpms/projectM-libvisual/F-8 import.log, NONE, 1.1 projectM-libvisual.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Next message (by thread): rpms/projectM-libvisual/F-9 import.log, NONE, 1.1 projectM-libvisual.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list