Performance Settings

TButt exposes performance and quality settings from Unity and platform SDKs into an editor window so you can tweak and test until you find the best fit for your game.

Timestep

The Core Settings window offers optional, per-platform settings for syncing Unity Time settings with the refresh rate of the active headset.

Value Description
Locked Sets the timestep to match the framerate of the active headset (1/90 for 90hz, 1/60 for 60 hz, etc).
Half Sets the timestep to be half the framerate of the active headset (1/45 for 90hz, 1/30 for 60 hz, etc).
Keep Unity Setting Leaves your time setting alone.

Target Timestep

Assigns the fixed delta time in relation to the headset.

Max Timestep

Assigns the maximum delta time in relation to the headset. We recommend leaving this at “half” on platforms offer reprojection or motion smoothing systems (such as Steam and Oculus PC) and setting it to “locked” on platforms that do not (such as Oculus mobile and Daydream).

GPU Performance

Some Unity rendering settings are assigned per-platform using the Core Settings tool.

GPU Sorting Mode

Adjusts the OpaqueSortMode property on the camera. If you are CPU limited and batching to optimize draw calls (usually on mobile), you want to use No Distance Sort. If you are being hurt by overdraw (usually on PC/console), you may have better performance with Front to Back. If you aren’t sure, set it to Default to use Unity’s recommended setting.

Camera Depth Texture

Adjusts the DepthTextureMode property on the camera. You can use this to explicitly disable the depth texture on platforms where you don’t need it for shaders or post-processing effects to improve performance.

Renderscale

Controls the (XRSettings.eyeTextureResolutionScale) at startup. The defaults represent the recommended renderscales provided by each platform.

TBQualitySettings

TButt includes an internal quality level that is decoupled from Unity’s quality settings. You can assign different quality levels to different platforms to create quality level buckets, and then reference it at runtime to adjust your game’s fidelity across those buckets.

Example

 if(TBSettings.GetCurrentQualityLevel() < TBSettings.TBQualityLevel.Medium)
{
     // Play low-res VFX
}
else
{
     // Play high-res VFX
}

Note: Use of the quality level system is completely optional. TButt does not rely on any particular values being assigned to it.

Quality Settings Overrides

You can optionally override the Unity quality settings for each platform by toggling the override in the Core Settings menu.

Oculus Rendering Options

Fixed Foveated Rendering

Available on: Oculus Quest, Oculus Go. Amount of Fixed Foveated Rendering to use. See Oculus documentation here for more details. Options: None Low Medium High.

Refresh Rate

Available on: Oculus Go. Choose the refresh rate mode to use. Options: 60 72.

Adaptive Resolution

Available on: Oculus Rift. Assign values for the Oculus adaptive resolution system. See Oculus documentation here for more details.