Graphics: surface loss and restore in the renderer

クローズ
#246 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
csharp

調査の方向性

Start with Renderer.cs:256-284 and trace the surface and swapchain lifecycle through the host event handling and Device.Dispose; the issue also depends on #245. Implement the listed loss, restore, resize, and disposal behavior, then verify that Linux passes 100 minimize and restore cycles without validation errors and that recreation has no busy-wait.

索引モデルが issue の本文から書いたものです。

説明

c:graphics p:high size:L t:feature

Current State

The surface is never destroyed or recreated. Renderer.RecreateSwapChain (Renderer.cs:256-284) busy-waits on window.DoEvents() until the framebuffer is non-zero and throws if formats change; framebufferResized is never set; oldSwapchain is always null; Device.Dispose destroys neither surface nor instance. On Android the surface disappears on every pause.

Tasks

  • On surface lost: wait idle, destroy swapchain and surface, pause ticking, stop rendering
  • On surface restored: recreate surface and swapchain; rebuild render pass and pipelines if the format changed
  • Pass oldSwapchain on recreation; set the resize flag from host events
  • Destroy surface and instance on dispose
  • Desktop stress test: minimize/restore and resize

Acceptance Criteria

  • 100 minimize/restore cycles validation-clean on Linux
  • No busy-wait remains

Related

  • Android plan task A10 · seniority Sr · mergeable now (.NET 10)
  • Depends on: #245
  • Platform roadmap: #100
主要言語
C#
スター
1
フォーク
1
平均マージ
2時間 10分
マージ済み PR(30日)
37

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

MASS4ORG/Turian のほかの issue

MASS4ORG/Turian の issue をすべて見る

似ている issue

C# の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。