[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 2100] Re: adarrel3, monza3.



  こんばんは、川合です。


Solid さんは 2001/09/11 17:02:42 の「[OSASK 2099] Re: adarrel3,
monza3.」で書きました:

>試してみました。色を何色か並べてみたりしましたが、
>速度は良好なようです。色が 16色のままというのが寂しいのですが

  動作報告をありがとうございます。

  色数については、VESA対応をまじめにやるまで待ってください。もち
ろん、待ちきれずに自らやってしまわれるという選択肢もあります(笑
)。

>フレームレートが違いますので、本数は単純に倍にはならないと思います。

  しまった!フレームレートのことを完全に忘れてしまいました。

  そう言えば、tetra01やtetra02のフレームレートはどのくらいなんで
しょうか?・・・test014のフレームレートは16FPSです。僕としては、
負荷との兼ね合いもあることですし、これくらいで十分だと思っている
のですが・・・。

>本数がこれだけ少ないとラインのコストはやはり僅かですので
>差は少ないかもしれません。

  ところがどっこい、そうではないのです(笑)。

  きっとSolidさんは、斜めラインルーチンを誤解しています。Solid
さんは、「斜めラインルーチンはバッファへ斜めの点を打って、その
バッファをflushしているだけだ」と思われているのでしょう。違いま
す、全然違います。

  斜めラインルーチンは、確かにバッファに斜めの点を打ちます。それ
はそうなんですが、flushはしていません。flushする代わりに、VRAMの
対応する場所に点を打っているのです。

  たとえば、256x256のグラフィックボックスに100ドットの長さのライ
ンを一本引く場合を考えてみてください。バッファに100個の点を打ち
、flushでそのバッファを転送します。この場合、VGAドライバは合計65
536個の点を打ちます。ブロック転送とはそういうものです。

  しかし一方、lib_drawline0()を使ってラインを引くなら、VGAドライ
バは100点を打つだけです。負荷が全然違うのです。変化のない部分ま
で転送し直したりはしないのです。

  その割にはtest014が速くないというのも一つの事実です。これは、
斜めラインルーチンのオーバーヘッドが大きいためで、これを解消する
ための手段を構築中です。しばらくお待ちください。

>すいません、[OSASK 2072]のメールを残してありませんでした。
>過去ログ参照はどうしたらよろしいのでしょうか?
>(古い過去ログ参照は分かったのですが、最近の物はどうすれば・・・)

    http://www.afis.to/~mone/osask/osask_ml/

へ行ってみてください。


  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/