On Tue, Apr 8, 2014 at 1:49 PM, Thomas Hellstrom <thellst...@vmware.com> wrote:
> On 04/08/2014 10:28 PM, Ander Conselvan de Oliveira wrote:
>> From: Ander Conselvan de Oliveira <ander.conselvan.de.olive...@intel.com>
>>
>> Changes from previous version:
>>
>>   - make it clearer that the interface is optional;
>
> No! this is still a NAK!

I don't agree with your NAK, Thomas.  We can't write APIs that only
supports what every graphics card out there can do.  GL itself is a
good example of how functionality or fast-paths can be made available
in an optional way through extensions.  In this case, we're missing
out on a zero-copy path for texturing from a sw-rendered buffer.  The
intended usecase is for one process to use gbm (that is, not loading a
GL driver or using GL API) to allocate a buffer and render to it using
CPU rendering.  Then share it by passing a dma-buf fd across a socket
to a GL-using process, which will then be able to create a GL texture
from it and texture from it.

> The reason is, just like the last time, that as soon as the major
> drivers implement this, The users of the interface will stop caring
> about the "slowpath" (no mmap() available). There are some other good
> reasons too, like for example the buffers being tiled or uncached.
>
> If you desperately need a generic way to access accelerated buffer
> contents using the CPU, then implement something similar to
> glTex[sub]Image() or gl[read|write]Pixels.

The semantics of the map/unmap API is that unmap acts as a flush and
the pixels in the mapped buffer aren't guaranteed to be visible to
other users of the gbm bo until after map.  That lets you implement
map as a malloc and unmap as glTexImage2D + free.  Which is the path
the application would have to fall back to anyway.  But instead of
forcing everybody to go through the copy path (as we would if we
implemented something like glTexImage2D in gbm), we now have the
option of eliminating the copy when the underlying GPU architecture
allows it.

Kristian

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

Reply via email to