I decided to take gdb to it and see what was going on, I've done two
separate backtraces which are getting similar but not identical
backtraces - it looks to me as if dst_private is corrupt somehow and how
far it gets depends how broken it is:
--
Try 1:
Program received signal SIGSEGV, Segmentation fault.
dixLookupPrivate (pPix=0x2dcb680) at ../../include/privates.h:167
167 ../../include/privates.h: No such file or directory.
in ../../include/privates.h
(gdb) where
#0 dixLookupPrivate (pPix=0x2dcb680) at ../../include/privates.h:167
#1 exaGetPixmapDriverPrivate (pPix=0x2dcb680) at ../../exa/exa.c:70
#2 0x7fc132db2ff1 in radeon_dri2_copy_region (drawable=0x2c79a30,
region=0x7fff2f714390, dest_buffer=value optimised out,
src_buffer=value optimised out) at ../../src/radeon_dri2.c:309
#3 0x7fc132db3623 in radeon_dri2_frame_event_handler (frame=965179,
tv_sec=1281901385, tv_usec=296316, event_data=value optimised out)
at ../../src/radeon_dri2.c:381
#4 0x7fc1333f3703 in drmHandleEvent () from /lib/libdrm.so.2
#5 0x0043168b in WakeupHandler (result=1, pReadmask=0x7e2700)
at ../../dix/dixutils.c:419
#6 0x0045b3b7 in WaitForSomething (
pClientsReady=value optimised out) at ../../os/WaitFor.c:232
#7 0x0042c022 in Dispatch () at ../../dix/dispatch.c:368
#8 0x0042184b in main (argc=9, argv=0x7fff2f714cb8,
envp=value optimised out) at ../../dix/main.c:291
(gdb) up
#2 0x7fc132db2ff1 in radeon_dri2_copy_region (drawable=0x2c79a30,
region=0x7fff2f714390, dest_buffer=value optimised out,
src_buffer=value optimised out) at ../../src/radeon_dri2.c:309
309 ../../src/radeon_dri2.c: No such file or directory.
in ../../src/radeon_dri2.c
(gdb) p dst_private
$1 = (struct dri2_buffer_priv *) 0x2dd1090
(gdb) p *dst_private
$2 = {pixmap = 0x2dcb680, attachment = 0}
(gdb) p *dst_private-pixmap
$3 = {drawable = {type = 32 ' ', class = 0 '\000', depth = 0 '\000',
bitsPerPixel = 0 '\000', id = 0, x = 33, y = 0, width = 0, height = 0,
pScreen = 0x2c8dfd0, serialNumber = 9}, devPrivates = 0x0, refcnt = 33,
devKind = 0, devPrivate = {ptr = 0xc000c, val = 3377751260135424,
uval = 3377751260135424, fptr = 0xc000c}, screen_x = 0,
screen_y = 0, usage_hint = 0}
(gdb) p /x *dst_private-pixmap
$4 = {drawable = {type = 0x20, class = 0x0, depth = 0x0, bitsPerPixel = 0x0,
id = 0x0, x = 0x21, y = 0x0, width = 0x0, height = 0x0,
pScreen = 0x2c8dfd0, serialNumber = 0x9}, devPrivates = 0x0,
refcnt = 0x21, devKind = 0x0, devPrivate = {ptr = 0xc000c,
val = 0xc000c, uval = 0xc000c, fptr = 0xc000c},
screen_x = 0x0, screen_y = 0x0, usage_hint = 0x0}
(gdb)
(gdb) p *region
$7 = {extents = {x1 = 0, y1 = 0, x2 = 480, y2 = 303}, data = 0x0}
(gdb) p *drawable
$9 = {type = 0 '\000', class = 1 '\001', depth = 24 '\030',
bitsPerPixel = 32 ' ', id = 71303212, x = 807, y = 373, width = 480,
height = 303, pScreen = 0x2740be0, serialNumber = 12418050}
(gdb) p *drawable-pScreen
$10 = {myNum = 0, id = 0, x = 0, y = 0, width = 1920, height = 1080,
mmWidth = 508, mmHeight = 285, numDepths = 7, rootDepth = 24 '\030',
allowedDepths = 0x27354f0, rootVisual = 33, defColormap = 32,
minInstalledCmaps = 1, maxInstalledCmaps = 1,
backingStoreSupport = 0 '\000', saveUnderSupport = 0 '\000',
whitePixel = 16777215, blackPixel = 0, GCperDepth = {0x277ee60, 0x277ef50,
0x277f040, 0x277f130, 0x277f220, 0x277f310, 0x277f400, 0x277f4f0, 0x0},
PixmapPerDepth = {0x277f5e0}, devPrivate = 0x277c6d0, numVisuals = 64,
visuals = 0x277d760, root = 0x27817b0, screensaver = {pWindow = 0x0,
wid = 256, blanked = 0 '\000', ExternalScreenSaver = 0},
CloseScreen = 0x7fc133a42af0 glxCloseScreen,
QueryBestSize = 0x53eb60 xf86CursorQueryBestSize,
SaveScreen = 0x7fc132db44e0 RADEONSaveScreen_KMS,
GetImage = 0x55bd50 miSpriteGetImage,
GetSpans = 0x55baf0 miSpriteGetSpans,
SourceValidate = 0x55b8a0 miSpriteSourceValidate,
CreateWindow = 0x4a5350 compCreateWindow,
DestroyWindow = 0x4a4190 compDestroyWindow,
PositionWindow = 0x4a4500 compPositionWindow,
ChangeWindowAttributes = 0x4a3330 compChangeWindowAttributes,
RealizeWindow = 0x4a4910 compRealizeWindow,
UnrealizeWindow = 0x4a4840 compUnrealizeWindow,
ValidateTree = 0x517ba0 miValidateTree, PostValidateTree = 0,
---Type return to continue, or q return to quit---
WindowExposures = 0x533230 xf86XVWindowExposures,
CopyWindow = 0x4a5510 compCopyWindow,
ClearToBackground = 0x563ca0 miClearToBackground,
ClipNotify = 0x4a4000 compClipNotify, RestackWindow = 0,
CreatePixmap = 0x7fc1320908f0 exaCreatePixmap_mixed,
DestroyPixmap = 0x7fc133e83260 XvDestroyPixmap, SaveDoomedAreas = 0,
RestoreAreas = 0, ExposeCopy = 0, TranslateBackingStore = 0,
ClearBackingStore = 0, DrawGuarantee = 0,