[RFC] Avoid quadratic behavior in relocs/cs

Mathias Fröhlich Mathias.Froehlich at gmx.net
Thu May 27 22:22:56 PDT 2010


Hi,

Attached is a change to the radeon reloc emitting code, that stores the reloc 
index in the buffer object. This avoids quadratic runtime behavior in the 
number of emitted buffer object relocs per command stream.
The reloc index is held in an array indexed by command stream number, which 
means that it should be safe to use with multiple command stream objects in 
place.

The patch itself is bigger than needed since it reindents the 'buffer object 
already has an index' case in cs_gem_write_reloc.

This change is driven by cs_gem_write_reloc already showing up noticable in 
profiles of some of my use cases.

Comments?

By the way, it appears to me that space_accounted should be also a per command 
stream member of the buffer object. True?

Greetings

Mathias
-------------- next part --------------
A non-text attachment was scrubbed...
Name: reloc-index-search.diff
Type: text/x-patch
Size: 9911 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20100528/cb3d7a05/attachment-0001.bin>


More information about the dri-devel mailing list