Hi, I am assuming you are working on ARM, and the vsync is edge triggered. Looks like your vsync is trigged at a constant rate.
In kernel, it will re-trigger the interrupt in resend.c right after enable_irq. So, you may encounter tearing because of this. (At this case, it is not real hardware vsync) You can, 1. disable CONFIG_HARDIRQS_SW_RESEND or 2. register it as level trigger or 3. register a retrigger in gpio.c The interrupt status is *sticky*, you may need to clear its status before enable_irq. Hi Arve, Do you have better solution? On 3月29日, 上午11時17分, Manish Sharma <manishsharm...@gmail.com> wrote: > Hi All, > > I am getting tearing issue with ApiDemos->Graphics->OpenGL applications. Has > anyone checked these applications on there platform? > I have VGA display and the psuedo fb implementation is as follows: > > pan_display() > { > 1. gets the yoffset(0/480) and updates the display base address in a > global variable > 2. enables the interuppt on vertical sync > 3. waits for event > > } > > isr() > { > 1. clears the interrupt > 2. gets the base address from global variable and updates the actual > display register > 3. sends the wakeup event to the pan_display > > } > > My understanding is pan_display will be called by EGLsurface context and isr > is in interrupt context. > The functionality of EGLsurface is to update the active FB for display and > use the inactive FB for processing. > Means only EGL is updating the FB. Is this correct? > With the above sync between pan_display and isr using wait event tearing > should not occur. But still we are getting...:( > Your observations and inputs are most welcome. > > My setup is from master branch with 2.6.25 android kernel for my platform. > > Thanks and Regards, > MS --~--~---------~--~----~------------~-------~--~----~ unsubscribe: android-porting+unsubscr...@googlegroups.com website: http://groups.google.com/group/android-porting -~----------~----~----~----~------~----~------~--~---