I have been working on adding vblank synchronization to the i915 driver and
I'm running into a performance problem. I was hoping someone that has done
this type of thing before might have run into this problem with another
driver.

Please keep in mind that I am fairly new to Linux. Working on this driver
has been my introduction to X and the DRI architecture. Also, I have no
previous experience with OpenGL or 3D graphics programming in general.

I have enabled vblank synchronization using the hardware interrupt. It
works fine.
I never get screen tearing and FPS is limited to the vertical refresh rate
as expected.

The problem is that performance is horrible with some apps. I am using a
couple of OpenGL demo programs to test. One of the demo programs only gets
16 to 18 FPS. This program gets up to 100 FPS when vblank sync is disabled.
I have done some profiling and have discovered a few things. The problem does
not seem to be with waiting for a vblank. intelPageFlip always completes
within 16ms which makes sense because my refresh is set to 60 Hz. What I am
seeing is that intelWaitIrq often takes up to 100ms when it should normally
take around 8ms with this test program.

Something is causing the hardware to take an extra long time to process the
ring buffers. I never see this delay if I have vblank sync disabled (meaning
that I am using intelCopyBuffer instead of intelPageFlip).

I would appreciate any ideas.

Thanks,
Dave


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_idv37&alloc_id865&op=click
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to