マンデルブロ集合
  • HTML 86%
  • JavaScript 14%
Find a file
2026-08-25 21:33:45 +09:00
docs b 2026-08-25 21:33:45 +09:00
tests b 2026-08-25 21:33:45 +09:00
index.html b 2026-08-25 21:33:45 +09:00

Mandelbrot WebGPU v24.2.55

目的

v24.2.54で確認された、FAST深部描画の矩形状/穴状の黒欠損と、数値補修を最終表示前に待つことによるレイテンシ増大を修正する。

黒穴の原因

COLOR passでは数値UNKNOWNを透明としていたが、PRESENT passが履歴補完を scale <= 1.035 / offset <= 0.022 に制限していた。そのため通常のズームでも履歴補完が無効になり、透明UNKNOWNがcanvasの黒背景へ落ちた。

さらに、その不完全front textureを完成historyとしてcommitする経路があった。局所reference補修が予算内で全UNKNOWNを回収できない場合、タイル境界に沿った黒欠損が完成画像へ固定され得た。

v24.2.55の契約

  1. 数値UNKNOWNを含むfrontはstable historyへ昇格しない。
  2. 通常のパン/ズーム範囲では、数値UNKNOWNを直前のstable frameから再投影して埋める。
  3. FASTの数値補修は一次画像のpublishをブロックせず、同一viewのbackground taskとして継続する。
  4. background補修が完了して数値UNKNOWNが0になった時点で初めてhistoryを更新する。
  5. tiled FAST開始時にmeta/smoothをzero sentinelへ初期化し、最終color前にreason=0の未書込pixelだけbaseline FASTで再計算する。

REASON_OPERATION_LIMIT は数値故障ではなく、maxIterまで未脱出だったpixelなので従来どおり黒表示する。今回の矩形状欠損対策は主に数値UNKNOWN/未書込pixelを対象とする。

FASTレイテンシ

production BLAのCPU側64点shadow計算を廃止した。BLA workerはtable構築だけを行い、採用判定は既存の64点GPU probeへ一本化した。

classic Seahorse Valley相当 (654x690, span 3.4e-13, 2900 iter) のNode/V8 workerモデル:

  • 旧 CPU validate 64点: 約446.9 ms
  • 新 table build only: 約60.0 ms
  • 同期prep削減: 約386.9 ms

BLAが不利なviewでは本体FAST計算時間そのものは残る。今回の変更では、数値補修Deep/multi-referenceを一次表示のクリティカルパスから外すことで、黒穴を出さずに操作から画像表示までの待ち時間を短縮する。

数値コア

v24.2.54から変更したproduction WGSLはFAST_PERTURB_WGSLのみ。通常 unknownOnly=0 の計算式・perturbation recurrenceは変更していない。追加分はcoverage repair用のearly guardである。