[GUI] Replace external launcher GUI certification contract with an in-process GRContext startup self-check and fix failing recorder tests

Open
#226 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
24/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
csharp
Domain
desktop, testing

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

complexity: medium enhancement rendering

Problem

  1. 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 in ClientPlatformWindows, capabilities can be verified directly in-process.
  2. Failing test suite on main: Optimum.Tests currently has 65 failing tests on Linux main in 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 GRContext startup self-check when ClientPlatformWindows initializes the OpenGL context (create a small FBO-backed SKSurface, issue a test draw + flush, and verify GL.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

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from StratumServer/Optimum

All issues in StratumServer/Optimum

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.