>
> > implies the same behavior. Some rework is needed there (which I think it's
> > good, because we should avoid nebulous ownership semantics)
>
> I don't think the current semantics are nebulous. The TemporaryBuffers are a
> Buffer resource; they're a guarantee that they have a buffer locked for a
> particular purpose for a period of time. Likewise the {mgm/mga}::Buffers are a
> Buffer resource too, but they have the lifetime of the allocation we request
> from the driver.
Furthermore, from mg::Display::post_renderables_if_optimizable()'s perspective, the buffers that are sent there don't even have to be associated with the BufferQueue stuff. We'll hit problems with the cursor (and, in ~kdub/mir/demo-titlebar, the decorations), if we start requiring that the resource passed to the 2d optimized function is sourced from the BufferQueues.
>
> > implies the same behavior. Some rework is needed there (which I think it's
> > good, because we should avoid nebulous ownership semantics)
>
> I don't think the current semantics are nebulous. The TemporaryBuffers are a
> Buffer resource; they're a guarantee that they have a buffer locked for a
> particular purpose for a period of time. Likewise the {mgm/mga}::Buffers are a
> Buffer resource too, but they have the lifetime of the allocation we request
> from the driver.
Furthermore, from mg::Display: :post_renderabl es_if_optimizab le()'s perspective, the buffers that are sent there don't even have to be associated with the BufferQueue stuff. We'll hit problems with the cursor (and, in ~kdub/mir/ demo-titlebar, the decorations), if we start requiring that the resource passed to the 2d optimized function is sourced from the BufferQueues.