|
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 行出ます:
DEKI:PROFILE は描画をコンポーネントごと、転送経路ごとに分けて示し、シーンで一番コストのかかるものを見つけるのに使います。
パネルのリフレッシュ (59.6〜60.3 Hz) に固定されたフレームレートが、ティアリングしないボードの最高です。フレームはティアリングする代わりにリフレッシュを待ちます。