Hi The ioctl will wait for the VSYNC (vertical sync ) interrupt. This interrupt is generated when a image is written completely to the framebuffer. If you try to to write another image before one has not yet been written completely the flicker will occur. So use WAITFOR_VSYNC to wait till the interrupt happens and write the next image.
-- Best Regards Pramod 2009/6/26 Terry Z <pizbj9...@gmail.com>: > > Thank you Manjunatha: > I got it. > I am now using pxa310 platform, and didn't find the WAITFOR_VSYNC > ioctl. can you please give me some advices. > what should the WAITFOR_VSYNC do in framebuffer? > > best wishes > Terry > > On 6月26日, 下午2时20分, halli manjunatha <hallima...@gmail.com> wrote: >> Hi, >> while writing images to framebuffer we need to ensure that the previous >> frame is written completely >> this is not happening in case when you open the widgets like softkeypad. so >> use of WAITFOR_VSYNC ioctl >> will ensure the completion of previous frame. >> >> In case of normal operation the frame rate is low so you dont see the >> effect, but in case of high frame rate you will see the flickers >> >> 2009/6/26 Terry Z <pizbj9...@gmail.com> >> >> >> >> >> >> >> >> > Thank you Manjunatha >> >> > As you said, you may think that it's the framebuffer driver caused >> > the flicker. but there is no flicker if I do not use the soft >> > keyboard. >> > can you explain how that hanppens? >> >> > best wishes >> > Terry >> >> > On 6月26日, 下午12时14分, halli manjunatha <hallima...@gmail.com> wrote: >> > > Hi Terry, >> > > You need to use the WAITFOR_VSYNC ioctl in the " >> > > frameworks/base/libs/ui/EGLDisplaySurface.cpp " file following is the >> > code >> >> > > if (ioctl (egl_native_window_t::fd, FBIOPAN_DISPLAY, &mInfo)) { >> > > LOGE("ioctl FBIOPAN_DISPLAY failed\n"); >> > > return 0; >> > > } >> >> > > if (ioctl (egl_native_window_t::fd, FBIO_WAITFORVSYNC, 0)) { >> > > LOGE("ioctl FBIO_WAITFORVSYNC failed\n"); >> > > return 0; >> > > } >> >> > > before doing this comment out the call to FBIOPUT_VSCREENINFO >> >> > > On Fri, Jun 26, 2009 at 7:23 AM, Terry Z<pizbj9...@gmail.com> wrote: >> >> > > > When I first start th soft keyboard, I found a "ARMAssembler" from >> > > > the logcat. >> >> > > > I/ARMAssembler( 47): generated >> > > > scanline__00000077:03515104_00001A01_00000000 [ 46 ipp] (68 ins) at >> > > > [0x2268f0:0x226a00] in 335693 ns >> > > > I/InetAddress( 83): Unknown hostwww.google.com, throwing >> > > > UnknownHostException >> > > > E/ActivityThread( 83): Failed to find provider info for >> > > > android.server.checkin >> > > > E/GoogleHttpClient( 83): Error recording stats >> > > > E/GoogleHttpClient( 83): java.lang.IllegalArgumentException: Unknown >> > > > URL content://android.server.checkin/stats >> > > > E/GoogleHttpClient( 83): at >> > > > android.content.ContentResolver.insert(ContentResolver.java:473) >> > > > E/GoogleHttpClient( 83): at >> > > > com.google.android.net.GoogleHttpClient.executeWithoutRewriting >> > > > (GoogleHttpClient.java:192) >> > > > E/GoogleHttpClient( 83): at >> > > > com.google.android.net.GoogleHttpClient.execute(GoogleHttpClient.java: >> > > > 212) >> > > > E/GoogleHttpClient( 83): at >> > > > com.google.android.net.GoogleHttpClient.execute(GoogleHttpClient.java: >> > > > 282) >> > > > E/GoogleHttpClient( 83): at >> > > > com.android.googlesearch.SuggestionProvider.query >> > > > (SuggestionProvider.java:134) >> > > > E/GoogleHttpClient( 83): at android.content.ContentProvider >> > > > $Transport.query(ContentProvider.java:129) >> > > > E/GoogleHttpClient( 83): at >> > > > android.content.ContentResolver.query(ContentResolver.java:149) >> > > > E/GoogleHttpClient( 83): at com.android.launcher.Search >> > > > $SuggestionsAdapter.getSuggestions(Search.java:661) >> > > > E/GoogleHttpClient( 83): at com.android.launcher.Search >> > > > $SuggestionsAdapter.runQueryOnBackgroundThread(Search.java:602) >> > > > E/GoogleHttpClient( 83): at >> > > > android.widget.CursorFilter.performFiltering(CursorFilter.java:49) >> > > > E/GoogleHttpClient( 83): at android.widget.Filter >> > > > $RequestHandler.handleMessage(Filter.java:215) >> > > > E/GoogleHttpClient( 83): at android.os.Handler.dispatchMessage >> > > > (Handler.java:99) >> > > > E/GoogleHttpClient( 83): at android.os.Looper.loop(Looper.java: >> > > > 123) >> > > > E/GoogleHttpClient( 83): at android.os.HandlerThread.run >> > > > (HandlerThread.java:60) >> > > > W/GoogleSearch.SuggestionProvider( 83): Error >> > > > W/GoogleSearch.SuggestionProvider( 83): >> > > > java.net.UnknownHostException: Host is unresolved:www.google.com:80 >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > java.net.Socket.connect(Socket.java:1002) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > org.apache.http.conn.scheme.PlainSocketFactory.connectSocket >> > > > (PlainSocketFactory.java:117) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> >> > org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection >> > > > (DefaultClientConnectionOperator.java:129) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > org.apache.http.impl.conn.AbstractPoolEntry.open >> > > > (AbstractPoolEntry.java:164) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > org.apache.http.impl.conn.AbstractPooledConnAdapter.open >> > > > (AbstractPooledConnAdapter.java:119) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > org.apache.http.impl.client.DefaultRequestDirector.execute >> > > > (DefaultRequestDirector.java:348) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > org.apache.http.impl.client.AbstractHttpClient.execute >> > > > (AbstractHttpClient.java:555) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > org.apache.http.impl.client.AbstractHttpClient.execute >> > > > (AbstractHttpClient.java:487) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > android.net.http.AndroidHttpClient.execute(AndroidHttpClient.java:288) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > com.google.android.net.GoogleHttpClient.executeWithoutRewriting >> > > > (GoogleHttpClient.java:173) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > com.google.android.net.GoogleHttpClient.execute(GoogleHttpClient.java: >> > > > 212) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > com.google.android.net.GoogleHttpClient.execute(GoogleHttpClient.java: >> > > > 282) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > com.android.googlesearch.SuggestionProvider.query >> > > > (SuggestionProvider.java:134) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > android.content.ContentProvider$Transport.query(ContentProvider.java: >> > > > 129) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > android.content.ContentResolver.query(ContentResolver.java:149) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > com.android.launcher.Search$SuggestionsAdapter.getSuggestions >> > > > (Search.java:661) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > com.android.launcher.Search >> > > > $SuggestionsAdapter.runQueryOnBackgroundThread(Search.java:602) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > android.widget.CursorFilter.performFiltering(CursorFilter.java:49) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > android.widget.Filter$RequestHandler.handleMessage(Filter.java:215) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > android.os.Handler.dispatchMessage(Handler.java:99) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > android.os.Looper.loop(Looper.java:123) >> > > > W/GoogleSearch.SuggestionProvider( 83): at >> > > > android.os.HandlerThread.run(HandlerThread.java:60) >> >> > > -- >> > > Regards >> > > Manjunatha H- 隐藏被引用文字 - >> >> > > - 显示引用的文字 - >> >> -- >> Regards >> Manjunatha H- 隐藏被引用文字 - >> >> - 显示引用的文字 - > > > --~--~---------~--~----~------------~-------~--~----~ unsubscribe: android-porting+unsubscr...@googlegroups.com website: http://groups.google.com/group/android-porting -~----------~----~----~----~------~----~------~--~---