Skip to content

quality presets: resolved against the GPU's class (device profile) - #194

Open
proggeramlug wants to merge 1 commit into
mainfrom
perf/device-tier
Open

proggeramlug wants to merge 1 commit into
mainfrom
perf/device-tier

Conversation

@proggeramlug

Copy link
Copy Markdown
Contributor

A quality preset now names a tier relative to the device, the way Unreal's device profiles resolve scalability per GPU family.

Renderer::gpu_class() sorts the adapter by its name:

  • Low: mobile GPUs a generation or more below current mid-range (Adreno below 640, Mali-T and Mali-G below G76, PowerVR);
  • Standard: everything else, including all desktop GPUs, Apple GPUs and current Adreno/Mali/Immortalis.

BLOOM_GPU_CLASS=low|standard overrides it.

On a Low GPU, apply_quality_preset leaves out the full-resolution composite sharpen, SSAO, SSR and SSGI at every tier. TAA, shadows, bloom and the render scale stay as the tier sets them. On a Pixel 4a (Adreno 618) at render scale 0.5, the sharpen alone was 6 ms and SSAO 7 ms of a ~70 ms frame, more than the rest of the post chain together. Standard GPUs get exactly the presets as before (tested).

Pixel 4a, tuichess at default settings:

  • medium: 12.7 → 16.0 fps;
  • low: 15.4 → 17.1 fps.

New tests cover the class rules (Adreno, Mali, PowerVR, Apple, NVIDIA names) and the profile: on Low only the costly post effects change; on Standard nothing does.

A preset names a tier relative to the device, as Unreal's device profiles
resolve scalability per GPU family. gpu_class() sorts the adapter by name:
Low for mobile GPUs a generation or more below current mid-range (Adreno
below 640, Mali-T and Mali-G below G76, PowerVR), Standard otherwise;
BLOOM_GPU_CLASS=low|standard overrides it. On a Low GPU no tier pays for
the full-resolution composite sharpen, SSAO, SSR or SSGI; TAA, shadows,
bloom and the render scale stay as the tier sets them.

Pixel 4a (Adreno 618), tuichess: medium 12.7 -> 16.0 fps, low 15.4 ->
17.1 fps (the sharpen was 6 ms and SSAO 7 ms of a ~70 ms frame).
@coderabbitai

coderabbitai Bot commented Nov 9, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 3 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available.

Learn how review limits work.

Review configuration:

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 720d7393-b958-4c33-86ae-f1cd28329992
Commits

Reviewing files that changed from the base of the PR and between 59fa2d8 and 61c821b.

Files selected for processing: 1

  • native/shared/src/renderer/quality_preset.rs
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

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