41 lines
3.1 KiB
Markdown
41 lines
3.1 KiB
Markdown
# Mandelbrot WebGPU
|
||
|
||
`index.html` をWebGPU対応のEdge/Chromeで開く。外部ライブラリやビルドは不要。
|
||
|
||
- 描画は高速方式に統一。画素間隔に応じてDirect f32または参照軌道を使うFAST perturbationへ自動で切り替える。旧「正確」の共有URLもこの方式で開く。
|
||
- パン/ズーム、配色変更、URLによる表示位置の共有、PNG出力に対応。
|
||
- 数値未確定画素の補修と未脱出画素の継続計算を終えてから、完成画像を履歴へ保存する。
|
||
- 計算中は現在の視点の暫定画像を表示する。反復上限は「自動」または指定回数を選べる。未脱出を集合内の証明とは扱わない。
|
||
- 画面と同じ解像度・1 sampleのPNGは、補修済みの完成画像をそのまま保存する。
|
||
- 色相変化は表示済みの数値結果を使い、計算中も色を更新する。停止ボタンまたは色相位置の手動操作で停止する。
|
||
- 描画時間は初期描画から精細化・数値補修・最終GPU処理までの合計。計算中は経過時間、完了時は確定した時間を表示する。
|
||
|
||
BLAと比較専用の監査処理は削除済み。[整理内容と検証範囲](CLEANUP.md)を参照。
|
||
|
||
[軽量化の実装結果と測定値](IMPLEMENTATION_RESULTS.md)を参照。承認前の[改善案](PERFORMANCE_PLAN.md)と[実装設計](PERFORMANCE_IMPLEMENTATION.md)も残している。
|
||
|
||
色相・時間表示の修正と描画方式統合については[ビューワー修正](VIEWER_FIXES.md)を参照。
|
||
|
||
## 検証
|
||
|
||
Node.js 22以降で実行する。追加パッケージは不要。
|
||
|
||
```sh
|
||
node tests/regression.mjs
|
||
```
|
||
|
||
構文、現行シェーダーのハッシュ、バックエンド選択、フレーム振り分け、Worker、補修対象と処理量上限を確認する。ハッシュファイルを無条件に再生成してテストを通さないこと。
|
||
|
||
実GPUのスモークテストは、独立した一時プロファイルのEdge/Chromiumをリモートデバッグポート9333で起動して実行する。
|
||
|
||
```sh
|
||
node tests/browser_smoke.mjs 9333 all
|
||
```
|
||
|
||
`all` は `reset`、`fast`、`mid`、`legacy`、`axis`、`black`、`kernels`、`cancel`、`budget`、`ui` に置き換えて単独実行できる。描画6ケース(旧方式指定の移行を含む)、キューの被覆、独立高精度サンプル、計算中のキャンセル、指定反復予算、PNGの復号、色相変化、時間表示を確認する。
|
||
|
||
起動時は拡張機能と同期を無効にし、専用プロファイルのタブを1つだけにする。テストはそのタブを再利用し、最後に `about:blank` へ戻す。終了後は検証用ブラウザーを閉じる。
|
||
|
||
測定が必要な場合だけ `node tests/browser_smoke.mjs 9333 bench` を実行する。初期表示・Seahorse FASTを各1回ウォームアップ+3回測定する。通常の回帰確認ではベンチマークを繰り返さない。
|
||
|
||
検証APIと詳細計測は `index.html?test` でのみ有効。通常起動では監査計算を自動実行しない。Strict設定も比較テストを起動しない。
|