描画回りをstraceしてみた
runtimeをstraceでログを吐かせ、/dev/graphics/fb0をオープンしているところと関係してそうなところをリストアップ。100%勘。
08:13:07.450810 open("/dev/graphics/fb0", O_RDWR|O_LARGEFILE) = 17 08:13:07.473193 ioctl(17, FBIOGET_FSCREENINFO, 0x4259ad9c) = 0 08:13:07.486949 ioctl(17, FBIOGET_VSCREENINFO, 0x4259acfc) = 0 08:13:07.501081 ioctl(17, FBIOPUT_VSCREENINFO, 0x4259acfc) = 0 08:13:07.515091 ioctl(17, FBIOGET_VSCREENINFO, 0x4259acfc) = 0 08:13:07.528665 writev(3, [{"\4", 1}, {"EGLDisplaySurface\0", 18}, {"using (fd=1 7)\nid = w100fb\nxres = 640 px\nyres = 480 px\nxres_vi rtual = 640 px\nyres_virtual = 960 px\nbpp = 16\nr = 11:5\ng = 5:6\nb = 0:"..., 203}], 3) = 222 08:13:07.555731 writev(3, [{"\4", 1}, {"EGLDisplaySurface\0", 18}, {"width = 51 mm (318.745087 dpi)\nheight = 38 mm (320.842102 dpi)\nrefresh rate = 797931.75 Hz\n\0", 105}], 3) = 124 08:13:07.600824 ioctl(17, FBIOGET_FSCREENINFO, 0x4259ad9c) = 0 08:13:07.614719 mmap2(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_SHARED, 17, 0) = 0x4259b000
writevしているところが読みにくいので\nを改行に置換させたらこんな感じに。
using (fd=17) id = w100fb xres = 640 px yres = 480 px xres_virtual = 640 px yres_virtual = 960 px bpp = 16 r = 11:5 g = 5:6 b = 0: ※たぶん0:5だと思われ width = 51 mm (318.745087 dpi) height = 38 mm (320.842102 dpi) refresh rate = 797931.75 Hz
どうみてもダブルバッファです。本当にありがとうございました。…つかリフレッシュレートが800kHzとは…恐るべしCGシリコン液晶(違)
ちなみにブリリアントサービスメソッドはC700でも問題なさげ。悲しいことに半分しか画面更新してくれないからその効果が体感できませんが orz