---
generated_at: 2026-02-22 10:30:00
metrics:
  claims_total: 100
  claims_with_evidence: 98
  claims_without_evidence: 2
confidence_derived: 0.98
---

# 根拠レポート：backend-wgpu.csv

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧（backend-wgpu.csv）の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.98**
  - 根拠あり：98 / 100、根拠なし：2
- 優先レビュー（高）
  1. **UT-WGP-071〜075**: macOS/Linux/Windowsのネイティブサーフェス作成は各プラットフォームでの実機テストが必要
  2. **UT-WGP-004,008**: アサーション動作の検証は実行時テストが必要
  3. **UT-WGP-081〜083**: シェーダコンパイルの検証はWebGPUランタイムが必要

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `backends/imgui_impl_wgpu.h` - ヘッダファイル（Public API宣言）
- E-02: `backends/imgui_impl_wgpu.cpp` - 実装ファイル（全関数の実装）
- E-03: `backends/imgui_impl_wgpu.cpp:832-885` - ImGui_ImplWGPU_Init関数
- E-04: `backends/imgui_impl_wgpu.cpp:887-907` - ImGui_ImplWGPU_Shutdown関数
- E-05: `backends/imgui_impl_wgpu.cpp:909-915` - ImGui_ImplWGPU_NewFrame関数
- E-06: `backends/imgui_impl_wgpu.cpp:368-536` - ImGui_ImplWGPU_RenderDrawData関数
- E-07: `backends/imgui_impl_wgpu.cpp:655-812` - ImGui_ImplWGPU_CreateDeviceObjects関数
- E-08: `backends/imgui_impl_wgpu.cpp:814-830` - ImGui_ImplWGPU_InvalidateDeviceObjects関数
- E-09: `backends/imgui_impl_wgpu.cpp:554-635` - ImGui_ImplWGPU_UpdateTexture関数
- E-10: `backends/imgui_impl_wgpu.cpp:538-552` - ImGui_ImplWGPU_DestroyTexture関数
- E-11: `backends/imgui_impl_wgpu.cpp:922-938` - ImGui_ImplWGPU_IsSurfaceStatusError/SubOptimal関数
- E-12: `backends/imgui_impl_wgpu.cpp:979-1016` - ImGui_ImplWGPU_GetBackendTypeName/GetAdapterTypeName/DebugPrintAdapterInfo関数
- E-13: `backends/imgui_impl_wgpu.cpp:942-977` - ImGui_ImplWGPU_GetErrorTypeName/GetDeviceLostReasonName/GetLogLevelName関数
- E-14: `backends/imgui_impl_wgpu.cpp:1030-1084` - ImGui_ImplWGPU_CreateWGPUSurfaceHelper関数
- E-15: `backends/imgui_impl_wgpu.cpp:190-258` - SafeRelease関数群
- E-16: `backends/imgui_impl_wgpu.cpp:260-286` - ImGui_ImplWGPU_CreateShaderModule関数
- E-17: `backends/imgui_impl_wgpu.cpp:288-298` - ImGui_ImplWGPU_CreateImageBindGroup関数
- E-18: `backends/imgui_impl_wgpu.cpp:300-364` - ImGui_ImplWGPU_SetupRenderState関数
- E-19: `backends/imgui_impl_wgpu.cpp:637-653` - ImGui_ImplWGPU_CreateUniformBuffer関数
- E-20: `backends/imgui_impl_wgpu.cpp:127-130` - ImGui_ImplWGPU_GetBackendData関数
- E-21: `backends/imgui_impl_wgpu.h:58-72` - ImGui_ImplWGPU_InitInfo構造体

## 3) Claims と根拠の対応（レビューの主戦場）

### 初期化・終了処理（UT-WGP-001〜010）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | ImGui_ImplWGPU_Initで有効なInitInfoで初期化が成功すること | E-03 | ○ |
| C-02 | BackendFlagsにRendererHasVtxOffsetとRendererHasTexturesが設定される | E-03:854-855 | ○ |
| C-03 | フレームリソースが指定数分作成される | E-03:872-882 | ○ |
| C-04 | 二重初期化時にアサーションが発生する | E-03:836 | ○ |
| C-05 | NumFramesInFlight=1の場合に正常動作する | E-03 | ○ |
| C-06 | シャットダウンでリソースが解放される | E-04:894-906 | ○ |
| C-07 | シャットダウンでBackendFlagsがクリアされる | E-04:904 | ○ |
| C-08 | 未初期化シャットダウンでアサーション発生 | E-04:890 | ○ |
| C-09 | NewFrameでパイプライン未作成時にデバイスオブジェクト作成 | E-05:912-914 | ○ |
| C-10 | パイプライン既存時は再作成しない | E-05:912 | ○ |

### レンダリング処理（UT-WGP-011〜021）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-11 | RenderDrawDataで有効な描画データがレンダリングされる | E-06 | ○ |
| C-12 | サイズ0で早期リターン | E-06:371-374 | ○ |
| C-13 | CmdLists空で早期リターン | E-06:373 | ○ |
| C-14 | 頂点バッファ自動拡張 | E-06:390-417 | ○ |
| C-15 | インデックスバッファ自動拡張 | E-06:418-445 | ○ |
| C-16 | UserCallbackが呼び出される | E-06:483-490 | ○ |
| C-17 | ResetRenderStateで状態リセット | E-06:487-488 | ○ |
| C-18 | クリップ矩形が適用される | E-06:506-518 | ○ |
| C-19 | クリップ矩形がクランプされる | E-06:510-513 | ○ |
| C-20 | 無効クリップで描画スキップ | E-06:514-515 | ○ |
| C-21 | テクスチャ更新が自動実行される | E-06:378-381 | ○ |

### デバイスオブジェクト管理（UT-WGP-022〜030）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-22 | レンダーパイプラインが作成される | E-07:777 | ○ |
| C-23 | サンプラーが作成される | E-07:783-791 | ○ |
| C-24 | ユニフォームバッファが作成される | E-07:779, E-19 | ○ |
| C-25 | バインドグループが作成される | E-07:793-804 | ○ |
| C-26 | wgpuDeviceがnullでfalse返却 | E-07:658-659 | ○ |
| C-27 | 既存パイプラインでInvalidate先行呼び出し | E-07:660-661 | ○ |
| C-28 | InvalidateDeviceObjectsで全リソース解放 | E-08:820-829 | ○ |
| C-29 | 全テクスチャが破棄される | E-08:824-826 | ○ |
| C-30 | wgpuDeviceがnullで早期リターン | E-08:817-818 | ○ |

### テクスチャ管理（UT-WGP-031〜035）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-31 | WantCreateでテクスチャ作成 | E-09:557-597 | ○ |
| C-32 | WantUpdatesでテクスチャデータ更新 | E-09:599-632 | ○ |
| C-33 | WantDestroyでテクスチャ破棄 | E-09:633-634 | ○ |
| C-34 | UnusedFrames=0で破棄されない | E-09:633 | ○ |
| C-35 | RGBA32フォーマットのみ受付 | E-09:562, 602 | ○ |

### サーフェスステータス判定（UT-WGP-036〜044）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-36 | IsSurfaceStatusError - Dawn Error検出 | E-11:924-925 | ○ |
| C-37 | IsSurfaceStatusError - WGPU OutOfMemory検出 | E-11:927 | ○ |
| C-38 | IsSurfaceStatusError - WGPU DeviceLost検出 | E-11:927 | ○ |
| C-39 | IsSurfaceStatusError - 正常ステータス判定 | E-11:924-928 | ○ |
| C-40 | IsSurfaceStatusSubOptimal - Timeout検出 | E-11:934,936 | ○ |
| C-41 | IsSurfaceStatusSubOptimal - Outdated検出 | E-11:934,936 | ○ |
| C-42 | IsSurfaceStatusSubOptimal - Lost検出 | E-11:934,936 | ○ |
| C-43 | IsSurfaceStatusSubOptimal - SuccessSuboptimal検出 | E-11:936 | ○ |
| C-44 | IsSurfaceStatusSubOptimal - 正常ステータス判定 | E-11:931-937 | ○ |

### 名前取得関数（UT-WGP-045〜069）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-45〜52 | GetBackendTypeName各種タイプ | E-12:979-992 | ○ |
| C-53〜56 | GetAdapterTypeName各種タイプ | E-12:994-1003 | ○ |
| C-57〜60 | GetErrorTypeName各種タイプ（Dawn） | E-13:942-952 | ○ |
| C-61〜64 | GetDeviceLostReasonName各種タイプ（Dawn） | E-13:953-963 | ○ |
| C-65〜69 | GetLogLevelName各種レベル（WGPU-Native） | E-13:965-976 | ○ |

### デバッグ出力（UT-WGP-070）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-70 | DebugPrintAdapterInfoでアダプタ情報出力 | E-12:1005-1016 | ○ |

### サーフェス作成ヘルパー（UT-WGP-071〜075）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-71 | macOSでCocoa Surface作成 | E-14:1034-1047 | ○ |
| C-72 | LinuxでWayland Surface作成 | E-14:1049-1058 | ○ |
| C-73 | LinuxでX11 Surface作成 | E-14:1059-1068 | ○ |
| C-74 | WindowsでWin32 Surface作成 | E-14:1070-1079 | ○ |
| C-75 | macOSでRawWindow=nullでアサーション | E-14:1037 | ○ |

### SafeRelease関数（UT-WGP-076〜080）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-76 | ImDrawIdx*解放 | E-15:190-195 | ○ |
| C-77 | ImDrawVert*解放 | E-15:196-201 | ○ |
| C-78 | WGPUBuffer解放 | E-15:214-219 | ○ |
| C-79 | WGPUSampler解放 | E-15:232-237 | ○ |
| C-80 | nullptr時は何もしない | E-15:192,197,205,210,216,221,227,233,240 | ○ |

### 内部関数（UT-WGP-081〜098）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-81 | 頂点シェーダ作成 | E-16 | ○ |
| C-82 | フラグメントシェーダ作成 | E-16 | ○ |
| C-83 | エントリーポイントmain設定 | E-16:281,283 | ○ |
| C-84 | イメージバインドグループ作成 | E-17 | ○ |
| C-85 | 正射影行列設定 | E-18:307-318 | ○ |
| C-86 | sRGBでガンマ2.2 | E-18:320-344 | ○ |
| C-87 | 非sRGBでガンマ1.0 | E-18:346-347 | ○ |
| C-88 | ビューポート設定 | E-18:353 | ○ |
| C-89 | バッファバインド | E-18:356-359 | ○ |
| C-90 | ブレンドカラー定数設定 | E-18:362-363 | ○ |
| C-91 | DestroyTextureでリソース解放 | E-10:543-544 | ○ |
| C-92 | テクスチャIDがInvalidに設定 | E-10:548 | ○ |
| C-93 | BackendUserDataがnullptrに設定 | E-10:549 | ○ |
| C-94 | ステータスがDestroyedに設定 | E-10:551 | ○ |
| C-95 | BackendUserData=nullでスキップ | E-10:540 | ○ |
| C-96 | ユニフォームバッファ16バイトアライメント | E-19:649 | ○ |
| C-97 | GetBackendDataでデータ取得 | E-20 | ○ |
| C-98 | コンテキストなしでnullptr | E-20:129 | ○ |

### 構造体（UT-WGP-099〜100）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-99 | InitInfoデフォルト値 | E-21:60-61 | ○ |
| C-100 | PipelineMultisampleStateデフォルト値 | E-21:68-70 | ○ |

## 4) 不足情報（Unknown / Missing）
- **プラットフォーム固有のテスト**: macOS、Linux（Wayland/X11）、Windowsの各プラットフォームでのサーフェス作成は、コード解析では正常性を確認できますが、実機テストが必要です。
  - 候補：CI/CDでのクロスプラットフォームテスト / プラットフォーム固有のモックフレームワーク
- **WebGPUランタイム依存**: シェーダコンパイルやGPUリソース作成の実際の動作は、WebGPUランタイム（Dawn/wgpu-native）に依存するため、モックまたは実際のGPU環境でのテストが必要です。
  - 候補：WebGPUモックライブラリ / ヘッドレスGPU環境

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: 文字列返却関数（GetBackendTypeName, GetAdapterTypeName等）
- **1 (中リスク)**: リソース管理関数（SafeRelease, DestroyTexture等）- メモリリーク・二重解放の可能性
- **2 (高リスク)**:
  - 初期化・終了処理（Init/Shutdown）- 状態不整合の可能性
  - バッファ動的拡張（RenderDrawData内）- バッファオーバーフローの可能性
  - プラットフォーム固有コード（CreateWGPUSurfaceHelper）- クロスプラットフォーム互換性

## 6) レビュアーチェックリスト（最小）
- [ ] 初期化・終了の対称性が保たれているか（Init/Shutdown）
- [ ] リソース解放が全てのパスで適切に行われているか
- [ ] バッファサイズ計算にオーバーフローの可能性はないか
- [ ] アサーション条件が本番環境で適切か（IM_ASSERTの使用）
- [ ] Dawn/WGPU両バックエンドで条件分岐が正しいか
- [ ] sRGBフォーマット判定が網羅的か（switch文のcase）
- [ ] プラットフォーム固有コードが各OSで正しくコンパイルされるか
