exa_965_state used when in XAA mode
Barry Scott
barry.scott at onelan.co.uk
Fri Apr 27 04:34:38 PDT 2007
Hi,
I'm still working on rotate and get this crash from the attached x.conf
after starting
up Xorg and then starting an xterm.
pI830->exa_965_state is 0 as useEXA is FALSE.
Why does the i830_xaa_composite call i965_prepare_composite that only
works for EXA?
Barry
# gdb /usr/bin/Xorg
GNU gdb Red Hat Linux (6.3.0.0-1.21rh)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...Using host
libthread_db library "/lib/libthread_db.so.1".
(gdb) run :0 -nolisten tcp -br vt7 -dpi 75 -logfile
/data/data/logs/screen-server.log -config /etc/onelan/ntb/x.conf
Starting program: /usr/bin/Xorg :0 -nolisten tcp -br vt7 -dpi 75
-logfile /data/data/logs/screen-server.log -config /etc/onelan/ntb/x.conf
R
At this point I start an xterm.
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1208236352 (LWP 2346)]
0x00192271 in i965_prepare_composite (op=1, pSrcPicture=0x8986fa8,
pMaskPicture=0x0, pDstPicture=0x8987000,
pSrc=0x8918d90, pMask=0x0, pDst=0x8985470) at i965_render.c:539
539 state_base_offset = ->offset;
(gdb) p pI830->exa_965_state
$1 = (i830_memory *) 0x0
(gdb) l
534 next_offset = default_color_offset +
sizeof(*default_color_state);
535
536 total_state_size = next_offset;
537 assert(total_state_size < pI830->exa_965_state->size);
538
539 state_base_offset = pI830->exa_965_state->offset;
540 state_base_offset = ALIGN(state_base_offset, 64);
541 state_base = (char *)(pI830->FbBase + state_base_offset);
542
543 vs_state = (void *)(state_base + vs_offset);
(gdb) bt
#0 0x00192271 in i965_prepare_composite (op=1, pSrcPicture=0x8986fa8,
pMaskPicture=0x0, pDstPicture=0x8987000,
pSrc=0x8918d90, pMask=0x0, pDst=0x8985470) at i965_render.c:539
#1 0x0018cd50 in i830_xaa_composite (op=1 '\001', pSrc=0x8986fa8,
pMask=0x0, pDst=0x8987000, xSrc=0, ySrc=0, xMask=0,
yMask=0, xDst=0, yDst=0, width=640, height=480) at i830_xaa.c:826
#2 0x08159fc8 in damageComposite (op=1 '\001', pSrc=0x8986fa8,
pMask=0x0, pDst=0x8987000, xSrc=0, ySrc=0, xMask=0,
yMask=0, xDst=0, yDst=0, width=640, height=480) at damage.c:576
#3 0x08147659 in CompositePicture (op=Variable "op" is not available.
) at picture.c:1795
#4 0x080ec0f8 in xf86RotateBlockHandler (data=0x8953fa0,
pTimeout=0xbfc2e0a8, pRead=0x81de720) at xf86Rotate.c:208
#5 0x0808a098 in BlockHandler (pTimeout=0xbfc2e0a8,
pReadmask=0x81de720) at dixutils.c:418
#6 0x08199216 in WaitForSomething (pClientsReady=0xbfc2e0d0) at
WaitFor.c:225
#7 0x08086521 in Dispatch () at dispatch.c:383
#8 0x0806ff1b in main (argc=12, argv=0xbfc2e5d4, envp=0xbfc2e608) at
main.c:445
(gdb) Quit
(gdb)
I'm running 2.0.0 with these patches from Keith Packard and I remove -O2
from the makefile.
Only in xf86-video-intel-2.0.0-patched: build.sh
Binary files xf86-video-intel-2.0.0/src/bios_reader/bios_reader and
xf86-video-intel-2.0.0-patched/src/bios_reader/bios_reader differ
Only in xf86-video-intel-2.0.0/src: i830_memory.lo
Only in xf86-video-intel-2.0.0-patched/src: i830_memory.loT
diff -r -u --exclude='*.Plo' --exclude='*.o' --exclude='*.so'
--exclude='*~' xf86-video-intel-2.0.0/src/i830_video.c
xf86-video-intel-2.0.0-patched/src/i830_video.c
--- xf86-video-intel-2.0.0/src/i830_video.c 2007-04-19
23:30:01.000000000 +0100
+++ xf86-video-intel-2.0.0-patched/src/i830_video.c 2007-04-26
17:36:04.000000000 +0100
@@ -2350,6 +2350,7 @@
left = (x1 >> 16) & ~1;
npixels = ((((x2 + 0xffff) >> 16) + 1) & ~1) - left;
+#if 0
if (pPriv->textured) {
/* For textured video, we don't double buffer, and instead just
wait for
* acceleration to finish before writing the new video data into
@@ -2357,7 +2358,7 @@
*/
i830WaitSync(pScrn);
}
-
+#endif
switch (id) {
case FOURCC_YV12:
case FOURCC_I420:
diff -r -u --exclude='*.Plo' --exclude='*.o' --exclude='*.so'
--exclude='*~' xf86-video-intel-2.0.0/src/i830_xaa.c
xf86-video-intel-2.0.0-patched/src/i830_xaa.c
--- xf86-video-intel-2.0.0/src/i830_xaa.c 2007-04-25
12:53:56.000000000 +0100
+++ xf86-video-intel-2.0.0-patched/src/i830_xaa.c 2007-04-25
14:25:22.000000000 +0100
@@ -782,12 +782,12 @@
if (pMask != NULL || op != PictOpSrc || pSrc->pDrawable == NULL)
goto fallback;
- if (pSrc->pDrawable->type != DRAWABLE_PIXMAP ||
+ if (pSrc->pDrawable->type != DRAWABLE_WINDOW ||
pDst->pDrawable->type != DRAWABLE_PIXMAP)
{
goto fallback;
}
- pSrcPixmap = (PixmapPtr)pSrc->pDrawable;
+ pSrcPixmap = (*pScreen->GetWindowPixmap) ((WindowPtr) pSrc->pDrawable);
pDstPixmap = (PixmapPtr)pDst->pDrawable;
/* Check if the dest is one of our shadow pixmaps */
Only in xf86-video-intel-2.0.0-patched/src: i830_xaa.eja
diff -r -u --exclude='*.Plo' --exclude='*.o' --exclude='*.so'
--exclude='*~' xf86-video-intel-2.0.0/src/Makefile
xf86-video-intel-2.0.0-patched/src/Makefile
--- xf86-video-intel-2.0.0/src/Makefile 2007-04-23 14:32:56.000000000
+0100
+++ xf86-video-intel-2.0.0-patched/src/Makefile 2007-04-26
17:57:48.000000000 +0100
@@ -156,13 +156,13 @@
BUILD_PDFDOC_TRUE = #
CC = gcc
CCDEPMODE = depmode=gcc3
-CFLAGS = -g -O2
+CFLAGS = -g
CPP = gcc -E
CPPFLAGS =
CXX = g++
CXXCPP = g++ -E
CXXDEPMODE = depmode=gcc3
-CXXFLAGS = -g -O2
+CXXFLAGS = -g
CYGPATH_W = echo
DEFS = -DHAVE_CONFIG_H
DEPDIR = .deps
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: x.conf
URL: <http://lists.x.org/archives/xorg/attachments/20070427/88f16eae/attachment.ksh>
More information about the xorg
mailing list