Having the ability to natively configure, one by one, your applications and games, making the most of the potential of your headset and thus improving the gaming experience and graphics, this is the solution we offer you.
Modifying the graphic performances of the Meta Quest via SideQuest, a chore...
If you've ever fiddled with SideQuest, you might have tried changing the settings on your Meta Quest one day. To do this, you must connect your headset to your computer or to your Android smartphone via the USB cable and / or authorize wireless debugging, then go to the "Device settings & tools" as in the screenshot below.
From this screen, it is possible to change the resolution of the textures (1) and to modify the performance of the central processor and the graphics processor (2), or the fixed foveal rendering (3). The result is an often sharper, more detailed image and/or smoother application.
The following images show the texture resolution setting (512px vs 3072px) in the Walkabout Mini Golf game.
However, these operations require going back and forth on the computer or smartphone, and taking off your headset to make new settings from the SideQuest application, as soon as the headset restarts, or we want to modify another game.
Do without SideQuest by applying profiles automatically thanks to the Quest Games Optimizer !
The solution we offer is a tool, in the form of a macro (see our tutorial: programming and automating our VR headset using macros (FR)) which allows us to free ourselves from repetitive SideQuest manipulations, to keep the headset on our head and to store in memory a specific setting for each game that we want to modify. It then becomes possible to juggle our favorite games, set as we want.
And concretely, how is it going? Well, when a game that we want to set up launches, its custom profile (entered by hand or predefined by us) is automatically applied and a notification appears, indicating the success of the operation.
Keep in mind, however, that this does not improve the performances or the sharpness of PC VR games. Indeed, it is the graphics card of the computer that works to generate the images and send them as they are to the Meta Quest, which simply acts as a screen.
Possible settings
We configure the graphic performance profiles by games in a variable acting as a configuration file.
The profile setting contains the following parameters. They are optional and if you leave them blank, the default values will be applied.
- TS (Texture Size): changes the rendering quality of textures for each eye. It is a kind of supersampling.
Below is the default resolution (per eye) and native resolution of Meta Quest 1 & 2.
Per eye (px) Quest 1 Quest 2 Default 1216x1344 1440x1584 Native 1440x1600 1832x1920
The screen resolution is much higher than the default Quest resolution. This is why we are tempted to fully exploit, or even exceed the native resolution to obtain better display fineness. In the case of Quest 2, you will notice that the default resolution is equal to the native resolution of Quest 1. This is why a lot of content appears blurry to us.
Here is the size of the textures available by default. These are the ones listed in the SideQuest application. These are the resolutions for each eye.
Default value Per eye (px) 512 512 x 563 768 768 x 845 768 768 x 845 1024 1024 x 1127 1216 1216x1344 1440 1440 x 1584 1536 1536 x 1690 2048 2048 x 2253 2560 2560 x 2816 3072 3072 x 3380
Since version 2.0.0 of the Quest Games Optimizer, we can set an "exotic" texture resolution, at 2000px for example, instead of the values listed above.
Be careful, just like on a computer, playing on oversampling induces a much greater need for resources. As a result, it becomes necessary to increase the overall performance of the headset in order to maintain a satisfactory frame rate and thus avoid lags.
- PERF: defines the performance level of the CPU and GPU.
* By default, the headset dynamically manages its performances.
Value Description 0 Power Save 1 Low 2 Medium 3 High 4 Very High (and hot)
- FFR (Fixed Foveated Rendering): Defines how the image is rendered at the outer edges. It is possible to keep the image sharpness in the center of the lens while degrading the image around the periphery. The result is a performance gain because the headset no longer calculates the entire image in high resolution. In principle, this artifice is almost imperceptible to our eyes, because the lenses by their convex design blur the image as our look moves away from the center of the image.
The higher the value, the blurrier the image is on the sides and the more relieved the graphics chip is.
* By default, the helmet uses dynamic foveal rendering.
Value Description 0 Off 1 Low 2 Medium 3 High 4 Very High
- Here is a configuration sample. Note that for the first profile, the FFR was not indicated. It will therefore be a dynamic FFR which will be used and managed by the headset. You can do the same with TS and PERF:
"MyGame1;TS:2048;PERF:2; | MyGame2;TS:3072;PERF:3;FFR:4;|"
Each game profile and application is separated by the character "|" and each parameter ends with "; ".
It is possible to enter as many profiles as desired. However, think about enriching the trigger of the "Quest_Games_Optimizer" macro to add the games you want to optimize.
The screenshots below are taken from the games After the Fall (read our review (FR)) and Mission: ISS for which we have established graphic performance profiles. The difference in sharpness of the scenes is clearly visible between the "BEFORE" and "AFTER" images.
Be aware of what you are doing
Keep in mind that these manipulations are not trivial and can cause the headset to overheat, become unstable, drop in frame rate and decrease battery life. However, knowingly modifying these parameters can be beneficial in many situations and can bring real added value in video games in particular.
These manipulations need to be applied in the right way. If you increase the resolution of textures, for example, you will probably have to increase the performance of the CPU and GPU or play with the fixed foveal rendering.
Prerequisites and installation
WARNING: before embarking on the following manipulations, we would like to point out that we are not held responsible for any possible inconvenience that may arise on your device during its configuration. Also, you act with full knowledge of the facts.
To continue with this tutorial and operate the Quest Games Optimizer, your headset must be in developer mode.
Installation steps (to be done only once):
- Install MacroDroid.
- Install the ADB plug-in.
- Activate the ADB plug-in.
- Retrieve the macro "Quest_Games_Optimizer".
- Automatic configuration of the macro according to the headset model and retrieval of cloud profiles.
Recurring actions:
- Retrieving the latest cloud profiles.
- Selection of games to optimize from the macro.
- Manual configuration of games if necessary.
- Activation of Wi-Fi debugging (on each hard restart of the headset).
The following video is an installation guide, but also serves as a demonstration of the capabilities of the Quest Games Optimizer. The installation of the two .apk (download at this address), the activation of the plug-in and the recovery of the "Quest_Games_Optimizer" macro from the MacroDroid application are to be done only once.
It's not visible in the video above, but when a profile is detected and applied, a notification pops up, synonymous with success.
Be careful, even if the possibilities of this tool seem miraculous to you, there is a catch. As long as Super User (root) rights are not available on the Meta Quest, we need each time the headset is physically restarted (the standby mode is not a problem, nor the extension of the screen), to enable Wi-Fi debugging from the SideQuest application, the Oculus Developper Hub or manual commands. This involves plugging the headset into our computer or our Android smartphone, each time the headset cold starts. This is a limitation of Android system that resets ADB debugging settings on every reboot. The same thing happens if you do your manipulations manually through the SideQuest application.
To learn more about MacroDroid, ADB and the purpose of the plugin, go to the "Glossary" section at the bottom of the tutorial.
Don't want to bother setting up your games yourself? Take advantage of the configurations already established by us!
We provide many graphic performance profiles already pre-established and tested by us. To retrieve our latest profiles, you just need to press the Power button twice (turn off then turn on the screen or standby mode). The Quest Games Optimizer will save them for you. If ever the configuration that we offer you does not please you, you can overwrite it by filling in your own configuration in the "appsPerformancesProfiles" variable.
We make sure that the profiles we offer you meet certain specifications:
- Improved sharpness compared to the original game.
- Maintaining the number of frames per second (fps) at the level of the frame rate of the headset defined for the game. We therefore try not to go below constant 72fps for a frequency of 72Hz in order to avoid lags as much as possible.
- Moderate heating of the battery when possible.
The Quest Games Optimizer is not working, what to do ?
The notification does not appear:
- Check that the application you want to configure is present in the macro's application trigger.
- Check the spelling of the applications you have configured in the "appsPerformancesProfiles" variable.
- Remember to separate the profiles with "|" and the parameters with ";".
- Remember to check that the "do not disturb" option is disabled on your headset.
- Please note, we regularly add new game profiles to our cloud database but many are still missing, so some games should be configured on your side as long as we have not saved them in our database.
If the graphics performance profile does not apply despite the presence of the notification of the applied profile, or you encounter an error:
- Check that Wi-Fi debugging is still enabled. To do this, simply check in SideQuest if the connection lights are green and reactivate wireless debugging if necessary.
- Relaunch the ADB Shell [Tasker Plugin].
- Accept USB debugging and RSA key again.
- In some cases (quite rare), if the headset is busy for example, the macro could not be triggered in due time when launching a game. Also, the profile could not be applied correctly. You will be notified if the processing time exceeds a certain limit (it does not cover all cases) and you will be prompted to simply relaunch your game.
Update the macro
We are constantly improving the Quest Games Optimizer. At the time of this tutorial, the "Quest_Games_Optimizer" macro is in version v2.0.0, but you may receive a notification indicating the presence of a new update to download.
To update the macro, all you have to do is go to the "Macros" tab of the MacroDroid application and do a long press on the tile of the macro in question, then click on "Delete".
Be careful, after reinstalling the macro, you will have to reconfigure your applications trigger.
Release notes
2.0.0 [2021-12-29] (Quest_Games_Optimizer)
- From now on there will be only one macro: "Quest_Games_Optimizer". It replaces the two existing ones ("OQ_APP" & "OQ_APP_Reset").
- Automatic headset configuration.
- Automatic creation of the "appsPerformancesProfiles" global variable.
- Initialization of the "appsPerformancesProfiles" global variable with an example profile.
- Possibility to define custom values for the size of the textures. No need to respect the default sizes (2048, 2560, etc.).
- Possibility of obtaining profiles from an external source such as a personal FTP via the "appsPerformancesProfilesCustomUrl" global variable. Ex: http://myDomain/myProfilesFile.txt.
- Separation of cloud profiles for Quest 1 and Quest 2.
- Refresh cloud profiles by pressing the Power button twice (screen off then on or standby mode). It's no longer automatic.
- Back in the home, the headset will use dynamic foveal rendering by default.
- Back in the home, the headset will use a dynamic CPU and GPU level by default.
- Debugging mode.
- Minor fixes and code optimization.
- NB: remember to remove or deactivate the old OQ_APP & OQ_APP_Reset macros.
1.1.0 [2021-11-28] (OQ_APP & OQ_APP_Reset)
- Graphics performance profiles automatically downloaded from the cloud. The list is updated regularly.
- The "appPerformancesProfiles" global variable is used to override the profiles coming from the cloud, if necessary.
- Profile detection notification.
- Profile application notification.
- Notification in case of error.
- Macros update notification.
- More permissive configuration settings.
1.0.1 [2021-11-16] (OQ_APP & OQ_APP_Reset)
- Removal of blanks at the start and end of configuration.
1.0.0 (OQ_APP & OQ_APP_Reset)
- Macro initialization.
Thanks
We would particularly like to thank the following people:
- Cédric Carvalho for his excellent work on the new logo for the app. He was able to meet our expectations and bring his personal touch. The result is a dynamic logo, a well-defined visual identity.
- Nova Lacertae (invaluable ally of the gamergen/vr team) for its dedication as a finder of profiles that will soon allow you to play with a long list of preconfigured games.
- Guilhem Esteve for his ideas brought to version v2.0.0 and his outside view as a developer.
- And Samuel Hédouin (developer and writer at gamergen/vr) for getting out of his mind and developing this great tool that allows us today to optimize our Meta Quest.
Profiles we currently offer for the Meta Quest 2 (01/14/2022)
- 2MD: VR Football Unleashed
- Acron: Attack Of The Squirrels
- Angrys Birds VR: Isle Of Pigs
- Audio Trip
- After the Fall (read the review (FR))
- All-In-One Sports VR
- ALTDEUS: Beyond Chronos
- Anne Frank
- Arcsmith (read the review (FR))
- Baba Yaga
- Bait !
- Beat Saber
- Blaston
- Bogo
- Bowman
- Cards & Tankards
- Carly And The Reaperman
- Clash Of Chefs
- Color Space
- Contractors
- Cook-Out
- Crashland
- Crisis VRigade 2
- Cubism
- Dance Central
- Deism
- Demeo (read the review (FR))
- Disc Ninja (read the review (FR))
- Down The Rabbit Hole
- Drop Dead Dual Strike
- Dreadhalls
- Electronauts
- Elixir
- Falcon Age
- First Contact
- First Step
- Fruit Ninja VR
- Gloomy Eyes
- Gorilla Tag
- Gorn
- Guns'n'Stories: Bulletproof
- Home After War
- Hyper Dash
- I Expect You To Die
- I Expect You To Die 2
- Job Simulator
- Journey Of The Gods
- Keep Talking And Nobody Explodes
- Kingspray Graffiti
- Layers Of Fear VR
- Learn Languages VR By Mondly
- Loco Dojo Unleashed
- Lucky's Tale (read the review (FR))
- Luna
- Merry Snowballs
- Mission: ISS
- Moss
- Ocean Rift
- Onward
- Painting VR
- Paranormal Activity: The Lost Soul
- Physics Playground
- Please Dont Touch Anything
- Poker Star VR
- Population: One
- Puzzling Places
- Racket Fury
- Real VR Fishing
- Republique VR
- Robo Recall
- Sam and Max: This Time It's Virtual!
- Shadow Point
- Shooty Fruity
- Smash Drums
- Solaris
- Space Folk City
- Sports Scramble
- Squingle
- Star Chart
- Star Shaman
- Stride (read the review (FR))
- Super Hot VR
- Swarm
- Sweet Surrender
- Synthriders
- Ragnarok (read the review (FR))
- Resident Evil 4 (read the review (FR))
- Rez Infinite
- Richie's Plank Experience
- Tetris Effect
- The Curious Tale Of Stolen Pets
- The Room VR
- The Thrill of the Fight
- The Under Presents
- Touring Karts
- Tribe XR | DJ in VR
- Until You Fall
- Vacation Simulator
- Walkabout Mini Golf
- Warplanes: WW1 Fighters
- Wolves
- Wraith: The Oblivion - Afterlife (read the review (FR))
- Yupitergrad
- Zooma
Let us know in the comments or on the networks if you find any new configurations or just if the ones we offer can be improved. We are counting on the community to grow this list.
Glossary
- MacroDroid
Android application available for smartphones, allowing you to program your Android device in the form of macros and to perform tasks automatically according to numerous rules and conditions (read the full tutorial (FR)).
- ADB
ADB is the basic tool for developers and all hackers who want to operate their Android device from a computer. It is part of the SDK (Android Software Development Kit). ADB stands for Android Debug Bridge. It is a bridge between the Android system and our computer, or more generally our Android device and another device. It allows developers (and others in the Android ecosystem) to communicate with their device through commands. Everything works on the client-server (or slave-master) model. adbd, the ADB daemon (background process) runs on the Android device and can receive commands from an ADB server, installed on a computer or other device, and thus execute them. In most cases, it is used through a USB connection. This is what happens when we plug the Meta Quest into our computer. The client (our headset), goes into debug mode and receives commands from the server (our computer and SideQuest), such as changing the resolution of textures via a Shell command.
- Plug-in ADB Shell
The ADB Shell plug-in is an extension that is grafted onto the MacroDroid application. It allows you to send ADB Shell commands to a remote Android device, either through a USB connection or over Wi-Fi. But it goes even further. It also allows the device to send commands to itself using the ADB protocol built into the Android system. But in order to do this, Wi-Fi debugging must be enabled.