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>