操作
機能 #357
完了機能 #344: [Phase 4] レンダリングと UI/スキン描画
wgpu D3D12 初期化+DXGI flip-discard waitable swapchain
機能 #357:
wgpu D3D12 初期化+DXGI flip-discard waitable swapchain
エージェント ちゃん さんが14日前に更新
- ステータス を 未着手 から 実装中 に変更
- 進捗率 を 0 から 10 に変更
実装に着手しました。
- ブランチ:
feature/357-wgpu-d3d12-swapchain - 対応方針:
ferrhythm-renderに wgpu(DX12) 初期化基盤を新設。flip-discard + waitable swapchain はSurfaceConfiguration::desired_maximum_frame_latency = 1(wgpu DX12 が内部で waitable object を使用)で実現し、提示モード切替(Vsync/Mailbox/Immediate)と WGSL クリアパイプラインを実装。提示モード/フォーマット選択・サーフェス構成生成はプラットフォーム非依存層に切り出してコンテナで単体テスト、DX12 実体は Windows ホストで検証。
エージェント ちゃん さんが14日前に更新
- ステータス を 実装中 から 完了 に変更
- 進捗率 を 10 から 100 に変更
対応が完了しました。
概要¶
低遅延描画の土台として ferrhythm-render に wgpu(DX12) 描画基盤を新設。DXGI flip-discard + フレームレイテンシ waitable swapchain で表示遅延を最小化し、提示モード切替と WGSL パイプラインを実装。併せてワークスペース全体の windows-rs を最新の 0.62 に統一。
変更点¶
-
描画基盤:
presentation.rs(プラットフォーム非依存・テスト可能な present mode フォールバック / フォーマット・アルファ選択 / フレームレイテンシ clamp /SurfaceConfiguration生成)とrenderer.rs(Renderer、最小 WGSL fullscreen-triangle パイプライン、clear→draw→present、提示モード切替・resize)を新設。 -
waitable swapchain は安全 API の
SurfaceConfiguration::desired_maximum_frame_latency = 1(DX12 でIDXGISwapChain2::SetMaximumFrameLatency=FRAME_LATENCY_WAITABLE_OBJECT付き flip-discard swapchain に直結)で実現。 -
Windows ホスト検証用 example
clear_window(実ウィンドウで clear/swap、全画面色切替で present 継続を可視化)。 -
windows-rs 0.58 → 0.62 統一: wgpu 29 が要求する windows 0.62 と旧 0.58 が衝突しホストで wgpu-hal DX12 ビルドが失敗したため、ワークスペース全体を最新 0.62 に統一(
IMMDevice::Activateの feature 追加、CreateWindowExWのOption<HWND>化対応)。 - 変更ファイル:
crates/ferrhythm-render/{lib.rs, presentation.rs, renderer.rs, shaders/fullscreen.wgsl, examples/clear_window.rs, Cargo.toml}、crates/ferrhythm-audio/Cargo.toml、crates/ferrhythm/{Cargo.toml, src/main.rs}、spikes/audio-latency/{Cargo.toml, src/rawinput.rs}、Cargo.lockほか
テスト¶
-
cargo test --workspace: 成功(ferrhythm-renderに新規 21 件、既存全緑) -
cargo clippy --workspace --all-targets -- -D warnings/cargo fmt --all -- --check: 成功 -
cargo check --target x86_64-pc-windows-gnu(audio / ferrhythm / render+examples): windows 0.62 で型チェック通過(wgpu-hal DX12 含む) - Windows ホスト実機確認: clear 描画 / スワップ / 提示モード切替 / リサイズ / 全画面色切替を確認済み
関連 MR¶
- !20 (feature/357-wgpu-d3d12-swapchain → develop)
残課題 / 補足¶
- マージされたコミットに確認用スクリーンショット
image.pngが誤って混入しているため、別途除去予定(クリーンアップ)。
操作