I'm switching buffer pointers rather than doing a buffer copy and I
have changed the flip command to be synchronous (I removed the ASYNC
flip flag from CMD_OP_DISPLAYBUFFER_INFO).
I'm going to try your patch to see if I can get it working. If your
driver doesn't have the same problem as mine then it will give me some
On 12/16/05, Dave Airlie <airlied@...> wrote:
> > I have been working on adding vblank synchronization to the i915 driver=
> > I'm running into a performance problem. I was hoping someone that has d=
> > this type of thing before might have run into this problem with another
> > driver.
> How have you added it? by changing the page flip path?? (adding wait for
> vsync to the pageflip command?)
> I've got about 80% of it implemented here, along the lines of the other
> DRI drivers (radeon etc..) where we wait for the frame to finish and then
> wait for vblank, but it isn't suitable for code drop (i.e. it doesn't
> actually work yet)...
> > couple of OpenGL demo programs to test. One of the demo programs only g=
> > 16 to 18 FPS. This program gets up to 100 FPS when vblank sync is disab=
> > I have done some profiling and have discovered a few things. The proble=
> > not seem to be with waiting for a vblank. intelPageFlip always complete=
> > within 16ms which makes sense because my refresh is set to 60 Hz. What =
> > seeing is that intelWaitIrq often takes up to 100ms when it should norm=
> > take around 8ms with this test program.
> my guess is if you are using the page flip sync the ring buffer is waitin=
> for the next vsync... granted 100ms just seems all wrong..
> David Airlie, Software Engineer
> http://www.skynet.ie/~airlied / airlied at skynet.ie
> Linux kernel - DRI, VAX / pam_smb / ILUG