Tech Note: VRC Validator
Oculus Developer Blog
|
Posted by Patrick Flautt
|
January 23, 2018
|
Share

When you're ready to submit your application, as a first step, your app must pass our technical review process.This initial step ensures that your app meets some fundamental qualifications. We've packaged those technical tests into the new VRC Validator that you can run yourself before you submit!

This easy-to-use and effective procedural tool can quickly identify issues that may result in your Rift application not meeting the Virtual Reality Check (VRC) Guidelines.

Using the VRC Validator as your Rift application nears completion is a great way to ensure that you are on the right path in regards to technical and performance-related requirements.

The VRC Validator can assist you in identifying and fixing:

  • Low frame rate in your application
  • Reserved interactions failures
  • Entitlement check functionality
  • Best practices in application design: does your application load quick enough, is it submitting frames properly, etc.

In addition to providing results based on the various technical tests, the VRC Validator provides guidance via relevant documentation and best practices to help you resolve any issues.

You can run all tests together or one test at a time based on which parts of your application you are concerned with. Each test should take between 10-30 seconds to complete. In the off chance the test does not complete in this time range, please re-run the test.

Below is a list of the most common tests that the VRC Validator can run on your application:

Default Tests (in the order they will be tested)

TestSdkVersion
Your app must use the correct versions of Oculus PC SDK, Unity, or Unreal Engine.

TestEntitlementCheck
Your app must perform an Oculus Platform entitlement check within 10 seconds.

TestOculusDLLIncludes
Your app must not distribute its own copies of Oculus DLLs.

TestLaunchIntoVR
Your app must launch into VR within 4 seconds and display a non-headlocked layer.

TestFrameRate
Your app must maintain 90 frames per second.

TestSubmitFramesWhenVisible
Your app must submit frames when visible.

TestSubmitFramesWhenNotVisible
Your app must stop submitting frames when the Universal Menu is open.

TestResponseToRecenterRequest
Your app must respond to requests to reset the view.

TestAppShouldQuit
Your app must quit gracefully.

CheckForExtraneousFiles
Your app must not contain DLLs from other platforms.

TestAudioOutput
Your app must target the audio device specified in the Oculus app.

Where is the VRC Validator located and how do I use it?

The VRC Validator is automatically installed with the Oculus Runtime. You will find it in the location shown below if you chose a standard installation with suggested directories for your runtime installation. The VRC Validator is located in the “Oculus\Support\oculus-diagnostics” folder.

Make sure that you can find the tool “OculusVRCValidator.exe” in your directory prior to running the tests. If the tool is not present, you should reinstall the latest version of the Oculus Runtime and the tool should be installed to this location.

Running the VRC Validator requires a command prompt window run with administrative privileges. Using the following commands will open the tool and provide you immediate access to any test you wish to run:

  1. Enter: cd "C:\Program Files\Oculus\Support\oculus-diagnostics\"
  2. Run OculusVRCValidator.exe with the --path parameter set to the executable file of your Rift app. For example:
    OculusVRCValidator --path "C:\Program Files\Oculus\Software\Software\oculus-first-contact\TouchNUX.exe"

You can now run any test from the above list of common tests in the following format. Using the command below will run the VRC Validator's 'TestLaunchIntoVR' test which checks whether or not your application starts within four seconds and displays a non-headlocked layer:

OculusVRCValidator> --path "C:\Program Files\Oculus\Software\Software\oculus-first-contact\TouchNUX.exe" --test TestLaunchIntoVR

OK, How does the VRC Validator show me what fails in my app and how to address it?

In the following sample project we will illustrate a failed entitlement check for a Rift application built with Unity 5.6.4p2, the current baseline Unity version Oculus supports at the time of this writing.

Proper entitlement check functionality is an important requirement for the Oculus Store. This check ensures that users who access your application have actually purchased or been granted use of your application legitimately.

We are using a sample scene based on the roll-a-ball tutorial/ with entitlement check deliberately disabled.

After we have built the Rift application from the sample project linked above, the next step is to test it for entitlement check functionality. This test checks for both the presence of entitlement checks and whether or not the application's ID is present in the code of the application itself.

The command prompt should look similar to this for proper setup and testing of your application (we are using “-l” at the end of the command so the tool prints a log file in the same directory as the tool) :

The VRC Validator has run the TestEntitlementCheck test and confirmed that entitlement check code is not present and that the Application ID is not valid or missing from the project:

We can see from the snippet of the test generated log file below that the VRC Validator has provided us with next steps in addressing this issue through relevant documentation:

Using the documentation link that the VRC Validator recommended in the log file, we locate the OculusPlatformSettings menu in our sample Unity project and enter the corresponding application ID provided in the developer dashboard and enter it in the field below:

Running the Unity application in the editor demonstrates that the entitlement check is now present and valid.

Re-running the VRC Validator entitlement check test also shows us that the application now passes the test:

VRC Validator Best Practices and Troubleshooting

When using the VRC Validator it is important to be aware of the following environmental variables that must be met for the tool to work correctly:

  • An HMD must be connected and configured prior to running the test or the tests will fail to run.
  • You must be logged into Oculus Home for any of the tests to run successfully and have an entitlement to the app being tested.
  • Each test should take between 10-30 seconds to complete. If any particular test takes longer than this, please restart the test---if the test still fails after three times, please contact developer support at https://developer.oculus.com/bugs/.
  • Make sure your graphics drivers are up-to-date and on the the latest version if possible.
  • For the full picture of what the VRC Validator is doing use the “- - verbose“ option to get the details from each test's progress.

For additional information about the VRC Validator, including detailed definitions of each test and advanced parameters to customize your tests, please check out our documentation on the tool here.

Troubleshooting common VRC Validator issues:

  • If you encounter, “ERROR: Transient internal error occurred” when running a test in the VRC Validator , this means that the OVR service has lost track of an event and the tool could not process the information due to bandwidth limitations encountered during the test. We recommend restarting the test(s) if you encounter this error.
  • If you encounter, “ERROR: Could not quit application gracefully in 20.000000 seconds, force quitting”, this is partially connected to the above error and is the result of the VRC Validator having sent a system signal to terminate the VR application and it has not responded by closing quickly enough. Re-running the test is recommended.

New Developer Sub-forum for Providing Developer Tool Feedback

If you have any questions or feedback about our developer tools please visit our developer tool feedback sub-forum on the Oculus Developer Forums. We would love to hear your feedback!