Dynabook SS 2010 + Ubuntu で全画面表示をもっと高速化

2010/12/18 (土)

Tridentのドライバを使うようにして、
ある程度は早くなったSS2010のUbuntu君。

それでもまだまだ鈍い感じは否めない。

もっと早くしてやろうと思えば、
解像度を下げるのも手だろうけど、さすがにそれはやりたくない。

他にできそうなことといえば、色数を減らすことか?

ということで、24ビットカラーを諦めて16ビットカラーにしてみる。
xorg.confはこんな感じ(ビデオ周りだけ抜粋)。

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
        HorizSync    28.0-50.0
        VertRefresh  60.0-60.0
EndSection

Section "Device"
        Identifier  "Card0"
        Driver      "trident"
        BusID       "PCI:1:0:0"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth 16
        SubSection "Display"
                Viewport   0 0
                Depth     16
                Modes      "1024x768"
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Modes      "1024x768"
        EndSubSection
EndSection

「DefaultDepth 16」を指定しているのがミソ。

ということで、ベンチマークテスト。

まずは、24ビットカラーの結果。

$ x11perf -repeat 5 -rect500 -f14text16 -copypixwin500 -putimage500 -shmput500 
x11perf - X11 performance program, version 1.2
The X.Org Foundation server version 10900000 on :0.0
from SS2010
Mon Dec 13 16:48:26 2010

Sync time adjustment is 0.1498 msecs.

   3000 reps @   1.7165 msec (   583.0/sec): 500x500 rectangle
   3000 reps @   1.7319 msec (   577.0/sec): 500x500 rectangle
   3000 reps @   1.7562 msec (   569.0/sec): 500x500 rectangle
   3000 reps @   1.8596 msec (   538.0/sec): 500x500 rectangle
   3000 reps @   1.9149 msec (   522.0/sec): 500x500 rectangle
  15000 trep @   1.7958 msec (   557.0/sec): 500x500 rectangle

 800000 reps @   0.0103 msec ( 97600.0/sec): Char16 in 40-char line (k14)
 800000 reps @   0.0092 msec (109000.0/sec): Char16 in 40-char line (k14)
 800000 reps @   0.0086 msec (116000.0/sec): Char16 in 40-char line (k14)
 800000 reps @   0.0083 msec (120000.0/sec): Char16 in 40-char line (k14)
 800000 reps @   0.0084 msec (119000.0/sec): Char16 in 40-char line (k14)
4000000 trep @   0.0090 msec (112000.0/sec): Char16 in 40-char line (k14)

    800 reps @  11.0048 msec (    90.9/sec): Copy 500x500 from pixmap to window
    800 reps @  11.1224 msec (    89.9/sec): Copy 500x500 from pixmap to window
    800 reps @  11.1548 msec (    89.6/sec): Copy 500x500 from pixmap to window
    800 reps @  11.0363 msec (    90.6/sec): Copy 500x500 from pixmap to window
    800 reps @  11.2267 msec (    89.1/sec): Copy 500x500 from pixmap to window
   4000 trep @  11.1090 msec (    90.0/sec): Copy 500x500 from pixmap to window

    160 reps @  31.4123 msec (    31.8/sec): PutImage 500x500 square
    160 reps @  31.7406 msec (    31.5/sec): PutImage 500x500 square
    160 reps @  37.9607 msec (    26.3/sec): PutImage 500x500 square
    160 reps @  34.8917 msec (    28.7/sec): PutImage 500x500 square
    160 reps @  31.4348 msec (    31.8/sec): PutImage 500x500 square
    800 trep @  33.4880 msec (    29.9/sec): PutImage 500x500 square

    800 reps @  11.0811 msec (    90.2/sec): ShmPutImage 500x500 square
    800 reps @  11.4720 msec (    87.2/sec): ShmPutImage 500x500 square
    800 reps @  11.1483 msec (    89.7/sec): ShmPutImage 500x500 square
    800 reps @  11.2621 msec (    88.8/sec): ShmPutImage 500x500 square
    800 reps @  11.1443 msec (    89.7/sec): ShmPutImage 500x500 square
   4000 trep @  11.2216 msec (    89.1/sec): ShmPutImage 500x500 square

続いて16ビットカラーの結果。

$ x11perf -repeat 5 -rect500 -f14text16 -copypixwin500 -putimage500 -shmput500 
x11perf - X11 performance program, version 1.2
The X.Org Foundation server version 10900000 on :0.0
from SS2010
Tue Dec 14 02:13:07 2010

Sync time adjustment is 0.1289 msecs.

   7000 reps @   0.6527 msec (  1530.0/sec): 500x500 rectangle
   7000 reps @   0.6644 msec (  1510.0/sec): 500x500 rectangle
   7000 reps @   0.6549 msec (  1530.0/sec): 500x500 rectangle
   7000 reps @   0.6559 msec (  1520.0/sec): 500x500 rectangle
   7000 reps @   0.6658 msec (  1500.0/sec): 500x500 rectangle
  35000 trep @   0.6588 msec (  1520.0/sec): 500x500 rectangle

1200000 reps @   0.0054 msec (184000.0/sec): Char16 in 40-char line (k14)
1200000 reps @   0.0055 msec (181000.0/sec): Char16 in 40-char line (k14)
1200000 reps @   0.0055 msec (181000.0/sec): Char16 in 40-char line (k14)
1200000 reps @   0.0055 msec (183000.0/sec): Char16 in 40-char line (k14)
1200000 reps @   0.0055 msec (181000.0/sec): Char16 in 40-char line (k14)
6000000 trep @   0.0055 msec (182000.0/sec): Char16 in 40-char line (k14)

   1200 reps @   4.6269 msec (   216.0/sec): Copy 500x500 from pixmap to window
   1200 reps @   4.7099 msec (   212.0/sec): Copy 500x500 from pixmap to window
   1200 reps @   4.6551 msec (   215.0/sec): Copy 500x500 from pixmap to window
   1200 reps @   4.6563 msec (   215.0/sec): Copy 500x500 from pixmap to window
   1200 reps @   4.8276 msec (   207.0/sec): Copy 500x500 from pixmap to window
   6000 trep @   4.6952 msec (   213.0/sec): Copy 500x500 from pixmap to window

    800 reps @  12.0306 msec (    83.1/sec): PutImage 500x500 square
    800 reps @  12.1137 msec (    82.6/sec): PutImage 500x500 square
    800 reps @  12.0250 msec (    83.2/sec): PutImage 500x500 square
    800 reps @  12.1248 msec (    82.5/sec): PutImage 500x500 square
    800 reps @  12.1358 msec (    82.4/sec): PutImage 500x500 square
   4000 trep @  12.0860 msec (    82.7/sec): PutImage 500x500 square

   1200 reps @   4.5682 msec (   219.0/sec): ShmPutImage 500x500 square
   1200 reps @   4.5995 msec (   217.0/sec): ShmPutImage 500x500 square
   1200 reps @   4.6574 msec (   215.0/sec): ShmPutImage 500x500 square
   1200 reps @   4.5984 msec (   217.0/sec): ShmPutImage 500x500 square
   1200 reps @   4.6055 msec (   217.0/sec): ShmPutImage 500x500 square
   6000 trep @   4.6058 msec (   217.0/sec): ShmPutImage 500x500 square

だいぶ向上したようだ。

早速、YouTubeを見てみたが、残念ながら動画再生は厳しいようである。
まぁ、それでも24ビットカラーよりは多少はマシだけど。

とりあえず、描画の高速化についてはこれで一旦終了。

もっといい方法があったら教えてください。