exaCopyNtoN calls driver Prepare/Done Copy with no Copy in between
Dave Airlie
airlied at gmail.com
Sun Nov 16 17:21:57 PST 2008
>>> TRACE: RADEONPrepareCopyCP
>>> TRACE: RADEONDoneCopyCP
>>> copy without emission
>>>
>>> Backtrace:
>>> 0: /usr/bin/Xorg(xorg_backtrace+0x3b) [0x812b9ab]
>>> 1: /usr/lib/xorg/modules/drivers//radeon_drv.so [0xb7c45353]
>>> 2: /usr/lib/xorg/modules//libexa.so(exaCopyNtoN+0x835) [0xb7ba03c5]
>>> 3: /usr/lib/xorg/modules//libfb.so(fbCopyRegion+0x161) [0xb7bbb6c1]
>>> 4: /usr/lib/xorg/modules//libexa.so(exaCopyWindow+0xe0) [0xb7b9fa60]
>>> 5: /usr/bin/Xorg [0x816f680]
>>> 6: /usr/bin/Xorg [0x811b244]
>>> 7: /usr/bin/Xorg(compCopyWindow+0xb4) [0x813ccd4]
>>> 8: /usr/bin/Xorg(miSlideAndSizeWindow+0x743) [0x8123043]
>>> 9: /usr/bin/Xorg(compResizeWindow+0xb8) [0x813d1d8]
>>> 10: /usr/bin/Xorg(ConfigureWindow+0xa91) [0x8072251]
>>> 11: /usr/bin/Xorg(ProcConfigureWindow+0x92) [0x8085412]
>>> 12: /usr/bin/Xorg(Dispatch+0x34f) [0x8085e6f]
>>> 13: /usr/bin/Xorg(main+0x47d) [0x806b6ed]
>>> 14: /lib/libc.so.6(__libc_start_main+0xe5) [0xb7d286d5]
>>> 15: /usr/bin/Xorg [0x806aad1]
>>> TRACE: RADEONMarkSyncCP
>>>
>>>
>>> I hacked up my exa driver to report these and I get a fair few of them
>>> at startup
>>>
>>> miClearToBackground and miSlideAndSizeWindow seems to be main entry
>>> points into the issue
>>>
>>> I also see some from exaFillRegionTiled
>>
>> Sounds like maybe exaCopyNtoN and exaFillRegionTiled should bail early
>> if nbox == 0. Or maybe that should really be done higher up, e.g. the
>> damage layer could not call down unless really necessary.
>
> Okay one of them was from CopyNtoN getting nbox == 0, so I just made
> it bail, simple patch so I checked it in.
>
> The other is from the tiled code doing the second pass for leftover areas.
>
> Initial patch is attached it just prechecks if the copies will be
> needed and avoids them if they aren't, this one I thought
> might need some review.
>
Obligatory logic error.
Updated patch.
Dave.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-exa-avoid-doing-prepare-done-without-intervening-co.patch
Type: text/x-patch
Size: 2829 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20081117/943b552a/attachment.bin>
More information about the xorg
mailing list