[Mesa-dev] r600 Evergreen Compute and compute_memory_grow_pool

Hrustich, John john.hrustich at lmco.com
Mon Jan 20 13:32:11 PST 2014


The compute memory pool used by the gallium r600 driver seems to be problematic.  The pool looks to be a single radeon buffer object.  There could be multiple maps set up into that single buffer object.  If there is a need to grow the pool, then the resource associated with the buffer object is destroyed, which results in all of the maps for that buffer object also being destroyed.  When the new larger pool is created, the pointers that the application has to the mapped region are no longer valid.

A temporary work-around would appear to be to make sure that the buffer pool is large enough that there isn't a need to grow the pool once any maps into it are created.  A longer term solution seems much harder.  Even if the maps could all be precisely recreated into the newly allocated buffer object, there would be a period of time when the pointers held by the application would be invalid.

John Hrustich
LM Master Software Architect, Mission Systems and Training
Lockheed Martin Corporation
1801 State Route 17C, Mail Drop 0220, Owego, NY 13827
O 607-751-4206 | E John.Hrustich at lmco.com
100 Years of Accelerating Tomorrow

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140120/1328f97e/attachment.html>


More information about the mesa-dev mailing list