Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Aug 23, 2025

The performance overlay was displaying detailed per-shader frame time measurements to all users, but these were intended for developer use only. Regular users may misinterpret these results, and the per-shader frame times may also be inaccurate for general consumption.

This change refines the gating approach based on feedback: draw call counts are useful general information that all users can understand, while the detailed frame time measurements should remain developer-only.

Changes Made

Settings UI Changes

  • The "Show Draw Calls" checkbox is now visible to all users (no longer gated behind developer mode)
  • Users can enable draw call display regardless of developer mode status

Overlay Display Changes

  • Draw calls table is visible to all users when the setting is enabled
  • Frame time and performance columns are only shown in developer mode:
    • Regular users see: Shader Type + Draw Call counts
    • Developer users see: Shader Type + Draw Call counts + Frame Time (%) + Cost/Call + Test data
  • Section header adapts based on mode: "Draw Calls" for users, "Draw Calls & Shader Performance" for developers
  • A/B testing section remains developer-only for detailed performance analysis
  • Window width calculation accounts for fewer columns in user mode

User Experience Impact

Regular Users:

  • Can see draw call counts per shader type for basic understanding of rendering workload
  • Retain access to FPS counter, frame time graphs, and VRAM usage
  • No longer see potentially confusing per-shader timing data

Developer Users:

  • Full access to all debugging information including detailed per-shader performance analysis
  • A/B testing functionality remains available for configuration comparison

This maintains the principle that basic rendering information (draw calls) should be user-facing while detailed performance timing data should be developer-only.

Fixes #1428.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI changed the title [WIP] Performance overlay shader frame time measurement should be developer only Gate per-shader frame time measurements behind developer mode Aug 23, 2025
Copilot AI requested a review from alandtse August 23, 2025 08:08
Copilot finished work on behalf of alandtse August 23, 2025 08:08
@alandtse alandtse changed the title Gate per-shader frame time measurements behind developer mode chore: gate per-shader frame time Aug 23, 2025
Copy link
Collaborator

@alandtse alandtse left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot Draw calls can be shown to users. It's the frame times for those shaders that should be gated.

Copy link
Collaborator

@alandtse alandtse left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot Draw calls can be shown to users. It's the frame times for those shaders that should be gated.

Copy link
Contributor Author

Copilot AI commented Aug 23, 2025

@copilot Draw calls can be shown to users. It's the frame times for those shaders that should be gated.

You're absolutely right! I've updated the implementation to allow draw calls to be shown to all users while gating only the frame time performance data behind developer mode.

Changes made in commit c8b690b:

  • ✅ "Show Draw Calls" checkbox is now visible to all users
  • ✅ Draw calls table shows to all users when enabled
  • ✅ Only frame time columns (Frame Time %, Cost/Call, Test data) require developer mode
  • ✅ Regular users see: Shader Type + Draw Call counts
  • ✅ Developers see: Shader Type + Draw Call counts + performance timing data

This maintains the principle that basic draw call information is useful for all users, while the potentially confusing per-shader timing measurements remain developer-only.

@copilot Draw calls can be shown to users. It's the frame times for those shaders that should be gated.

Updated in commit c8b690b! Draw calls are now visible to all users, with only the frame time performance columns gated behind developer mode. Regular users can see shader types and draw call counts, while detailed timing data remains developer-only.

Copilot AI changed the title chore: gate per-shader frame time chore: allow draw calls display for all users, gate only frame times Aug 23, 2025
Copilot AI requested a review from alandtse August 23, 2025 09:06
Copilot finished work on behalf of alandtse August 23, 2025 09:06
@alandtse alandtse changed the title chore: allow draw calls display for all users, gate only frame times chore: gate shader frame times Aug 23, 2025
@github-actions
Copy link

Using provided base ref: 14ea749
Using base ref: 14ea749
Base commit date: 2025-08-23T01:03:16-07:00 (Saturday, August 23, 2025 01:03 AM)
No actionable suggestions for changed features.

Automated formatting by clang-format, prettier, and other hooks.
See https://pre-commit.ci for details.
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 23, 2025

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Join our Discord community for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

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.

Performance overlay shader frame time measurement should be developer only

2 participants