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
