[P2][RENDER] Per-scene render-quality autotuning without surprise behavior
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 55/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- rust
- Domain
- computer-graphics, performance
Research direction
Read src/three/quality.rs, src/render/gpu.rs, and src/render/timer.rs, then review the history of #151, #157, and #158 for render-scale changes and history resets. Start by testing a controller with recorded optional GPU timings, checking bounds and hysteresis before live integration. Done means an opt-in, documented adjustment that protects explicit settings and screenshot tests, avoids oscillation, and never uses CPU time when GPU data is unavailable.
Written by the indexing model from the issue text.
Description
Problem and goal
Desktop and mobile GPUs vary dramatically; quality presets exist but are static.
Implementation scope
- Research optional scene-level automatic render scale/shadow quality adjustments using GPU frame timings.
- Protect explicit user settings and deterministic screenshot tests.
- Introduce hysteresis and safe bounds; never change quality when performance data is unavailable.
- Expose active quality choices and why they changed.
Acceptance criteria
- Opt-in only and documented.
- No quality oscillation under controlled fluctuating GPU load.
- No feature selection based on unreliable CPU frame time as a GPU proxy.
Relevant code
src/three/quality.rssrc/render/gpu.rssrc/render/timer.rs
Dependencies and notes
After performance profiling and GPU capability tiers.
Compatibility: preserve existing public Rust and C/C++ APIs unless an independently approved design explicitly requires a breaking change. Collect correctness results and before/after measurements for performance-oriented changes.
Source audit and first contribution (2026-11-09)
Reviewed against source baseline df5c1d4 and merged implementation PRs through #167. The full issue acceptance criteria are still open; this audit does not mark the task complete. Existing priority is unchanged.
Starting point: Static quality presets and optional GPU timing exist; autonomous quality adjustment is still planned.
First slice: Test a controller against recorded optional GPU timings, bounds and hysteresis before live integration.
Dependencies and coordination: Use #151/#157 and #158 history resets for render-scale changes. Never substitute CPU time for absent GPU measurements.
Focused Rust-only PRs are welcome; a contributor need not complete this entire issue in one PR or also implement C/C++ bindings and guide chapters. Maintainers coordinate scoped documentation/native follow-ups. Preserve existing compatibility and supply tests/evidence relevant to the slice.
- Dominant language
- Rust
- Stars
- 4
- Forks
- 0
- Avg merge
- 45m
- Merged PRs (30d)
- 199
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ponkoengine/ponko
-
area: ecs bug priority: P2 type: testing
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
ponkoengine/ponko#321 ·
Maintainers usually reply within 1 day
-
area: rendering bug priority: P2 type: testing
Difficulty 4/5 3-5 days Newbie friendliness 44/100
ponkoengine/ponko#322 ·
Maintainers usually reply within 1 day
-
area: build area: platforms help wanted priority: P3 type: feature
Difficulty 4/5 3-5 days Newbie friendliness 45/100
ponkoengine/ponko#282 ·
Maintainers usually reply within 1 day
-
area: tooling priority: P2 type: feature
Difficulty 5/5 Over a week Newbie friendliness 35/100
ponkoengine/ponko#262 ·
Maintainers usually reply within 1 day
-
area: build documentation help wanted priority: P2 type: feature
Difficulty 4/5 3-5 days Newbie friendliness 45/100
ponkoengine/ponko#246 ·
Maintainers usually reply within 1 day
All issues in ponkoengine/ponko
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
aws/aws-emulator#30 · 1 comment ·
-
tormach-plasma refusal text with no machine reads "no machine is not declared a plasma machine"Openarea:post bug effort:low P2 source:agent
Difficulty 1/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Chat images never show without ImageMagick: ffprobe fallback uses an option string ffprobe 9 rejectsOpen
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
eliasstravik/herdr-projects#1011 ·
-
design-data-spec
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
adobe/spectrum-design-data#1744 ·
Maintainers usually reply within 1 day