Skip to content

refactor(menu): regroup Advanced tabs by purpose#2382

Closed
alandtse wants to merge 1 commit into
community-shaders:devfrom
alandtse:claude/determined-wescoff-f9148e
Closed

refactor(menu): regroup Advanced tabs by purpose#2382
alandtse wants to merge 1 commit into
community-shaders:devfrom
alandtse:claude/determined-wescoff-f9148e

Conversation

@alandtse
Copy link
Copy Markdown
Collaborator

@alandtse alandtse commented May 20, 2026

Summary

  • Regroup the Advanced menu's tabs from audience-based (Developer / Logging / Shader Debug / Disable at Boot / Testing) to four alphabetical, purpose-based tabs: Shaders, Diagnostics, Disable at Boot, Testing.
  • Drop two redundant nested headings: CollapsingHeader("Testing") inside the Testing tab, and CollapsingHeader("Active Shaders") inside the Shader Blocking panel.
  • Move "Skip Clear Cache Dialogue" from Shaders to Behavior (UI behavior, not a shader setting); update the docs path in docs/development/vscode-setup.md accordingly.

New tab contents

Tab Sections
Shaders Compile Flags · Threading · Cache & File Watcher · Replace Original Shaders · Statistics
Diagnostics Logging · Runtime Debug · Shader Blocking (dev-mode only)
Disable at Boot unchanged
Testing A/B harness + dev-mode test scaffolding

No functional change to shader compilation, blocking, A/B, or boot toggles — purely reorganization plus the dedupe.

Test plan

  • Build ALL preset, launch in-game, open Settings → Advanced
  • Verify all four tabs render; no orphan TableNextColumn or ImGui assertion warnings in log
  • Toggle Developer Mode and confirm dev-only sections (Shader Blocking panel, Replace shaders V/P/C, FeatureIssues testing UI) appear/disappear
  • Open Testing tab and confirm the "Feature Issue Testing" section renders inline (no extra "Testing" expander above it)
  • Open Diagnostics → Shader Blocking → Active Shaders and confirm the table renders inline under a section header (no extra collapsing header)
  • Confirm "Skip Clear Cache Dialogue" appears under Settings → Behavior, not under Shaders

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation

    • Updated VSCode setup guide with correct Community Shaders settings path.
  • UI/UX Changes

    • Reorganized Advanced Settings menu into dedicated tabs: Shaders, Diagnostics, Disable at Boot, and Testing.
    • Moved "Skip Clear Cache Confirmation" option from Shaders tab to Interface/Behavior settings.
    • Enhanced shader diagnostics and blocking panel in the Diagnostics section.

Review Change Stack

Old Advanced tabs (Developer / Logging / Shader Debug / Disable
at Boot / Testing) mixed audience and topic. Regrouped into four
alphabetical, purpose-based tabs:

- Shaders:     Compile Flags, Threading, Cache & File Watcher,
               Replace Original Shaders, Statistics
- Diagnostics: Logging, Runtime Debug, Shader Blocking (dev-only)
- Disable at Boot: unchanged
- Testing:     A/B harness + dev-mode test scaffolding

Also:
- Drop redundant CollapsingHeader("Testing") inside the Testing
  tab and CollapsingHeader("Active Shaders") inside the Shader
  Blocking panel -- both nested headings under their own tab/panel.
- Move "Skip Clear Cache Dialogue" from Shaders tab to Behavior
  (it's UI behavior, not a shader setting).
- Update docs/development/vscode-setup.md menu path to match.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 20, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 127e5a90-ad13-4653-b4ae-f3b85be79add

📥 Commits

Reviewing files that changed from the base of the PR and between fd20066 and ffb86ce.

📒 Files selected for processing (5)
  • docs/development/vscode-setup.md
  • src/FeatureIssues.cpp
  • src/Menu/AdvancedSettingsRenderer.cpp
  • src/Menu/AdvancedSettingsRenderer.h
  • src/Menu/SettingsTabRenderer.cpp

📝 Walkthrough

Walkthrough

This PR restructures the Advanced Settings UI from a developer/logging/shader-debug layout into focused Diagnostics, Shaders, and Testing tabs, decomposes monolithic section methods into granular helpers, consolidates shader configuration into a dedicated tab, and relocates cache-confirmation settings to the Behavior tab for UI consistency.

Changes

Advanced Settings UI Refactoring

Layer / File(s) Summary
Private API contract and tab structure
src/Menu/AdvancedSettingsRenderer.h, src/Menu/AdvancedSettingsRenderer.cpp
Header declarations replace monolithic logging/debug/developer methods with granular shader and diagnostics entry points plus helper method declarations. Main tab bar reorganized to lead with Diagnostics, followed by Disable at Boot, Shaders, and Testing.
Shaders section implementation
src/Menu/AdvancedSettingsRenderer.cpp
Dedicated Shaders tab with compile flags (including new partial precision and avoid-flow-control toggles), threading sub-section, cache and file watcher controls, shader replacement table, and compile statistics with parallelism metrics and slowest-shaders list.
Diagnostics section with shader blocking
src/Menu/AdvancedSettingsRenderer.cpp
Diagnostics tab split into composable Logging controls, Runtime debug controls, and developer-mode Shader blocking panel with inline active-shaders list (replacing nested collapsing header) and interactive blocking/unblocking actions.
Testing section with expanded developer UI
src/Menu/AdvancedSettingsRenderer.cpp
Testing tab includes A/B testing settings via callback and expanded developer-mode UI with "Test Conditions" button that executes console commands to prep player state.
Cache confirmation checkbox consolidation
src/Menu/SettingsTabRenderer.cpp
"Skip Clear Cache Dialogue" checkbox moved from Shaders tab to Behavior tab, consolidating UI-behavior settings while preserving binding to SkipClearCacheConfirmation setting.
Feature Issues and documentation updates
src/FeatureIssues.cpp, docs/development/vscode-setup.md
Feature Issue Testing UI refactored to use Util::SectionWrapper layout instead of nested ImGui::CollapsingHeader. VSCode documentation updated to reference correct Community Shaders menu path (Shaders → Cache & File Watcher).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • davo0411
  • jiayev

Poem

🐰 Tabs reorganized with care,
Shaders, Diagnostics, Testing fair,
Settings consolidated right,
Menu structure shines so bright!
With helper methods set free,
Code grows organized, clean, and free!

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 OpenGrep (1.21.0)

OpenGrep fatal error (exit code 2): [00.27][ERROR]: Error: exception Unix_error: No such file or directory stat src/Menu/SettingsTabRenderer.cpp
Raised by primitive operation at UTmp.replace_named_pipe_by_regular_file_if_needed in file "libs/commons/UTmp.ml", line 145, characters 8-27
Called from Scan_CLI.replace_target_roots_by_regular_files_where_needed.(fun) in file "src/osemgrep/cli_scan/Scan_CLI.ml", lines 1086-1087, characters 19-65
Called from List_.fast_map in file "libs/commons/List_.ml", line 81, characters 17-20
Called


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@alandtse
Copy link
Copy Markdown
Collaborator Author

Wrong target — reopening against origin/dev.

@alandtse alandtse closed this May 20, 2026
@github-actions
Copy link
Copy Markdown

No actionable suggestions for changed features.

@github-actions
Copy link
Copy Markdown

✅ A pre-release build is available for this PR:
Download

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant