Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Graphics: surface loss and restore in the renderer

Aperta
#246 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
csharp

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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
Lingua principale
C#
Stelle
1
Fork
1
Merge medio
1h 48m
PR unite (30g)
30

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di MASS4ORG/Turian

Tutte le issue di MASS4ORG/Turian

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.