描画回りを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