On Tue, Jan 22, 2013 at 10:31:11AM +0200, Terje Bergström wrote: > On 14.01.2013 18:06, Thierry Reding wrote: > > +static int tegra_dc_page_flip(struct drm_crtc *crtc, struct drm_framebuffer *fb, > > + struct drm_pending_vblank_event *event) > > +{ > > + struct tegra_framebuffer *newfb = to_tegra_fb(fb); > > + struct tegra_dc *dc = to_tegra_dc(crtc); > > + struct drm_device *drm = crtc->dev; > > + unsigned long flags; > > + > > + if (dc->event) > > + return -EBUSY; > > + > > + tegra_dc_set_base(dc, 0, 0, newfb); > > + > > + if (event) { > > + event->pipe = dc->pipe; > > + > > + spin_lock_irqsave(&drm->event_lock, flags); > > + dc->event = event; > > + spin_unlock_irqrestore(&drm->event_lock, flags); > > + > > + drm_vblank_get(drm, dc->pipe); > > + } > > + > > + return 0; > > +} > > The patch seems fine to me. I have a question for a follow-up. > > In downstream dc driver we initiate a page flip, and assign a fence > (syncpt id, value) to it. We return the fence to user space. Then when > the actual page flip is done, dc increments the sync point. > > User space can take the fence and use it for synchronizing graphics > operations. In downstream, we use that fence to be able to submit > operations to graphics units and synchronize them to the flip by adding > a host wait. It improves performance, because we can prepare and send > the graphics operations to hardware while flip is still happening. > > Is this something we could do in tegra-drm, too? DRM's page flip IOCTL > doesn't seem to have a way to pass a fence back from fence, so we'd need > to find a way to pass the fence back to user space. > > Of course, this has the prerequisite of having support for syncpts, > which I hoped we would get to 3.9. The review for host1x patches seem to > have stalled, so that's iffy. Yes, I haven't found as much time as I would have liked to look at the latest patches. Perhaps there will be a time slot at the end of the week. I thought there was also the remaining issue with the memory allocator that Lucas (Cc'ed) was working on? Thierry
Attachment:
pgp8_ikUYlN0m.pgp
Description: PGP signature