EXA

Michel Dänzer michel at tungstengraphics.com
Thu Aug 2 02:06:37 PDT 2007


On Thu, 2007-08-02 at 11:26 +0300, sshachar at t2.technion.ac.il wrote:
> > I'd trace why exaDoMigration doesn't move them in.
> 
> I could use a little help understanding this trace.
> It appears pixmaps are pinned. If I got it right... Why would virtually all
> pixmaps be pinned?

0x64fc28 is probably the screen pixmap, which is pinned 'offscreen' and
thus not a problem. The others are most likely glyphs, which are
currently pinned to system memory. Carl Worth is working on fixing that.


BTW, you seem to be using the "smart" or "greedy" migration heuristic -
which version of the X server is this? Does Option "MigrationHeuristic"
"always" make a difference?


Also note that as of xserver 1.3.99, the EXA driver can provide a hook
that defines when a pixmap is to be considered 'offscreen'. As you're
dealing with virtual hardware, maybe you could do without a separate
offscreen area and just 'accelerate' from system memory.


> Here some of the trace (of most interest is the tail of the excerpt):
> 
> ============== 4915200 < 33554432
> ============ initial memory block of 28639232
> UseMem: 0x650320 score 1001
> EXA fallback at ExaCheckPolyFillRect: to 0x650320
> UseMem: 0x712238 score 1001
> EXA fallback at ExaCheckPolyFillRect: to 0x712238
> EXA fallback at ExaCheckPolyGlyphBlt: to 0x712238
> UseMem: 0x712238 score -1
> EXA fallback at ExaCheckGetImage: from 0x712238
> UseMem: 0x712238 score 1001
> EXA fallback at ExaCheckPolyFillRect: to 0x712238
> EXA fallback at ExaCheckPolyGlyphBlt: to 0x712238
> UseMem: 0x712238 score -1
> EXA fallback at ExaCheckGetImage: from 0x712238
> UseMem: 0x712328 score 1001
> EXA fallback at ExaCheckPutImage: to 0x712328
> UseScreen: not migrating pinned pixmap 0x64fc28
> UseScreen 0x712328 score -1
> EXA fallback at exaFillRegionTiled: from 0x712328 to 0x6503c8
> UseScreen 0x739ae8 score 1001
> ================= ============ allocating a new pixmap 1
> Alloc 0x1000 -> 0x4b0000 (0x4b0000)
> -> 0x0 (0x4b0000) (32x32)
> UseScreen: not migrating pinned pixmap 0x64fc28
> UseMem: 0x70e2b8 score 1001
> EXA fallback at ExaCheckPutImage: to 0x70e2b8
> UseMem: 0x70e2b8 score -1
> EXA fallback at ExaCheckPutImage: to 0x70e2b8
> UseMem: 0x70e360 score 1001
> EXA fallback at ExaCheckPutImage: to 0x70e360
> UseMem: 0x70e360 score -1
> EXA fallback at ExaCheckPutImage: to 0x70e360
> EXA fallback at ExaCheckPushPixels: from 0x70e2b8 to 0x6503c8
> EXA fallback at ExaCheckPushPixels: from 0x70e360 to 0x6503c8
> Save (nil) (0x4b0000) (32x32)
> Free 0x1000 -> 0x4b0000 (0x4b0000)
>         done freeing
> EXA fallback at ExaCheckCopyArea: from 0x739ae8 to 0x6503c8
> EXA fallback at ExaCheckPaintWindow: from 0x6503c8
> ============ initial memory block of 28639232
> UseScreen 0x739ae8 score 1
> UseScreen: not migrating pinned pixmap 0x64fc28
> EXA fallback at exaCopyNtoN: from 0x6503c8 to 0x739ae8
> EXA fallback at ExaCheckPushPixels: from 0x70e2b8 to 0x6503c8
> EXA fallback at ExaCheckPushPixels: from 0x70e360 to 0x6503c8
> UseScreen: not migrating pinned pixmap 0x64fc28
> UseMem: 0x2d5d7008 score 1001
> EXA fallback at ExaCheckPutImage: to 0x2d5d7008
> UseMem: 0x2d5d7008 score -1
> EXA fallback at ExaCheckPutImage: to 0x2d5d7008
> UseMem: 0x2d5d7008 score -2
> EXA fallback at ExaCheckPutImage: to 0x2d5d7008
> UseMem: 0x2d5d7008 score -3
> EXA fallback at ExaCheckPutImage: to 0x2d5d7008
> UseMem: 0x2d5d7008 score -4
> EXA fallback at ExaCheckPutImage: to 0x2d5d7008
> UseMem: 0x2d5d7008 score -5
> EXA fallback at ExaCheckPutImage: to 0x2d5d7008
> UseMem: 0x2d5d7008 score -6
> EXA fallback at ExaCheckPutImage: to 0x2d5d7008
> UseMem: 0x2d5d7008 score -7
> EXA fallback at ExaCheckPutImage: to 0x2d5d7008
> UseMem: 0x2d5d7008 score -8
> EXA fallback at ExaCheckPutImage: to 0x2d5d7008
> UseMem: 0x2d5d7008 score -9
> EXA fallback at ExaCheckPutImage: to 0x2d5d7008
> UseMem: 0x2d5d7008 score -10
> EXA fallback at ExaCheckPutImage: to 0x2d5d7008
> UseMem: 0x2d5d7008 score -11
> EXA fallback at ExaCheckPutImage: to 0x2d5d7008
> exaComposite called
> UseMem: 0x2d548008 score 1001
> UseMem: 0x2d5d7008 score -12
> UseMem: 0x2d5d7008 score -13
> Composite fallback: op Over, 
>                     src  0x2d5d7008:m fmt 0x20030888 (450x325 (0, 
>                     mask 0x2d5d7008:m fmt ARGB8888 (450x325 (0 0, 
>                     dst  0x2d548008:m fmt 0x20020888 (450x325 (0, 
> EXA fallback at ExaCheckComposite: from picts 0x70bec0/0x70bf30 to pict
> 0x70be38
> UseScreen: not migrating pinned pixmap 0x64fc28
> UseScreen 0x739ae8 score 2
> EXA fallback at exaCopyNtoN: from 0x739ae8 to 0x6503c8
> UseScreen: not migrating pinned pixmap 0x64fc28
> UseScreen 0x2d548008 score -1
> EXA fallback at exaFillRegionTiled: from 0x2d548008 to 0x7098c0
> UseScreen 0x739ae8 score 3
> UseScreen: not migrating pinned pixmap 0x64fc28
> EXA fallback at exaCopyNtoN: from 0x6503c8 to 0x739ae8
> EXA fallback at ExaCheckPushPixels: from 0x70e2b8 to 0x6503c8
> EXA fallback at ExaCheckPushPixels: from 0x70e360 to 0x6503c8
> UseMem: 0x2d5d7008 score 1001
> EXA fallback at ExaCheckPolyFillRect: to 0x2d5d7008
> UseMem: 0x2d5d7008 score -1
> UseMem: 0x2d548008 score 0
> EXA fallback at exaCopyNtoN: from 0x2d548008 to 0x2d5d7008
> UseMem: 0x732cc0 score 1001
> EXA fallback at ExaCheckPutImage: to 0x732cc0
> exaComposite called
> UseMem: 0x2d5d7008 score -2
> UseMem: 0x732cc0 score -1
> UseMem: 0x732cc0 score -2
> Composite fallback: op Over, 
>                     src  0x732cc0:m fmt 0x20030888 (36x36 (0 0)), 
>                     mask 0x732cc0:m fmt ARGB8888 (36x36 (0 0)), 
>                     dst  0x2d5d7008:m fmt 0x20020888 (450x325 (0, 
> EXA fallback at ExaCheckComposite: from picts 0x707dd0/0x707e40 to pict
> 0x70bee8
> UseMem: 0x707ee0 score 1001
> EXA fallback at ExaCheckPolyFillRect: to 0x707ee0
> UseMem: 0x732cc0 score 1001
> EXA fallback at ExaCheckPolyFillRect: to 0x732cc0
> exaComposite called
> EXA fallback at exaDoMigration: Pixmap 0x708b18 (9x8) pinned in sys
> UseMem: 0x732cc0 score -1
> UseMem: 0x708b18 score 1000
> Composite fallback: op 0xc, 
>                     src  0x708b18:m fmt ARGB8888 (9x8 (0 0)), 
>                     mask None, 
>                     dst  0x732cc0:m fmt ARGB8888 (95x11 (0 0)), 
> EXA fallback at ExaCheckComposite: from picts 0x708b80/0x0 to pict 0x708ac0
> exaComposite called
> EXA fallback at exaDoMigration: Pixmap 0x708b18 (1x8) pinned in sys
> UseMem: 0x732cc0 score -2
> UseMem: 0x708b18 score 1000
> Composite fallback: op 0xc, 
>                     src  0x708b18:m fmt ARGB8888 (1x8 (0 0)), 
>                     mask None, 
>                     dst  0x732cc0:m fmt ARGB8888 (95x11 (0 0)), 
> EXA fallback at ExaCheckComposite: from picts 0x708b80/0x0 to pict 0x708ac0
> exaComposite called
> EXA fallback at exaDoMigration: Pixmap 0x708b18 (5x6) pinned in sys
> UseMem: 0x732cc0 score -3
> UseMem: 0x708b18 score 1000
> Composite fallback: op 0xc, 
>                     src  0x708b18:m fmt ARGB8888 (5x6 (0 0)), 
>                     mask None, 
>                     dst  0x732cc0:m fmt ARGB8888 (95x11 (0 0)), 
> EXA fallback at ExaCheckComposite: from picts 0x708b80/0x0 to pict 0x708ac0
> exaComposite called
> EXA fallback at exaDoMigration: Pixmap 0x708b18 (5x9) pinned in sys
> UseMem: 0x732cc0 score -4
> UseMem: 0x708b18 score 1000
> 
> XXXXXXXXXXX etc'... and then for instance: XXXXXXXXXXXXXXXX
> UseScreen: not migrating pinned pixmap 0x64fc28
> UseScreen 0x7b90b8 score -10
> EXA fallback at exaCopyNtoN: from 0x7b90b8 to 0x7ac478
> UseScreen: not migrating pinned pixmap 0x64fc28
> UseScreen 0x7367d8 score 11
> UseScreen 0x7367d8 score 12
> UseScreen: not migrating pinned pixmap 0x64fc28
> exaComposite called
> UseScreen: not migrating pinned pixmap 0x64fc28
> UseScreen 0x735310 score 2
> Composite fallback: op Over, 
>                     src  0x735310:m fmt ARGB8888 (24x24 (0 0)), 
>                     mask None, 
>                     dst  0x6503c8:s fmt 0x20020888 (800x600 (0 0, 
> EXA fallback at ExaCheckComposite: from picts 0x738140/0x0 to pict 0x738198
> UseScreen: not migrating pinned pixmap 0x64fc28
> UseScreen 0x7367d8 score 13
> UseScreen 0x7367d8 score 14
> UseScreen: not migrating pinned pixmap 0x64fc28
> exaComposite called
> UseScreen: not migrating pinned pixmap 0x64fc28
> UseScreen 0x735310 score 3
> Composite fallback: op Over, 
>                     src  0x735310:m fmt ARGB8888 (24x24 (0 0)), 
>                     mask None, 
>                     dst  0x6503c8:s fmt 0x20020888 (800x600 (0 0, 
> EXA fallback at ExaCheckComposite: from picts 0x738140/0x0 to pict 0x738198
> UseScreen 0x7b65b0 score 1001
> ================= ============ allocating a new pixmap 3
> Alloc 0x1900 -> 0x4b1900 (0x4b1900)
> -> 0x0 (0x4b1900) (40x40)
> UseScreen 0x7367d8 score 15
> exaComposite called
> UseScreen 0x7b65b0 score 1
> UseScreen 0x735310 score 4
> Composite fallback: op Over, 
>                     src  0x735310:m fmt ARGB8888 (24x24 (0 0)), 
>                     mask None, 
>                     dst  0x7b65b0:s fmt 0x20020888 (40x40 (0 0)), 
> EXA fallback at ExaCheckComposite: from picts 0x738140/0x0 to pict 0x79f9c0
> UseScreen: not migrating pinned pixmap 0x64fc28
> 
> 
> 
-- 
Earthling Michel Dänzer           |          http://tungstengraphics.com
Libre software enthusiast         |          Debian, X and DRI developer




More information about the xorg mailing list