DEKI/ENGINE ドキュメント
Deki 0.20.2
組み込みディスプレイとデスクトップのためのモジュール式 C++ 2D エンジン
読み取り中…
検索中…
一致する文字列を見つけられません
高速化

ボードを速くするものの多くは自動で選ばれます。このページでは、何が選ばれるのか、何を設定すればよいのか、数値の読み方を説明します。

ボードから始める

ボードパッケージ (deki-lilygo-boards など) には、そのボードが最もよく動く設定が入っています。ボードをターゲットに選べばその設定が使われ、調整することはありません。

ボード すべてのデモシーン フレーム
LilyGO T-Display S3 AMOLED 59.6 fps (パネルのリフレッシュ) ティアリングしない (TE 線)
LilyGO T-Deck Plus 60 fps ティアリングしない (パネルの走査線)

ここから先は、自分のボードを作るとき、またはシーンが遅い理由を調べるときのためのものです。

自動で選ばれるもの

どれもゲームの開始時にデバイス上で決まります。起動ログにはそれぞれ 1 行ずつ、何が選ばれたのかとその理由が出ます。

内容 選ばれ方
フレーム全体かストリップか フレームバッファーが内部 RAM に余裕をもって収まるならフレーム全体、収まらなければストリップです。ストリップは数行または数列ずつ内部 RAM に描くので、フレーム全体を PSRAM に描くよりずっと速くなります。(レンダリング設定の frameMode)
もう一方のコアからの送信 デュアルコアのチップでフレームのコピー 2 つ分のメモリがあれば、次のフレームを描いている間に各フレームを送ります。そうでなければ描いた順に送ります。(asyncPresent、オン)
ティアリング TE 線が配線されていれば (tePin)、フレームはパネルのリフレッシュ信号に合わせます。なければ代わりにパネルの走査線を読み戻します (scanlineSync、オン)。読み戻せないパネルには描いた順に送り、ティアリングすることがあります。

ボードで設定するもの

これらはボードの配線を表すもので、デバイスが自分で知ることはできません。

設定 設定する値
controller、busType とピン ボードの回路図のとおりです。
spiWriteHz (parallelWriteHz) パネルが受け付ける最も速いクロックです。ほとんどの ST7789 モジュールは 80 MHz に対応します。パラレルバスなら 20 MHz が安全です。
tePin パネルの TE 出力が配線されている GPIO (配線されていれば)。ティアリングを止める一番の方法です。
readsOnMosi パネルが MISO ではなくデータ線で応答する場合にオン (T-Deck がそうです)。TE 線がないときだけ関係します。
initSequence コントローラーの既定のものでは表示がおかしいとき (色が薄い、前の画像が残る) の、パネルモジュール独自の起動手順です。

知っておくとよいプロジェクト設定

設定 変えるとき
dirtyTileTracking 画面の大部分が動かず、毎フレーム画面全体に描くものがない場合にオンにします (画面全体の背景は画面全体に描きます)。変わったところだけが送られます。
bandRows ストリップの大きさです。大きいほどシーンをたどる回数が減りますが、内部 RAM を多く使います。ほとんどの画面には 40 が合います。
frameMode 自動のままにします。ただし、自分のボードではもう一方のモードのほうが速いと測った場合は別です。

めったに必要ないもの: usePsram と doubleBuffer (エンジンがフレーム全体を描く場所)、spiReadHz (T-Deck の ST7789 は 10 MHz で確実に読み取れます)。

数値の読み方

シリアルポートの DEKI:STATS、または device_stats ツールで 1 行出ます:

fps=60.0 frameMs=16.66 updateMs=1.00 renderMs=7.80 presentMs=3.36 internalFree=50807 frameMode=whole
  • updateMs: ゲームのロジックです。開いたばかりのシーンはここで読み込みます。
  • renderMs: 描画です。ストリップでは、描いたそばから送るので送信も含みます。
  • presentMs: フレームをディスプレイに渡す時間です。高いときは、ディスプレイがまだ前のフレームを送っています。限界は描画ではなくバスです。
  • internalFree: 残りの内部 RAM で、Wi-Fi、Bluetooth、ストリップがここから使います。

DEKI:PROFILE は描画をコンポーネントごと、転送経路ごとに分けて示し、シーンで一番コストのかかるものを見つけるのに使います。

パネルのリフレッシュ (59.6〜60.3 Hz) に固定されたフレームレートが、ティアリングしないボードの最高です。フレームはティアリングする代わりにリフレッシュを待ちます。