On Sat, Jul 15, 2017 at 01:58:19AM +0900, Tomasz Figa wrote:
> > So, the right place to do so would be inside platform_android.c,
> > right? And since I don't see any private struct that could store such fence
> > there, one option would be to extend the struct dri2_egl_surface for 
> > android,
> > adding private data there. Does that make sense?
> 
> I'd say these fences are not 100% Android-specific anymore. They are
> an upstream Linux feature and can be used on other platforms as well.
> I think wiring this properly in EGL DRI2 core would make sense,
> especially since this is the place where the context is being
> destroyed (platform_android doesn't handle context destruction).

OK, so I'm trying to understand what "wiring this properly in EGL DRI2 core"
really means.

Android supports receiving a fence on its enqueue_buffer function (and some
others), but I assume not every platform does (or wants to) do that.

So would it make sense to create a fence before calling swap_buffers,
destroy_surface, and related functions, and storing such fence so the platform
specific code can pass it around if needed?

And I assume that's something optional, we only do that if the DRI2 fence
extension exists, and maybe also check for some extra flag that can be set by
the platform?

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

Reply via email to