Synchronization framework
Hey,
For intel/nouveau hybrid graphics I'm interested in this since it would allow me to synchronize between intel and nvidia cards without waiting for rendering to complete.
I'm worried about the api though, nouveau and intel already have existing infrastructure to deal with fencing so exposing additional ioctl's will complicate the implementation. Would it be possible to never expose this interface to userspace but keep it inside the kernel only?
nouveau_gem_ioctl_pushbuf is what's used for nouveau. If any dmabuf synch framework could hook into that then userspace would never have to act differently on shared bo's.
I haven't looked at intel and amd, but from a quick glance it seems like they already implement fencing too, so just some way to synch up the fences on shared buffers seems like it could benefit all graphics drivers and the whole userspace synching could be done away with entirely.
Cheers,
Maarten
Hey Erik,
Op 07-06-12 19:35, Erik Gilling schreef:
Quoted 7 lines
Quoted 5 lines · Maarten Lankhorst
I haven't looked at intel and amd, but from a quick glance it seems like they already implement fencing too, so just some way to synch up the fences on shared buffers seems like it could benefit all graphics drivers and the whole userspace synching could be done away with entirely.
Quoted 6 lines
It's important to have some level of userspace API so that GPU generated graphics can participate in the graphics pipeline. Think of the case where you have a software video codec streaming textures into the GPU. It needs to know when the GPU is done with those textures so it can reuse the buffer.
In the graphics case this problem already has to be handled without dma-buf, so adding any extra synchronization api for userspace that is only used when the bo is shared is a waste.
I do agree you need some way to synch userspace though, but I think adding a new api for userspace is not the way to go.
Cheers,
Maarten
PS: re-added cc's that seem to have fallen off from your mail.
Quoted 2 lines · Maarten Lankhorst
I do agree you need some way to synch userspace though, but I think adding a new api for userspace is not the way to go.
I'm not sure I understand how you propose to expose the functionality to userspace in a way that does not depend on the driver that "owns" the buffer w/o adding an API.
-Erik