[GUI] Replace external launcher GUI certification contract with an in-process GRContext startup self-check and fix failing recorder tests
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 24/100
Research direction
Start by tracing GUI startup through ClientPlatformWindows and inspect the named certification components: GuiCertification.cs, GuiDevicePreflight.cs, and OptimumGuiGpuProbe.cs. Then review the 65 failing cases in the Optimum.Tests Cairo/Skia recorder suite and identify which pixel-diff assertions are obsolete. Done means GPU capability is checked in-process and the recorder failures are resolved; the issue gives no test file names or failure details.
Written by the indexing model from the issue text.
Description
Problem
- Over-engineered prelaunch certification: Enabling GPU GUI rendering requires an external Launcher certification flow (
GuiCertification.cs,GuiDevicePreflight.cs,OptimumGuiGpuProbe.cs,MatchesCertifiedDevice) that persists device/driver hashes to disk and gates Linux out of default GPU execution. Because the game client already initializes the real OpenGL context inClientPlatformWindows, capabilities can be verified directly in-process. - Failing test suite on main:
Optimum.Testscurrently has 65 failing tests on Linuxmainin the Cairo/Skia recorder suite (2449 passed, 65 failed, 34 skipped).
Proposed Fix
- Replace the external Launcher device certification contract with a fast (<1 ms) in-process
GRContextstartup self-check whenClientPlatformWindowsinitializes the OpenGL context (create a small FBO-backedSKSurface, issue a test draw + flush, and verifyGL.GetError() == ErrorCode.NoError). - Fix or remove obsolete Cairo pixel-diff assertions causing the 65 test failures in
Optimum.Tests.
- Dominant language
- C#
- Stars
- 22
- Forks
- 4
- Avg merge
- 1h 11m
- Merged PRs (30d)
- 40
Getting set up
- No Dockerfile or Docker Compose file
- No 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 StratumServer/Optimum
-
complexity: hard enhancement performance rendering
Difficulty 5/5 Over a week Newbie friendliness 25/100
StratumServer/Optimum#230 ·
Maintainers usually reply within 1 day
-
complexity: easy performance rendering
Difficulty 4/5 3-5 days Newbie friendliness 52/100
StratumServer/Optimum#228 ·
Maintainers usually reply within 1 day
-
complexity: medium performance rendering
Difficulty 5/5 Over a week Newbie friendliness 32/100
StratumServer/Optimum#227 ·
Maintainers usually reply within 1 day
-
complexity: hard performance rendering
Difficulty 5/5 Over a week Newbie friendliness 35/100
StratumServer/Optimum#225 ·
Maintainers usually reply within 1 day
-
[GUI] Avoid per-command clip array cloning and redundant SKPath allocations in SurfaceRecorderPossibly taken @Zaldaryon claimed this today. Opencomplexity: medium performance rendering
Difficulty 4/5 3-5 days Newbie friendliness 35/100
StratumServer/Optimum#224 ·
Maintainers usually reply within 1 day
All issues in StratumServer/Optimum
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
flyingpie/windows-terminal-quake#419 ·
Maintainers usually reply within 1 day
-
enhancement help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
a-corriger documentation
Difficulty 1/5 1-3 hours Newbie friendliness 83/100
christian-raj/S-Aloha#272 ·
-
Incorrect loop bound in SizeOptIListSelectIterator.ToListPossibly taken @equmagg claimed this today. Openarea-System.Collections untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
dotnet/runtime#137126 · 1 comment ·
Maintainers usually reply within 1 day
-
bug debugger flaky small
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
Maintainers usually reply within 1 day