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.hrust...@lmco.com
100 Years of Accelerating Tomorrow

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to