sss
This commit is contained in:
parent
0c61354a5a
commit
ec61f13f4c
21 changed files with 69565 additions and 198 deletions
26013
docs/NEXT_ACTIVE_WORK_DATA.json
Normal file
26013
docs/NEXT_ACTIVE_WORK_DATA.json
Normal file
File diff suppressed because it is too large
Load diff
178
docs/NEXT_QUALITY_PLAN.md
Normal file
178
docs/NEXT_QUALITY_PLAN.md
Normal file
|
|
@ -0,0 +1,178 @@
|
|||
# 追加の軽量化・高品質化の実装計画
|
||||
|
||||
2026-09-08。B・Cを導入した現在のHTMLを読み直し、3案を検証用コピーで実測した。**本体への追加実装はまだ行っていない。** BLA、反復数削減、精度低下、数値失敗の塗りつぶしは使っていない。
|
||||
|
||||
ユーザーの「低性能PCなので、多少表示が重くても問題ない」という方針を反映し、**高画質では細部の改善を優先する**。軽量化で追加計算の負担を減らし、計算完了・キャンセル・パンへの応答を維持する。
|
||||
|
||||
## 結論と実装順
|
||||
|
||||
| 順序 | 実装候補 | 実測した効果 | 判断 |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | CPU補修の二乗に対する丸めを簡略化 | 深拡大の中央値8.99秒→7.99秒、約11.1%短縮 | 小さな変更として先に導入。ほかの視点の高速化は未確認 |
|
||||
| 2 | 未脱出画素の継続計算に限り、1 dispatchの仕事量上限を400万→800万へ | 2倍解像度の中間倍率で14.17秒→12.42秒、約12.4%短縮 | 導入候補。1回の処理待ちは長くなるため操作応答を確認する |
|
||||
| 3 | 「高画質」の縦横倍率を1.5倍→2倍へ | 4倍解像度の参考画像との差が約18~22%減少 | 画質優先で採用候補。計算量・メモリー増を明示する |
|
||||
|
||||
案3の計測では案1を併用し、案2の計測では案1+案3を共通の土台にした。**案ごとの短縮率を足し合わせない。** 解像度を上げた版が現行より軽くなった、という結果ではない。
|
||||
|
||||
## 読み直して確認した現在の処理
|
||||
|
||||
対象は [index.html](../index.html)。基準HTMLのSHA-256は `a0806944469b20152fefafe04a23e158044e127864cd9c0eef9c96894a8f5b4a`。
|
||||
|
||||
- `precisionFallbackWorkerSource()` の `pixel()` は、B・C導入後も各反復で3回、符号を扱う汎用の丸め関数を呼ぶ。このうち実部・虚部の二乗は必ず非負。
|
||||
- `continueOperationLimitActive()` は `min(256, 残り反復, floor(4000000 / active画素数))` を使う。active画素が増えると1回で進む反復数が減り、状態の読み書きと件数の読戻しが増える。
|
||||
- 1バッチにまとめるdispatch数は最大4。処理時間が10 ms未満なら増やし、32 msを超えたら1に戻す制御が既にある。
|
||||
- 高画質は縦横1.5倍、画素上限2,359,296、反復上限32,768。`resize()` はさらに端末メモリーとGPUのバッファ・テクスチャ上限を適用する。
|
||||
- 彩色後のcanvasをCSSサイズへ縮小表示している。旧「精細」の近隣画素を平均する `edgeAA` は通常操作で無効。今回も有効にしていない。
|
||||
|
||||
## 測定条件
|
||||
|
||||
Windows、Edge 152、Intel Gen-9。ブラウザーが報告するメモリー8 GB、論理プロセッサー8。専用Edge 1インスタンス・1タブで順番に実行し、時間比較中は編集や別テストを停止した。OSのバックグラウンド処理や発熱を完全に固定した測定ではない。
|
||||
|
||||
表示領域320×240、devicePixelRatio=1、座標精度448 bit、初期512反復、自動反復増分なし、彩色「昼夜」、色相アニメーションなし。標準画質の上限は16,384反復、高画質・参考画像は32,768反復で固定した。
|
||||
|
||||
| 視点 | 中心(実部, 虚部) | 表示幅 |
|
||||
| --- | --- | --- |
|
||||
| 初期表示 | -0.5, 0 | 3.4 |
|
||||
| 深拡大 | -0.743643887037151, 0.13182590420533 | 3.4e-13 |
|
||||
| 中間倍率 | 同上 | 1e-6 |
|
||||
|
||||
各条件1回のウォームアップ後3回測定し、2巡目は比較順を反転した。表は完成時間の中央値、括弧内は最小~最大。完成後の読戻し・ハッシュ・PNG検査は完成時間に含めない。参考画像だけは1回取得した。
|
||||
|
||||
## 案1:二乗の丸めを簡略化する
|
||||
|
||||
`pixel()` の次の2箇所を変更する。虚数成分の積に対する正負対称の丸めは維持する。
|
||||
|
||||
```js
|
||||
// 現在
|
||||
zr2 = round(zr * zr);
|
||||
zi2 = round(zi * zi);
|
||||
// 候補
|
||||
zr2 = (zr * zr + half) >> B;
|
||||
zi2 = (zi * zi + half) >> B;
|
||||
```
|
||||
|
||||
`zr * zr` と `zi * zi` はBigIntの非負整数なので、元の丸め関数の負数分岐へ入らない。関数呼出しと不要な符号判定を省ける。シフト幅・丸め定数・2精度の照合・反復上限を変える必要はない。
|
||||
|
||||
標準画質320×240、単位ms:
|
||||
|
||||
| 視点 | 現行B+C | 案1 |
|
||||
| --- | ---: | ---: |
|
||||
| 初期表示 | 580.5(543.6~585.0) | 641.1(576.1~644.6) |
|
||||
| 深拡大 | 8,985.2(8,177.0~9,162.4) | 7,989.3(7,711.2~8,793.8) |
|
||||
| 中間倍率 | 2,899.3(2,799.1~2,998.7) | 3,051.6(2,852.9~3,184.8) |
|
||||
|
||||
深拡大は各巡で現行より短く、中央値で11.1%短縮した。初期表示・中間倍率の中央値は長くなっており、全視点での高速化は主張しない。結果はCPU高精度補修が多い場面を狙う判断材料とする。
|
||||
|
||||
比較用24描画すべてで、全画素のmeta・smoothのハッシュが一致。分類・脱出反復数・理由コード・連続彩色値のビット列を保持した。数値失敗0、指定上限への到達、PNG復号不一致0も確認した。
|
||||
|
||||
## 案2:継続計算の処理単位を増やす
|
||||
|
||||
対象を `continueOperationLimitActive()` の上限だけに限定する。従来の `PIXEL_FRONTIER_WORK=4000000` は局所補修などにも使われるため、その定数を一括変更しない。
|
||||
|
||||
```js
|
||||
const ACTIVE_CONTINUATION_WORK = 8000000;
|
||||
const chunk = Math.min(
|
||||
256, remaining, Math.floor(ACTIVE_CONTINUATION_WORK / before)
|
||||
);
|
||||
```
|
||||
|
||||
画素数が多い場合に1回で進む反復数を増やし、途中状態の書戻しとGPU完了待ちを減らす。上限到達・誤差判定・画素の選別は変えない。最大256反復、最大4 dispatchのバッチ、処理時間に応じたバッチ数調整、世代トークンの確認は維持する。
|
||||
|
||||
案1+案3を共通の土台にした高画質640×480、単位ms:
|
||||
|
||||
| 視点 | 400万/dispatch | 800万/dispatch |
|
||||
| --- | ---: | ---: |
|
||||
| 初期表示 | 5,633.2(5,555.8~5,713.4) | 5,815.5(5,737.7~6,016.0) |
|
||||
| 中間倍率 | 14,169.1(13,688.2~14,839.1) | 12,416.5(11,998.3~12,928.6) |
|
||||
|
||||
中間倍率の中央値は12.4%短縮。完了待ちの回数は606/631/701回から419/459/464回へ減り、中央値で約27.3%減った。初期表示は待ち回数が3回のままで、改善していない。
|
||||
|
||||
| 中間倍率のバッチ待ち時間 | 400万 | 800万 |
|
||||
| --- | ---: | ---: |
|
||||
| 各描画内の95パーセンタイル、3回の値 | 17.6 / 17.7 / 17.9 ms | 26.1 / 24.8 / 23.8 ms |
|
||||
| 測定3回中の最大 | 28.8 ms | 45.4 ms |
|
||||
|
||||
これはGPU投入から件数読戻しまでの壁時計時間で、GPU timestampではない。1バッチには複数dispatchを含む場合がある。**完成時間は短くなるが、1回の処理待ちは長くなる**。これをそのままアプリ全体のキャンセル応答時間とは扱わない。
|
||||
|
||||
比較用16描画すべてで全画素ハッシュが一致し、数値失敗0、32,768反復への到達、PNG不一致0を確認した。各dispatchの仕事量も対応する400万/800万以下だった。
|
||||
|
||||
正式実装では継続用800万と補修用400万を別々に検査する。既存テストの「400万以下」を一律に「800万以下」へ緩めず、補修側の上限違反を検出できるようにする。
|
||||
|
||||
## 案3:「高画質」を縦横2倍へ
|
||||
|
||||
実際に計算するサンプル数を増やす。表示済みの隣接画素をぼかす方法は使わない。高速・標準の設定と高画質32,768反復の上限は維持する。
|
||||
|
||||
今回の試作は案1を併用し、高画質を倍率2、画素上限4,194,304にした。320×240の表示で、現行480×360から640×480へ増える。**画素数は現行高画質の約1.78倍**。
|
||||
|
||||
単位ms:
|
||||
|
||||
| 視点 | 現行高画質1.5倍 | 案1+2倍 |
|
||||
| --- | ---: | ---: |
|
||||
| 初期表示 | 3,184.7(3,177.8~3,303.0) | 5,448.0(5,270.0~5,515.2) |
|
||||
| 中間倍率 | 7,573.1(7,278.2~7,746.4) | 13,701.5(13,658.1~13,716.9) |
|
||||
|
||||
計算時間は約1.71倍/1.81倍になった。案2を加えた場合の効果は前節の別測定を参照。これらの別実験を混ぜて厳密な総合高速化率を算出しない。
|
||||
|
||||
### 画質の数値比較
|
||||
|
||||
同じ座標・反復上限で1280×960の4倍解像度画像を作り、各4×4画素をRGB値の面積平均で320×240へ縮小したものを参考画像とした。現行・候補は、UIを隠した実際のブラウザー表示のスクリーンショットを比較に使った。
|
||||
|
||||
RGB各成分0~255の差からRMSEを求める。低いほど参考画像に近い。境界付近の指標は、参考画像の4×4サンプル内でいずれかのRGB成分の最大差が32を超える表示画素だけを対象とした。評価対象は初期表示4,346画素、中間倍率17,027画素。
|
||||
|
||||
| 視点 | 全体RMSE:現行→2倍 | 誤差減少 | 境界付近RMSE:現行→2倍 | PSNR:現行→2倍 |
|
||||
| --- | ---: | ---: | ---: | ---: |
|
||||
| 初期表示 | 6.834→5.341 | 約21.9% | 28.612→22.413 | 31.44→33.58 dB |
|
||||
| 中間倍率 | 19.455→15.861 | 約18.5% | 41.303→33.671 | 22.35→24.12 dB |
|
||||
|
||||
両視点で、全体と境界付近の誤差が減った。比較画像でも細かな点や境界のギザつきが減っていることを確認した。**「画質が何%上がった」という普遍的尺度ではなく、この参考画像との差の減少率**である。
|
||||
|
||||
参考画像も有限反復・有限サンプル数の描画であり、集合境界の厳密解ではない。RGB平均は今回の表示比較のための基準で、線形光空間での色再現性を評価したものではない。別の座標・配色・DPRで同じ改善率になるとは限らない。
|
||||
|
||||
| 現行高画質 | 案1+2倍 | 4倍解像度からの参考画像 |
|
||||
| --- | --- | --- |
|
||||
|  |  |  |
|
||||
|  |  |  |
|
||||
|
||||
参考画像の完成時間は初期表示約20.4秒、中間倍率約166.1秒だった。中間倍率は最初の試行で検証APIの120秒の待機上限に達した。計算条件を変えず、参考画像の観測時間だけ延ばして再取得した。これは通常描画が120秒で停止する仕様という意味ではない。
|
||||
|
||||
途中の診断では92万画素以上の未脱出画素が継続計算に残っていた。400万の仕事量上限では、これだけで1 dispatchの反復数が4程度になる。大きい画像で状態の読み書き・往復が増える点が、案2を追加した理由である。4倍表示を通常設定へ追加する計画にはしない。
|
||||
|
||||
## 実装時の負荷と画素上限
|
||||
|
||||
高画質は倍率2を候補にするが、端末メモリー・GPU制限による縮小を維持する。試作の画素上限4,194,304は、GPUのstorage buffer上限÷40などでさらに制限される。各GPUバッファが上限内でも、プロセス全体のメモリーが小さいことを保証するわけではない。
|
||||
|
||||
640×480では設定上限が効かないため、今回確認できたのは倍率変更の効果。**大きい画面で画素上限を引き上げる際のピークメモリーと性能は未測定**。正式実装では1100×720以上、DPR=2、低メモリー条件でも確認する。
|
||||
|
||||
画質を優先する方針に従い、多少の時間増は許容する。GPU制限は超えず、完成済み画像の再投影、現在の世代以外の結果の拒否、補修中のキャンセルを保つ。上限の引上げでメモリー圧迫や操作不能が出る場合は、倍率2を維持しつつ画素上限を現行値へ戻す判断をする。近隣色の平均や反復削減で完成扱いにはしない。
|
||||
|
||||
## 実装・検証の手順
|
||||
|
||||
1. **案1を単独実装。** Workerの二乗2箇所だけを変更し、正負を扱う積の丸めと2精度照合は残す。CPU回帰と現行版とのmeta・smooth全画素一致を確認する。
|
||||
2. **案2を独立した上限定数で実装。** 継続計算と数値補修の仕事量を区別し、既存のバッチ数調整とトークン確認を残す。高画質の大量active画素、0/1/端数候補、目標反復直前のケースを確認する。色相変化中のパン・ズーム・補修中のキャンセルを実操作で検査する。
|
||||
3. **高画質の倍率を2へ変更。** 高速・標準、共有URLの3段階、反復予算を維持する。大画面・DPR=2・メモリー上限を検査し、画素数上限を決める。彩色だけの操作で数値再計算が増えないことも確認する。
|
||||
4. **組合せを再測定。** 実装前後で座標・反復予算・端末・表示サイズを固定する。画質を変えない比較は全画素ビット一致、解像度を変える比較は参考画像との誤差とPNGで評価する。完成時間、処理待ち時間、数値失敗、キャンセル、メモリーを別々に記録する。
|
||||
|
||||
通常の確認には `node tests/regression.mjs` と `node tests/browser_smoke.mjs 9333 all` を使う。数値シェーダーを変えない案なので、固定ハッシュを再生成して通す必要はない。新たな詳細計測は検証モード内に置き、通常表示へ監査ループを追加しない。
|
||||
|
||||
今回は案の作成と隔離した試作の測定まで。案2を加えた版の全画素一致は確認したが、その版での操作応答・大画面メモリー・全回帰は正式実装時の確認事項であり、確認済みとはしていない。
|
||||
|
||||
## 再現方法と証拠
|
||||
|
||||
基準HTMLのハッシュが上記と一致する作業ツリーで、専用Edgeのデバッグポート9333と1タブを使う。
|
||||
|
||||
```sh
|
||||
node tests/quality_plan.mjs 9333 all
|
||||
node tests/active_work_plan.mjs 9333
|
||||
```
|
||||
|
||||
参考画像だけを取り直す場合は、既存JSONと比較画像を保持したまま次を実行する。完成済みの時間比較をやり直さない。
|
||||
|
||||
```sh
|
||||
node tests/quality_plan.mjs 9333 reference
|
||||
```
|
||||
|
||||
- [速度・画質の生データ](NEXT_QUALITY_PLAN_DATA.json):案1の24描画、案3の16描画、参考画像2枚、画像誤差4件。各条件の1回目は `round=-1` のウォームアップ。
|
||||
- [処理単位の生データ](NEXT_ACTIVE_WORK_DATA.json):案2の16描画と各バッチの仕事量・待ち時間。
|
||||
- [比較用スクリプト](../tests/quality_plan.mjs)、[処理単位のスクリプト](../tests/active_work_plan.mjs):本体からコピーを作り、変更箇所を限定して比較する。終了時にコピーを削除する。
|
||||
|
||||
成功した比較用描画は合計58件(ウォームアップを含む、起動時の描画は除く)。それぞれ数値失敗0、有限上限での完了、PNG不一致0を検査した。同じサンプル位置を使う速度比較では全画素ハッシュが一致した。試験後に検証用Edgeと専用プロファイルを終了・削除し、残存Edgeプロセス0を確認した。
|
||||
1280
docs/NEXT_QUALITY_PLAN_DATA.json
Normal file
1280
docs/NEXT_QUALITY_PLAN_DATA.json
Normal file
File diff suppressed because it is too large
Load diff
37029
docs/NEXT_SHARD_DATA.json
Normal file
37029
docs/NEXT_SHARD_DATA.json
Normal file
File diff suppressed because it is too large
Load diff
1370
docs/PERFORMANCE_BC_DATA.json
Normal file
1370
docs/PERFORMANCE_BC_DATA.json
Normal file
File diff suppressed because it is too large
Load diff
134
docs/PERFORMANCE_CANDIDATES.md
Normal file
134
docs/PERFORMANCE_CANDIDATES.md
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
# 品質を保持する追加軽量化の実測
|
||||
|
||||
2026-09-07。画質設定を3段階へ統合した `index.html` を基準に、実際のビューワーで候補を比較した。BLAは使用しない。以下の候補比較は導入前の記録。ユーザーの指示を受け、現在はBとCを本体へ導入済み。組合せの実装結果を末尾に追記した。
|
||||
|
||||
優先候補は**高精度補修の丸め定数の再利用**。深拡大の完成時間中央値が11.25秒から8.06秒へ28.4%短縮し、計算結果の全画素が一致した。初期表示・中間倍率の高速化は確認できていない。全画面集計の遅延は処理量を減らせるが、今回の完成時間の改善は小さい。
|
||||
|
||||
## 比較条件
|
||||
|
||||
解像度320×240、標準画質、反復上限16,384、初期512反復、座標精度448 bit、色相アニメーション無効で固定した。画質設定を下げる、反復を減らす、数値失敗を黒へ置き換える方法は今回の軽量化に含めない。
|
||||
|
||||
Intel Gen-9、Windows、Edge 152、ブラウザーが報告するメモリー8 GB/論理プロセッサー8。専用Edge 1インスタンス・1タブを再利用した。各候補・各視点を1回ウォームアップし、3回測定した。測定順の一方的な偏りを減らすため、2巡目は候補の順番を反転した。ページを開き直すため参照キャッシュは候補間で共有しない。パイプライン作成・起動時の初期描画は比較用描画の前に済ませる。
|
||||
|
||||
PC上の別作業が測定へ干渉する懸念を受け、ユーザーが操作を止めると申し出た後に全比較を最初からやり直した。計測中はエージェント側でも編集・別テストを停止し、測定スクリプトだけを順次実行した。以下の表とJSONはすべて再測定の結果で、前回の値は混ぜていない。OSのバックグラウンド処理を停止・固定した測定ではない。
|
||||
|
||||
完成時間はアプリの描画開始から最終GPU処理と数値補修の完了まで。検証用の全画素読戻し・ハッシュ計算・PNG出力は完成後に実施し、完成時間に含めない。処理時間には他プロセス・発熱・Worker実行順による変動がある。3回の中央値と範囲を用い、統計的な優位性や他機種での速度を保証する結果とは扱わない。
|
||||
|
||||
| 視点 | 中心(実部, 虚部) | 表示幅 |
|
||||
| --- | --- | --- |
|
||||
| 初期表示 | -0.5, 0 | 3.4 |
|
||||
| 深拡大 | -0.743643887037151, 0.13182590420533 | 3.4e-13 |
|
||||
| 中間倍率 | 同上 | 1e-6 |
|
||||
|
||||
## 候補A:継続計算の反復単位を増やす
|
||||
|
||||
`continueOperationLimitActive()` の1 dispatchあたりの反復数上限を256から512/1024へ変更する。候補画素数×反復数は従来の4,000,000以下を維持し、反復到達目標・計算式・補修条件は変えない。候補が少ない段階のGPU投入と件数読戻しを減らせる可能性がある。
|
||||
|
||||
一度に処理する反復が増えると、そのGPU処理を途中で止められない時間も増える。大きい値を一律に採用する前に、処理中のパン・ズームと端末別の遅延を確認する必要がある。
|
||||
|
||||
完成時間の中央値(括弧内は最小~最大、単位ms):
|
||||
|
||||
| 視点 | 現行256 | 512 | 1024 |
|
||||
| --- | ---: | ---: | ---: |
|
||||
| 初期表示 | 789.7(610.3~881.4) | 734.3(730.9~805.9) | 749.7(681.9~857.8) |
|
||||
| 深拡大 | 12,731.1(12,391.3~12,819.7) | 12,593.2(12,397.9~14,137.2) | 12,135.0(12,009.9~13,744.3) |
|
||||
| 中間倍率 | 3,068.7(2,704.7~3,244.9) | 2,929.0(2,701.9~2,993.0) | 2,680.5(2,676.9~2,790.0) |
|
||||
|
||||
**一律変更は保留する。** 1024では中間倍率の中央値が12.7%、深拡大が4.7%短縮した。一方、深拡大の最も遅い回は現行より遅く、すべての表示位置で安定して短くなるとは言えない。候補数による仕事量上限が先に効く段階やCPU補修の負荷は、この定数を上げても解消しない。導入するなら疎な継続段階を対象とし、操作応答の悪化がないことを先に確認する。
|
||||
|
||||
全36描画(ウォームアップ9回を含む)でmetaとsmoothのハッシュが一致し、PNG復号の不一致は0。[生データ](PERFORMANCE_CANDIDATES_DATA.json)の `submits`/`syncs` はページ起動以来の累積値であり、視点単独の処理回数としては使わない。
|
||||
|
||||
## 候補B:CPU補修後の全画面集計をまとめる
|
||||
|
||||
`applyPrecisionFallback()` は少量の補修結果をGPUへ反映するたびに、全画面の未確定画素を集計している。この集計だけを遅延し、`readUnresolvedStats()` が統計を読む直前に最新の画素データから集計する。補修結果のscatterとGPU完了待ちは維持する。数値判定や処理対象の間引きは行わない。
|
||||
|
||||
遅延中の集計を必要とする呼出元がないこと、キャンセルやframe交換で別の画像の統計を使わないことが実装上の要点になる。検証用コピーでは対象frameを記録し、読戻し時に同じframeであることを確認する。
|
||||
|
||||
完成時間の中央値(括弧内は最小~最大、単位ms):
|
||||
|
||||
| 視点 | 現行 | 集計を遅延 |
|
||||
| --- | ---: | ---: |
|
||||
| 初期表示 | 748.4(642.9~792.0) | 757.1(721.0~776.8) |
|
||||
| 深拡大 | 12,037.5(11,928.3~12,410.7) | 11,916.3(11,904.3~12,139.1) |
|
||||
| 中間倍率 | 2,778.9(2,728.3~2,809.8) | 2,676.2(2,649.3~3,038.9) |
|
||||
|
||||
深拡大の全画面集計呼出回数は現行255/244/244回から20/20/20回へ減った。中央値で91.8%の削減。一方、深拡大の完成時間短縮は約1.0%にとどまり、処理量削減率をそのまま高速化率とは扱えない。初期表示と中間倍率の集計回数はそれぞれ11回・18回のままなので、その時間差も集計削減の効果とは断定しない。
|
||||
|
||||
**優先度は2番目。** GPU集計の無駄を減らす効果は確認できたが、完成時間を大幅に短縮する主施策にはしない。全24描画(ウォームアップ6回を含む)の品質検査が通過。[生データ](PERFORMANCE_STATS_DATA.json)に視点単独の集計回数 `statsPasses` と処理回数を保存した。
|
||||
|
||||
## 候補C:高精度補修の丸め定数をループ外へ出す
|
||||
|
||||
CPU高精度補修Workerの `pixel()` は、各反復で3回 `roundShift()` を呼ぶ。現在は同じ精度の計算中も、シフト幅のBigInt変換と丸め用の半単位 `1n << (bits - 1)` を毎回作っている。これを軌道の開始時に1回だけ作り、同じ正負対称の丸め式を使う候補を比較する。
|
||||
|
||||
計算精度・反復数・2精度の照合条件は維持する。異なる精度の軌道では定数を作り直すため、精度を上げたときに古い丸め幅を使うこともない。GPUシェーダーと並列Worker数は変えない。
|
||||
|
||||
完成時間の中央値(括弧内は最小~最大、単位ms):
|
||||
|
||||
| 視点 | 現行 | 定数を再利用 |
|
||||
| --- | ---: | ---: |
|
||||
| 初期表示 | 746.8(696.5~824.4) | 761.6(648.6~811.9) |
|
||||
| 深拡大 | 11,251.4(11,048.5~11,715.3) | 8,055.0(7,684.2~8,119.4) |
|
||||
| 中間倍率 | 2,851.5(2,659.2~2,930.6) | 3,060.1(2,985.8~3,079.0) |
|
||||
|
||||
深拡大は3回とも現行の最速回より短く、中央値で28.4%短縮した。初期表示は約2.0%、中間倍率は約7.3%長く、これらの表示位置で速度改善を主張しない。改善はCPU高精度補修が多い場面を狙うものとする。
|
||||
|
||||
補修結果を32 msなどの条件でまとめて反映する既存処理があるため、CPU補修が速くなると反映・集計の回数も変わる。深拡大の集計呼出回数は現行226/236/223回から150/156/127回になった。28.4%はアプリ全体の実測であり、BigIntの丸め命令だけの速度差ではない。
|
||||
|
||||
**実装する場合はこの候補を最初に単独導入する。** 正負の丸め式を保ったまま不変量を軌道ループの外へ出せるので、計算品質を落とす必要がない。全24描画(ウォームアップ6回を含む)でmeta・smoothの全画素ハッシュ一致、数値失敗0、PNG不一致0を確認した。[生データ](PERFORMANCE_ROUNDING_DATA.json)を参照。
|
||||
|
||||
案作成時点では3案の組合せ効果は未測定だった。特に候補BとCは補修結果反映の回数に関係するため、各短縮率を足し合わせない。導入時は通常の回帰に加え、高画質・大きい画面・補修中のキャンセル・色相変化中のパンを再確認する方針とした。その後のB+C実装と検証は下記を参照。
|
||||
|
||||
## 品質の確認方法
|
||||
|
||||
候補ごとに完成画像の全画素metaとsmoothのSHA-256を基準版と比較する。分類・到達反復・理由コード・連続彩色値のビット列が一致することを採用条件とする。解像度・反復上限・完成状態・数値失敗0・dispatch仕事量上限も確認し、PNGを復号して表示元のRGBAと一致することを検査する。
|
||||
|
||||
これは指定した視点での現行品質の保持を確認する方法であり、マンデルブロ集合の全座標で数学的な正しさを証明する検査ではない。
|
||||
|
||||
## 再現
|
||||
|
||||
専用ブラウザーをデバッグポート9333で起動し、タブを1つだけにして実行する。
|
||||
|
||||
導入前の比較を再現する場合は、変更前のHTMLを取得して第5引数に渡す。履歴の基準コミットは `0c61354a5a27f4680bae22638ec67e0dce34b6a6`。次のコマンドはバイト列を直接保存するため、PowerShellのリダイレクトによる文字コード変更を避けられる。
|
||||
|
||||
```sh
|
||||
node -e "require('fs').mkdirSync('.test-edge',{recursive:true});require('fs').writeFileSync('.test-edge/bc-baseline.html',require('child_process').execFileSync('git',['show','0c61354a5a27f4680bae22638ec67e0dce34b6a6:index.html']))"
|
||||
node tests/performance_candidates.mjs 9333 .test-edge/chunk-rerun.json chunk .test-edge/bc-baseline.html
|
||||
node tests/performance_candidates.mjs 9333 .test-edge/stats-rerun.json stats .test-edge/bc-baseline.html
|
||||
node tests/performance_candidates.mjs 9333 .test-edge/rounding-rerun.json rounding .test-edge/bc-baseline.html
|
||||
```
|
||||
|
||||
スクリプトは基準HTMLのSHA-256、機器情報、座標、ウォームアップと測定の生データを保存する。候補HTMLは `.test-edge/candidates/` に生成し、終了時に削除する。数値結果の不一致が出た場合は成功扱いにせず停止する。終了後は検証用ブラウザーを閉じる。
|
||||
|
||||
今回の再測定は比較対象84描画(測定63回、ウォームアップ21回)を完了した。専用Edgeと一時プロファイルは終了・削除済み。基準版のCPU回帰検査も通過している。
|
||||
|
||||
## B+Cの実装結果
|
||||
|
||||
ユーザーの指示を受け、`index.html` へBとCを実装した。Aの反復単位256は維持している。
|
||||
|
||||
Bは補修を反映したframeへ集計待ちのフラグを付け、統計の読戻し直前に一度だけ集計する。試作でrendererがframeを参照していた形から、frame自身がフラグを持つ形へ整理した。補修の反映とGPU完了待ちは維持し、画像交換で待機状態を持ち越さない。Cは軌道ごとにシフト幅と丸め定数を作り、正負の丸め規則を保って再利用する。
|
||||
|
||||
反復上限・解像度・数値判定・GPUシェーダーは変更していない。BLAも使用していない。
|
||||
|
||||
変更前と組合せ版を同じEdge・同じタブで順番に測定した。各視点1回のウォームアップ後3回、標準320×240/16,384反復の条件は候補比較と同じ。計測中は追加の編集・別テストを停止した。完成時間の中央値(括弧内は最小~最大、単位ms):
|
||||
|
||||
| 視点 | 変更前 | B+C |
|
||||
| --- | ---: | ---: |
|
||||
| 初期表示 | 661.6(618.5~682.1) | 577.8(572.1~662.5) |
|
||||
| 深拡大 | 13,321.1(11,383.8~13,439.1) | 9,940.8(7,957.5~12,002.6) |
|
||||
| 中間倍率 | 3,285.7(3,159.2~3,288.0) | 2,766.7(2,733.8~3,502.1) |
|
||||
|
||||
深拡大の中央値は25.4%短縮した。全画面集計は変更前229/256/258回から20/20/20回へ減った。時間の範囲は重なるため、毎回同じ速度向上を保証するものではない。初期表示と中間倍率の中央値も短くなったが、集計回数はそれぞれ11回・18回のままなので、これらをBの効果とは断定しない。単独候補の測定値とは別の測定であり、短縮率は足し合わせていない。
|
||||
|
||||
比較用24描画でmeta・smoothの全画素ハッシュが一致した。加えて、高画質の深拡大480×360、デスクトップ高画質1650×1080についても変更前との全画素一致、数値失敗0、PNG復号不一致0を確認した。実際の高画質表示もスクリーンショットで確認した。[生データ](PERFORMANCE_BC_DATA.json)に変更前・実装版のSHA-256と結果を保存した。
|
||||
|
||||
実GPUの追加検査では、複数の補修結果を1回で集計し、読み直しだけでは再集計しないこと、脱出済み・反復上限画素を上書きしないこと、古い世代の補修を拒否すること、別frameへ待機状態を移さないことを確認する。
|
||||
|
||||
```sh
|
||||
node tests/regression.mjs
|
||||
node tests/browser_smoke.mjs 9333 all
|
||||
node tests/performance_candidates.mjs 9333 .test-edge/bc-rerun.json combined .test-edge/bc-baseline.html
|
||||
```
|
||||
|
||||
`combined` は標準画質の3視点比較に加え、高画質の深拡大・大きい画面の一致検査も行う。通常起動にこれらの検証処理を追加してはいない。
|
||||
|
||||
CPU回帰と実GPUの `all` が通過した。画質3段階、彩色変更時の数値再計算抑止、色相変化中のパン、補修中のキャンセル、PNG、独立高精度サンプルも確認した。検査を連続実行した際に残っていた診断用設定と評価変数を検査ごとに分離した。検証用Edgeと専用プロファイルは終了・削除済み。
|
||||
1252
docs/PERFORMANCE_CANDIDATES_DATA.json
Normal file
1252
docs/PERFORMANCE_CANDIDATES_DATA.json
Normal file
File diff suppressed because it is too large
Load diff
879
docs/PERFORMANCE_ROUNDING_DATA.json
Normal file
879
docs/PERFORMANCE_ROUNDING_DATA.json
Normal file
|
|
@ -0,0 +1,879 @@
|
|||
{
|
||||
"date": "2026-09-07T06:53:28.990Z",
|
||||
"experiment": "rounding",
|
||||
"sourceSha256": "7db5cbd5c7f802a3d1db3d90861d8cccdc2a353cb12312907c1afb94d4e08020",
|
||||
"viewport": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"deviceScaleFactor": 1
|
||||
},
|
||||
"quality": "standard",
|
||||
"iterations": 16384,
|
||||
"variants": [
|
||||
256,
|
||||
"hoisted-rounding"
|
||||
],
|
||||
"cases": [
|
||||
{
|
||||
"id": "reset",
|
||||
"re": "-0.5",
|
||||
"im": "0",
|
||||
"span": "3.4"
|
||||
},
|
||||
{
|
||||
"id": "deep",
|
||||
"re": "-0.743643887037151",
|
||||
"im": "0.13182590420533",
|
||||
"span": "3.4e-13"
|
||||
},
|
||||
{
|
||||
"id": "mid",
|
||||
"re": "-0.743643887037151",
|
||||
"im": "0.13182590420533",
|
||||
"span": "1e-6"
|
||||
}
|
||||
],
|
||||
"runs": [
|
||||
{
|
||||
"round": -1,
|
||||
"chunk": 256,
|
||||
"case": "reset",
|
||||
"ms": 774.7000000476837,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 39,
|
||||
"syncs": 34,
|
||||
"renderSubmits": 26,
|
||||
"renderSyncs": 22,
|
||||
"statsPasses": 11,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "e46506bf6f588119c432eaf9506b72e33211a8622d2143cdb64b3fee12751d92",
|
||||
"smoothSha256": "a653eae1e09fcca512e8bfacb7022bd01c7fac50808de2bca1864b9382cf31d9"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 41250,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": -1,
|
||||
"chunk": 256,
|
||||
"case": "deep",
|
||||
"ms": 12634.5,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 410,
|
||||
"syncs": 401,
|
||||
"renderSubmits": 371,
|
||||
"renderSyncs": 367,
|
||||
"statsPasses": 247,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "0a19df20b4e73803fd5299dd8f388414317240a861436b278b62a966c69c8087",
|
||||
"smoothSha256": "b22cb1a919b52c6fe5d38a7e1c851bf310821aea2c420b999bdb34b07fd5dc5e"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 152907,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": -1,
|
||||
"chunk": 256,
|
||||
"case": "mid",
|
||||
"ms": 3024.899999856949,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 581,
|
||||
"syncs": 566,
|
||||
"renderSubmits": 171,
|
||||
"renderSyncs": 165,
|
||||
"statsPasses": 18,
|
||||
"workBound": 3999744,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "458a50b255ea9bb7815e56d4267ca30bb1ce266ee138c8d1ee789d661422c169",
|
||||
"smoothSha256": "1d967e370c665469a4b0c67a7bda5e9af0cdf592346537021a67e21bc6227a5f"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 46304,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": -1,
|
||||
"chunk": "hoisted-rounding",
|
||||
"case": "reset",
|
||||
"ms": 780.2000000476837,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 39,
|
||||
"syncs": 34,
|
||||
"renderSubmits": 26,
|
||||
"renderSyncs": 22,
|
||||
"statsPasses": 11,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "e46506bf6f588119c432eaf9506b72e33211a8622d2143cdb64b3fee12751d92",
|
||||
"smoothSha256": "a653eae1e09fcca512e8bfacb7022bd01c7fac50808de2bca1864b9382cf31d9"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 41250,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": -1,
|
||||
"chunk": "hoisted-rounding",
|
||||
"case": "deep",
|
||||
"ms": 7691.5,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 304,
|
||||
"syncs": 295,
|
||||
"renderSubmits": 265,
|
||||
"renderSyncs": 261,
|
||||
"statsPasses": 143,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "0a19df20b4e73803fd5299dd8f388414317240a861436b278b62a966c69c8087",
|
||||
"smoothSha256": "b22cb1a919b52c6fe5d38a7e1c851bf310821aea2c420b999bdb34b07fd5dc5e"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 152907,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": -1,
|
||||
"chunk": "hoisted-rounding",
|
||||
"case": "mid",
|
||||
"ms": 2900.399999856949,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 482,
|
||||
"syncs": 467,
|
||||
"renderSubmits": 178,
|
||||
"renderSyncs": 172,
|
||||
"statsPasses": 18,
|
||||
"workBound": 3999744,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "458a50b255ea9bb7815e56d4267ca30bb1ce266ee138c8d1ee789d661422c169",
|
||||
"smoothSha256": "1d967e370c665469a4b0c67a7bda5e9af0cdf592346537021a67e21bc6227a5f"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 46304,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 0,
|
||||
"chunk": 256,
|
||||
"case": "reset",
|
||||
"ms": 746.8000001907349,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 39,
|
||||
"syncs": 34,
|
||||
"renderSubmits": 26,
|
||||
"renderSyncs": 22,
|
||||
"statsPasses": 11,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "e46506bf6f588119c432eaf9506b72e33211a8622d2143cdb64b3fee12751d92",
|
||||
"smoothSha256": "a653eae1e09fcca512e8bfacb7022bd01c7fac50808de2bca1864b9382cf31d9"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 41250,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 0,
|
||||
"chunk": 256,
|
||||
"case": "deep",
|
||||
"ms": 11251.399999856949,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 388,
|
||||
"syncs": 379,
|
||||
"renderSubmits": 349,
|
||||
"renderSyncs": 345,
|
||||
"statsPasses": 226,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "0a19df20b4e73803fd5299dd8f388414317240a861436b278b62a966c69c8087",
|
||||
"smoothSha256": "b22cb1a919b52c6fe5d38a7e1c851bf310821aea2c420b999bdb34b07fd5dc5e"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 152907,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 0,
|
||||
"chunk": 256,
|
||||
"case": "mid",
|
||||
"ms": 2851.5,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 557,
|
||||
"syncs": 542,
|
||||
"renderSubmits": 169,
|
||||
"renderSyncs": 163,
|
||||
"statsPasses": 18,
|
||||
"workBound": 3999744,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "458a50b255ea9bb7815e56d4267ca30bb1ce266ee138c8d1ee789d661422c169",
|
||||
"smoothSha256": "1d967e370c665469a4b0c67a7bda5e9af0cdf592346537021a67e21bc6227a5f"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 46304,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 0,
|
||||
"chunk": "hoisted-rounding",
|
||||
"case": "reset",
|
||||
"ms": 761.6000001430511,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 39,
|
||||
"syncs": 34,
|
||||
"renderSubmits": 26,
|
||||
"renderSyncs": 22,
|
||||
"statsPasses": 11,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "e46506bf6f588119c432eaf9506b72e33211a8622d2143cdb64b3fee12751d92",
|
||||
"smoothSha256": "a653eae1e09fcca512e8bfacb7022bd01c7fac50808de2bca1864b9382cf31d9"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 41250,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 0,
|
||||
"chunk": "hoisted-rounding",
|
||||
"case": "deep",
|
||||
"ms": 8055,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 315,
|
||||
"syncs": 306,
|
||||
"renderSubmits": 276,
|
||||
"renderSyncs": 272,
|
||||
"statsPasses": 150,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "0a19df20b4e73803fd5299dd8f388414317240a861436b278b62a966c69c8087",
|
||||
"smoothSha256": "b22cb1a919b52c6fe5d38a7e1c851bf310821aea2c420b999bdb34b07fd5dc5e"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 152907,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 0,
|
||||
"chunk": "hoisted-rounding",
|
||||
"case": "mid",
|
||||
"ms": 3079,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 487,
|
||||
"syncs": 472,
|
||||
"renderSubmits": 172,
|
||||
"renderSyncs": 166,
|
||||
"statsPasses": 18,
|
||||
"workBound": 3999744,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "458a50b255ea9bb7815e56d4267ca30bb1ce266ee138c8d1ee789d661422c169",
|
||||
"smoothSha256": "1d967e370c665469a4b0c67a7bda5e9af0cdf592346537021a67e21bc6227a5f"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 46304,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 1,
|
||||
"chunk": "hoisted-rounding",
|
||||
"case": "reset",
|
||||
"ms": 811.9000000953674,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 39,
|
||||
"syncs": 34,
|
||||
"renderSubmits": 26,
|
||||
"renderSyncs": 22,
|
||||
"statsPasses": 11,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "e46506bf6f588119c432eaf9506b72e33211a8622d2143cdb64b3fee12751d92",
|
||||
"smoothSha256": "a653eae1e09fcca512e8bfacb7022bd01c7fac50808de2bca1864b9382cf31d9"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 41250,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 1,
|
||||
"chunk": "hoisted-rounding",
|
||||
"case": "deep",
|
||||
"ms": 8119.399999856949,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 317,
|
||||
"syncs": 308,
|
||||
"renderSubmits": 278,
|
||||
"renderSyncs": 274,
|
||||
"statsPasses": 156,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "0a19df20b4e73803fd5299dd8f388414317240a861436b278b62a966c69c8087",
|
||||
"smoothSha256": "b22cb1a919b52c6fe5d38a7e1c851bf310821aea2c420b999bdb34b07fd5dc5e"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 152907,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 1,
|
||||
"chunk": "hoisted-rounding",
|
||||
"case": "mid",
|
||||
"ms": 2985.800000190735,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 488,
|
||||
"syncs": 473,
|
||||
"renderSubmits": 171,
|
||||
"renderSyncs": 165,
|
||||
"statsPasses": 18,
|
||||
"workBound": 3999744,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "458a50b255ea9bb7815e56d4267ca30bb1ce266ee138c8d1ee789d661422c169",
|
||||
"smoothSha256": "1d967e370c665469a4b0c67a7bda5e9af0cdf592346537021a67e21bc6227a5f"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 46304,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 1,
|
||||
"chunk": 256,
|
||||
"case": "reset",
|
||||
"ms": 824.4000000953674,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 39,
|
||||
"syncs": 34,
|
||||
"renderSubmits": 26,
|
||||
"renderSyncs": 22,
|
||||
"statsPasses": 11,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "e46506bf6f588119c432eaf9506b72e33211a8622d2143cdb64b3fee12751d92",
|
||||
"smoothSha256": "a653eae1e09fcca512e8bfacb7022bd01c7fac50808de2bca1864b9382cf31d9"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 41250,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 1,
|
||||
"chunk": 256,
|
||||
"case": "deep",
|
||||
"ms": 11715.299999952316,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 397,
|
||||
"syncs": 388,
|
||||
"renderSubmits": 358,
|
||||
"renderSyncs": 354,
|
||||
"statsPasses": 236,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "0a19df20b4e73803fd5299dd8f388414317240a861436b278b62a966c69c8087",
|
||||
"smoothSha256": "b22cb1a919b52c6fe5d38a7e1c851bf310821aea2c420b999bdb34b07fd5dc5e"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 152907,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 1,
|
||||
"chunk": 256,
|
||||
"case": "mid",
|
||||
"ms": 2930.5999999046326,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 576,
|
||||
"syncs": 561,
|
||||
"renderSubmits": 179,
|
||||
"renderSyncs": 173,
|
||||
"statsPasses": 18,
|
||||
"workBound": 3999744,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "458a50b255ea9bb7815e56d4267ca30bb1ce266ee138c8d1ee789d661422c169",
|
||||
"smoothSha256": "1d967e370c665469a4b0c67a7bda5e9af0cdf592346537021a67e21bc6227a5f"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 46304,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"chunk": 256,
|
||||
"case": "reset",
|
||||
"ms": 696.5,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 39,
|
||||
"syncs": 34,
|
||||
"renderSubmits": 26,
|
||||
"renderSyncs": 22,
|
||||
"statsPasses": 11,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "e46506bf6f588119c432eaf9506b72e33211a8622d2143cdb64b3fee12751d92",
|
||||
"smoothSha256": "a653eae1e09fcca512e8bfacb7022bd01c7fac50808de2bca1864b9382cf31d9"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 41250,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"chunk": 256,
|
||||
"case": "deep",
|
||||
"ms": 11048.5,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 384,
|
||||
"syncs": 375,
|
||||
"renderSubmits": 345,
|
||||
"renderSyncs": 341,
|
||||
"statsPasses": 223,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "0a19df20b4e73803fd5299dd8f388414317240a861436b278b62a966c69c8087",
|
||||
"smoothSha256": "b22cb1a919b52c6fe5d38a7e1c851bf310821aea2c420b999bdb34b07fd5dc5e"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 152907,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"chunk": 256,
|
||||
"case": "mid",
|
||||
"ms": 2659.2000000476837,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 553,
|
||||
"syncs": 538,
|
||||
"renderSubmits": 169,
|
||||
"renderSyncs": 163,
|
||||
"statsPasses": 18,
|
||||
"workBound": 3999744,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "458a50b255ea9bb7815e56d4267ca30bb1ce266ee138c8d1ee789d661422c169",
|
||||
"smoothSha256": "1d967e370c665469a4b0c67a7bda5e9af0cdf592346537021a67e21bc6227a5f"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 46304,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"chunk": "hoisted-rounding",
|
||||
"case": "reset",
|
||||
"ms": 648.6000001430511,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 39,
|
||||
"syncs": 34,
|
||||
"renderSubmits": 26,
|
||||
"renderSyncs": 22,
|
||||
"statsPasses": 11,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "e46506bf6f588119c432eaf9506b72e33211a8622d2143cdb64b3fee12751d92",
|
||||
"smoothSha256": "a653eae1e09fcca512e8bfacb7022bd01c7fac50808de2bca1864b9382cf31d9"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 41250,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"chunk": "hoisted-rounding",
|
||||
"case": "deep",
|
||||
"ms": 7684.200000047684,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 287,
|
||||
"syncs": 278,
|
||||
"renderSubmits": 248,
|
||||
"renderSyncs": 244,
|
||||
"statsPasses": 127,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "0a19df20b4e73803fd5299dd8f388414317240a861436b278b62a966c69c8087",
|
||||
"smoothSha256": "b22cb1a919b52c6fe5d38a7e1c851bf310821aea2c420b999bdb34b07fd5dc5e"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 152907,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"chunk": "hoisted-rounding",
|
||||
"case": "mid",
|
||||
"ms": 3060.0999999046326,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 462,
|
||||
"syncs": 447,
|
||||
"renderSubmits": 175,
|
||||
"renderSyncs": 169,
|
||||
"statsPasses": 18,
|
||||
"workBound": 3999744,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "458a50b255ea9bb7815e56d4267ca30bb1ce266ee138c8d1ee789d661422c169",
|
||||
"smoothSha256": "1d967e370c665469a4b0c67a7bda5e9af0cdf592346537021a67e21bc6227a5f"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 46304,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
}
|
||||
],
|
||||
"environment": {
|
||||
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/152.0.0.0 Safari/537.36 Edg/152.0.0.0",
|
||||
"deviceMemory": 8,
|
||||
"hardwareConcurrency": 8,
|
||||
"gpu": {
|
||||
"adapterInfo": {
|
||||
"vendor": "intel",
|
||||
"architecture": "gen-9",
|
||||
"device": "",
|
||||
"description": ""
|
||||
},
|
||||
"adapterLimits": {
|
||||
"maxBufferSize": 2147483648,
|
||||
"maxStorageBufferBindingSize": 2147483644,
|
||||
"maxComputeWorkgroupsPerDimension": 65535,
|
||||
"maxTextureDimension2D": 16384
|
||||
},
|
||||
"compilation": [
|
||||
{
|
||||
"label": "direct",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "unknown-stats",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "real-axis-symmetry-copy",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "color",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "present",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "active-prepare-production",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-active-resume-init-production",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-active-continue-production",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-compact-init",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-compact-continue",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-post-stats-production",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-bucket-histogram-production",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-bucket-prefix-production",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-bucket-scatter-production",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-correction",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-correction-queued-production",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "failure-tile-map",
|
||||
"messages": []
|
||||
}
|
||||
],
|
||||
"uncapturedErrors": [],
|
||||
"lossReason": "",
|
||||
"activeGpuStage": "",
|
||||
"lastCompletedGpuStage": "pixel frontier post-stats"
|
||||
}
|
||||
}
|
||||
}
|
||||
879
docs/PERFORMANCE_STATS_DATA.json
Normal file
879
docs/PERFORMANCE_STATS_DATA.json
Normal file
|
|
@ -0,0 +1,879 @@
|
|||
{
|
||||
"date": "2026-09-07T06:51:15.620Z",
|
||||
"experiment": "stats",
|
||||
"sourceSha256": "7db5cbd5c7f802a3d1db3d90861d8cccdc2a353cb12312907c1afb94d4e08020",
|
||||
"viewport": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"deviceScaleFactor": 1
|
||||
},
|
||||
"quality": "standard",
|
||||
"iterations": 16384,
|
||||
"variants": [
|
||||
256,
|
||||
"deferred-stats"
|
||||
],
|
||||
"cases": [
|
||||
{
|
||||
"id": "reset",
|
||||
"re": "-0.5",
|
||||
"im": "0",
|
||||
"span": "3.4"
|
||||
},
|
||||
{
|
||||
"id": "deep",
|
||||
"re": "-0.743643887037151",
|
||||
"im": "0.13182590420533",
|
||||
"span": "3.4e-13"
|
||||
},
|
||||
{
|
||||
"id": "mid",
|
||||
"re": "-0.743643887037151",
|
||||
"im": "0.13182590420533",
|
||||
"span": "1e-6"
|
||||
}
|
||||
],
|
||||
"runs": [
|
||||
{
|
||||
"round": -1,
|
||||
"chunk": 256,
|
||||
"case": "reset",
|
||||
"ms": 721.1000001430511,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 39,
|
||||
"syncs": 34,
|
||||
"renderSubmits": 26,
|
||||
"renderSyncs": 22,
|
||||
"statsPasses": 11,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "e46506bf6f588119c432eaf9506b72e33211a8622d2143cdb64b3fee12751d92",
|
||||
"smoothSha256": "a653eae1e09fcca512e8bfacb7022bd01c7fac50808de2bca1864b9382cf31d9"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 41250,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": -1,
|
||||
"chunk": 256,
|
||||
"case": "deep",
|
||||
"ms": 12872.099999904633,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 419,
|
||||
"syncs": 410,
|
||||
"renderSubmits": 380,
|
||||
"renderSyncs": 376,
|
||||
"statsPasses": 256,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "0a19df20b4e73803fd5299dd8f388414317240a861436b278b62a966c69c8087",
|
||||
"smoothSha256": "b22cb1a919b52c6fe5d38a7e1c851bf310821aea2c420b999bdb34b07fd5dc5e"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 152907,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": -1,
|
||||
"chunk": 256,
|
||||
"case": "mid",
|
||||
"ms": 3186.5,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 597,
|
||||
"syncs": 582,
|
||||
"renderSubmits": 178,
|
||||
"renderSyncs": 172,
|
||||
"statsPasses": 18,
|
||||
"workBound": 3999744,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "458a50b255ea9bb7815e56d4267ca30bb1ce266ee138c8d1ee789d661422c169",
|
||||
"smoothSha256": "1d967e370c665469a4b0c67a7bda5e9af0cdf592346537021a67e21bc6227a5f"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 46304,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": -1,
|
||||
"chunk": "deferred-stats",
|
||||
"case": "reset",
|
||||
"ms": 777.5999999046326,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 39,
|
||||
"syncs": 34,
|
||||
"renderSubmits": 26,
|
||||
"renderSyncs": 22,
|
||||
"statsPasses": 11,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "e46506bf6f588119c432eaf9506b72e33211a8622d2143cdb64b3fee12751d92",
|
||||
"smoothSha256": "a653eae1e09fcca512e8bfacb7022bd01c7fac50808de2bca1864b9382cf31d9"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 41250,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": -1,
|
||||
"chunk": "deferred-stats",
|
||||
"case": "deep",
|
||||
"ms": 12699.600000143051,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 418,
|
||||
"syncs": 409,
|
||||
"renderSubmits": 379,
|
||||
"renderSyncs": 375,
|
||||
"statsPasses": 20,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "0a19df20b4e73803fd5299dd8f388414317240a861436b278b62a966c69c8087",
|
||||
"smoothSha256": "b22cb1a919b52c6fe5d38a7e1c851bf310821aea2c420b999bdb34b07fd5dc5e"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 152907,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": -1,
|
||||
"chunk": "deferred-stats",
|
||||
"case": "mid",
|
||||
"ms": 3130,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 593,
|
||||
"syncs": 578,
|
||||
"renderSubmits": 175,
|
||||
"renderSyncs": 169,
|
||||
"statsPasses": 18,
|
||||
"workBound": 3999744,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "458a50b255ea9bb7815e56d4267ca30bb1ce266ee138c8d1ee789d661422c169",
|
||||
"smoothSha256": "1d967e370c665469a4b0c67a7bda5e9af0cdf592346537021a67e21bc6227a5f"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 46304,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 0,
|
||||
"chunk": 256,
|
||||
"case": "reset",
|
||||
"ms": 792,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 39,
|
||||
"syncs": 34,
|
||||
"renderSubmits": 26,
|
||||
"renderSyncs": 22,
|
||||
"statsPasses": 11,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "e46506bf6f588119c432eaf9506b72e33211a8622d2143cdb64b3fee12751d92",
|
||||
"smoothSha256": "a653eae1e09fcca512e8bfacb7022bd01c7fac50808de2bca1864b9382cf31d9"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 41250,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 0,
|
||||
"chunk": 256,
|
||||
"case": "deep",
|
||||
"ms": 12410.699999809265,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 417,
|
||||
"syncs": 408,
|
||||
"renderSubmits": 378,
|
||||
"renderSyncs": 374,
|
||||
"statsPasses": 255,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "0a19df20b4e73803fd5299dd8f388414317240a861436b278b62a966c69c8087",
|
||||
"smoothSha256": "b22cb1a919b52c6fe5d38a7e1c851bf310821aea2c420b999bdb34b07fd5dc5e"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 152907,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 0,
|
||||
"chunk": 256,
|
||||
"case": "mid",
|
||||
"ms": 2728.2999999523163,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 588,
|
||||
"syncs": 573,
|
||||
"renderSubmits": 171,
|
||||
"renderSyncs": 165,
|
||||
"statsPasses": 18,
|
||||
"workBound": 3999744,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "458a50b255ea9bb7815e56d4267ca30bb1ce266ee138c8d1ee789d661422c169",
|
||||
"smoothSha256": "1d967e370c665469a4b0c67a7bda5e9af0cdf592346537021a67e21bc6227a5f"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 46304,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 0,
|
||||
"chunk": "deferred-stats",
|
||||
"case": "reset",
|
||||
"ms": 757.0999999046326,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 39,
|
||||
"syncs": 34,
|
||||
"renderSubmits": 26,
|
||||
"renderSyncs": 22,
|
||||
"statsPasses": 11,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "e46506bf6f588119c432eaf9506b72e33211a8622d2143cdb64b3fee12751d92",
|
||||
"smoothSha256": "a653eae1e09fcca512e8bfacb7022bd01c7fac50808de2bca1864b9382cf31d9"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 41250,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 0,
|
||||
"chunk": "deferred-stats",
|
||||
"case": "deep",
|
||||
"ms": 11916.299999952316,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 402,
|
||||
"syncs": 393,
|
||||
"renderSubmits": 363,
|
||||
"renderSyncs": 359,
|
||||
"statsPasses": 20,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "0a19df20b4e73803fd5299dd8f388414317240a861436b278b62a966c69c8087",
|
||||
"smoothSha256": "b22cb1a919b52c6fe5d38a7e1c851bf310821aea2c420b999bdb34b07fd5dc5e"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 152907,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 0,
|
||||
"chunk": "deferred-stats",
|
||||
"case": "mid",
|
||||
"ms": 2676.2000000476837,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 571,
|
||||
"syncs": 556,
|
||||
"renderSubmits": 169,
|
||||
"renderSyncs": 163,
|
||||
"statsPasses": 18,
|
||||
"workBound": 3999744,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "458a50b255ea9bb7815e56d4267ca30bb1ce266ee138c8d1ee789d661422c169",
|
||||
"smoothSha256": "1d967e370c665469a4b0c67a7bda5e9af0cdf592346537021a67e21bc6227a5f"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 46304,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 1,
|
||||
"chunk": "deferred-stats",
|
||||
"case": "reset",
|
||||
"ms": 721,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 39,
|
||||
"syncs": 34,
|
||||
"renderSubmits": 26,
|
||||
"renderSyncs": 22,
|
||||
"statsPasses": 11,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "e46506bf6f588119c432eaf9506b72e33211a8622d2143cdb64b3fee12751d92",
|
||||
"smoothSha256": "a653eae1e09fcca512e8bfacb7022bd01c7fac50808de2bca1864b9382cf31d9"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 41250,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 1,
|
||||
"chunk": "deferred-stats",
|
||||
"case": "deep",
|
||||
"ms": 12139.099999904633,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 409,
|
||||
"syncs": 400,
|
||||
"renderSubmits": 370,
|
||||
"renderSyncs": 366,
|
||||
"statsPasses": 20,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "0a19df20b4e73803fd5299dd8f388414317240a861436b278b62a966c69c8087",
|
||||
"smoothSha256": "b22cb1a919b52c6fe5d38a7e1c851bf310821aea2c420b999bdb34b07fd5dc5e"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 152907,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 1,
|
||||
"chunk": "deferred-stats",
|
||||
"case": "mid",
|
||||
"ms": 2649.2999999523163,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 580,
|
||||
"syncs": 565,
|
||||
"renderSubmits": 171,
|
||||
"renderSyncs": 165,
|
||||
"statsPasses": 18,
|
||||
"workBound": 3999744,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "458a50b255ea9bb7815e56d4267ca30bb1ce266ee138c8d1ee789d661422c169",
|
||||
"smoothSha256": "1d967e370c665469a4b0c67a7bda5e9af0cdf592346537021a67e21bc6227a5f"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 46304,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 1,
|
||||
"chunk": 256,
|
||||
"case": "reset",
|
||||
"ms": 642.9000000953674,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 39,
|
||||
"syncs": 34,
|
||||
"renderSubmits": 26,
|
||||
"renderSyncs": 22,
|
||||
"statsPasses": 11,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "e46506bf6f588119c432eaf9506b72e33211a8622d2143cdb64b3fee12751d92",
|
||||
"smoothSha256": "a653eae1e09fcca512e8bfacb7022bd01c7fac50808de2bca1864b9382cf31d9"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 41250,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 1,
|
||||
"chunk": 256,
|
||||
"case": "deep",
|
||||
"ms": 11928.299999952316,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 406,
|
||||
"syncs": 397,
|
||||
"renderSubmits": 367,
|
||||
"renderSyncs": 363,
|
||||
"statsPasses": 244,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "0a19df20b4e73803fd5299dd8f388414317240a861436b278b62a966c69c8087",
|
||||
"smoothSha256": "b22cb1a919b52c6fe5d38a7e1c851bf310821aea2c420b999bdb34b07fd5dc5e"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 152907,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 1,
|
||||
"chunk": 256,
|
||||
"case": "mid",
|
||||
"ms": 2809.7999999523163,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 575,
|
||||
"syncs": 560,
|
||||
"renderSubmits": 169,
|
||||
"renderSyncs": 163,
|
||||
"statsPasses": 18,
|
||||
"workBound": 3999744,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "458a50b255ea9bb7815e56d4267ca30bb1ce266ee138c8d1ee789d661422c169",
|
||||
"smoothSha256": "1d967e370c665469a4b0c67a7bda5e9af0cdf592346537021a67e21bc6227a5f"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 46304,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"chunk": 256,
|
||||
"case": "reset",
|
||||
"ms": 748.3999998569489,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 39,
|
||||
"syncs": 34,
|
||||
"renderSubmits": 26,
|
||||
"renderSyncs": 22,
|
||||
"statsPasses": 11,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "e46506bf6f588119c432eaf9506b72e33211a8622d2143cdb64b3fee12751d92",
|
||||
"smoothSha256": "a653eae1e09fcca512e8bfacb7022bd01c7fac50808de2bca1864b9382cf31d9"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 41250,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"chunk": 256,
|
||||
"case": "deep",
|
||||
"ms": 12037.5,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 405,
|
||||
"syncs": 396,
|
||||
"renderSubmits": 366,
|
||||
"renderSyncs": 362,
|
||||
"statsPasses": 244,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "0a19df20b4e73803fd5299dd8f388414317240a861436b278b62a966c69c8087",
|
||||
"smoothSha256": "b22cb1a919b52c6fe5d38a7e1c851bf310821aea2c420b999bdb34b07fd5dc5e"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 152907,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"chunk": 256,
|
||||
"case": "mid",
|
||||
"ms": 2778.899999856949,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 574,
|
||||
"syncs": 559,
|
||||
"renderSubmits": 169,
|
||||
"renderSyncs": 163,
|
||||
"statsPasses": 18,
|
||||
"workBound": 3999744,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "458a50b255ea9bb7815e56d4267ca30bb1ce266ee138c8d1ee789d661422c169",
|
||||
"smoothSha256": "1d967e370c665469a4b0c67a7bda5e9af0cdf592346537021a67e21bc6227a5f"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 46304,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"chunk": "deferred-stats",
|
||||
"case": "reset",
|
||||
"ms": 776.8000001907349,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 39,
|
||||
"syncs": 34,
|
||||
"renderSubmits": 26,
|
||||
"renderSyncs": 22,
|
||||
"statsPasses": 11,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "e46506bf6f588119c432eaf9506b72e33211a8622d2143cdb64b3fee12751d92",
|
||||
"smoothSha256": "a653eae1e09fcca512e8bfacb7022bd01c7fac50808de2bca1864b9382cf31d9"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 41250,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"chunk": "deferred-stats",
|
||||
"case": "deep",
|
||||
"ms": 11904.300000190735,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 400,
|
||||
"syncs": 391,
|
||||
"renderSubmits": 361,
|
||||
"renderSyncs": 357,
|
||||
"statsPasses": 20,
|
||||
"workBound": 3997696,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "0a19df20b4e73803fd5299dd8f388414317240a861436b278b62a966c69c8087",
|
||||
"smoothSha256": "b22cb1a919b52c6fe5d38a7e1c851bf310821aea2c420b999bdb34b07fd5dc5e"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 152907,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"chunk": "deferred-stats",
|
||||
"case": "mid",
|
||||
"ms": 3038.9000000953674,
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"budget": 16384,
|
||||
"numericalFailures": 0,
|
||||
"provisional": false,
|
||||
"status": "complete",
|
||||
"submits": 584,
|
||||
"syncs": 569,
|
||||
"renderSubmits": 184,
|
||||
"renderSyncs": 178,
|
||||
"statsPasses": 18,
|
||||
"workBound": 3999744,
|
||||
"hashes": {
|
||||
"pixels": 76800,
|
||||
"metaSha256": "458a50b255ea9bb7815e56d4267ca30bb1ce266ee138c8d1ee789d661422c169",
|
||||
"smoothSha256": "1d967e370c665469a4b0c67a7bda5e9af0cdf592346537021a67e21bc6227a5f"
|
||||
},
|
||||
"png": {
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"bytes": 46304,
|
||||
"mismatches": 0,
|
||||
"iter": 16384
|
||||
},
|
||||
"errors": []
|
||||
}
|
||||
],
|
||||
"environment": {
|
||||
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/152.0.0.0 Safari/537.36 Edg/152.0.0.0",
|
||||
"deviceMemory": 8,
|
||||
"hardwareConcurrency": 8,
|
||||
"gpu": {
|
||||
"adapterInfo": {
|
||||
"vendor": "intel",
|
||||
"architecture": "gen-9",
|
||||
"device": "",
|
||||
"description": ""
|
||||
},
|
||||
"adapterLimits": {
|
||||
"maxBufferSize": 2147483648,
|
||||
"maxStorageBufferBindingSize": 2147483644,
|
||||
"maxComputeWorkgroupsPerDimension": 65535,
|
||||
"maxTextureDimension2D": 16384
|
||||
},
|
||||
"compilation": [
|
||||
{
|
||||
"label": "direct",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "unknown-stats",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "real-axis-symmetry-copy",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "color",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "present",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "active-prepare-production",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-active-resume-init-production",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-active-continue-production",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-compact-init",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-compact-continue",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-post-stats-production",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-bucket-histogram-production",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-bucket-prefix-production",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-bucket-scatter-production",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-correction",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "deep-correction-queued-production",
|
||||
"messages": []
|
||||
},
|
||||
{
|
||||
"label": "failure-tile-map",
|
||||
"messages": []
|
||||
}
|
||||
],
|
||||
"uncapturedErrors": [],
|
||||
"lossReason": "",
|
||||
"activeGpuStage": "",
|
||||
"lastCompletedGpuStage": "pixel frontier post-stats"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -17,6 +17,10 @@ BLAと比較専用の監査処理は削除済み。[整理内容と検証範囲]
|
|||
|
||||
色相・時間表示の修正と描画方式統合については[ビューワー修正](VIEWER_FIXES.md)を参照。
|
||||
|
||||
BLAを使わず現行品質を保持する追加候補の比較と、補修集計・丸め定数再利用の実装結果は[追加軽量化の実測](PERFORMANCE_CANDIDATES.md)を参照。
|
||||
|
||||
2026-09-08の追加調査は[軽量化・高品質化の実装計画](NEXT_QUALITY_PLAN.md)を参照。二乗の丸め、継続計算の処理単位、高画質2倍解像度を実測し、比較画像も掲載した。
|
||||
|
||||
## 検証
|
||||
|
||||
Node.js 22以降で実行する。追加パッケージは不要。
|
||||
|
|
|
|||
BIN
docs/quality-plan-images/mid-current.png
Normal file
BIN
docs/quality-plan-images/mid-current.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 58 KiB |
BIN
docs/quality-plan-images/mid-high2.png
Normal file
BIN
docs/quality-plan-images/mid-high2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 57 KiB |
BIN
docs/quality-plan-images/mid-reference.png
Normal file
BIN
docs/quality-plan-images/mid-reference.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
BIN
docs/quality-plan-images/reset-current.png
Normal file
BIN
docs/quality-plan-images/reset-current.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 53 KiB |
BIN
docs/quality-plan-images/reset-high2.png
Normal file
BIN
docs/quality-plan-images/reset-high2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 50 KiB |
BIN
docs/quality-plan-images/reset-reference.png
Normal file
BIN
docs/quality-plan-images/reset-reference.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
Loading…
Add table
Add a link
Reference in a new issue