Command-Line Options

The NVIDIA CloudXR SDK sample applications and the CloudXR Server can use command-line options (also called launch options) to control certain runtime features. The available options are different for client and server and might have some options for specific clients.

  • For the CloudXR Server, create a text file called CloudXRServerOptions.txt on the server in the C:\Users\*user-name*\AppData\Local\NVIDIA\CloudXR\ folder.

    You can place the launch options in this folder. on one line, like a console command, or you can break the options into individual lines for legibility.

  • For Windows client applications, complete one of the following tasks:

    • Start the client app from a console with launch options appended on the command line or use a shortcut with pre-specified options,

    • If you are launching from Visual Studio, you can set options in the Command Arguments box in the debugging configuration.

  • For Android clients, you can launch in one of the following ways:

    • To run direct from Android Studio, click Run > Edit Configurations, for the active configuration, set the Launch Flags to something like the following:

      --es args "-s 192.168.1.1 -f 50"
      

      In the double quotes, list the launch options that you want to pass, as if it was a command line.

    • To start the client directly on the device from a launch tile, create a file called CloudXRLaunchOptions.txt.

      You can place the launch options in this file on one line like a console command, or you can break the options into individual lines for legibility. Place the file in the root sdcard directory of the device in Windows Explorer or by executing an ADB command:

      adb.exe push CloudXRLaunchOptions.txt /sdcard/
      
  • For an iOS client, there is currently no built-in support in the sample app to pass launch options via a file or by reading from command-line.

For many of the VR client sample applications, there is no connection user interface, so you need to use the -server <IP address> option to specify the server to which you want to connect.

The following tables provide a list of all command line options that are available for the client and server and extra options that were added for the Android ARCore sample. The options include the long format and abbreviated command strings for each option, prefixed with a dash (-) for command clarity, a notation when there is a numeric (N) or string (S) argument that is required, plus a brief description of each option and range of argument values.

Server Command-Line Options

Long Format Name

Abbreviation

Description

-log-verbose

-v

Enable more verbose logging.

-log-quiet

-q

Disable logging to file, use only debug output.

-trace-stream-events

-t

Enable tracing of streaming events as ‘ETL’ log. May have high runtime impact.

You might need to run the SteamVR process in admin mode so that certain traces can be captured.

-dump-images

-d

Dump streamed images to log folder periodically (currently every 300 frames).

-dump-audio

-da

Dump sent/received audio streams to CloudXR log folder.

-log-privacy-disable

-p

Disable privacy filtering in logging (allows full IP visibility).

-trace-local-events

-tle

Enable tracing of local events to xml file in log folder (see Local Event Traces (CloudXR Visual Profiler).

-embed-server-info

-esi

Embed server info in frames during streaming.

-log-max-days N

-lmd N

Maximum number of days until which logs persist.

Value range is from -1 to 365, where 1+ specifies the number of days age to prune (so the max age is one year), -1 resets to the system default (5d), and 0 sets to never prune log files.

-log-max-kb N

-lmk N

Maximum log size in kilobytes.

Value range is from -1 to 1024, where values 1+ specifies the KB size to cap (so the max file size is 1GB), -1 resets to system default (5MB), and 0 sets to uncapped.

-fast-scale

-fs

Use simple, lower-quality downscale filtering for frame foveation

-disable-send-audio

-dsa

Disable sending server audio to the client. Enabled by default.

-enable-receive-audio

-ra

Enable receiving audio from client (i.e., microphone capture). Disabled by default.

Client Command-Line Options

Long Format Name

Abbreviation

Description

-server IP

-s IP

IP address of the server to which the client will connect.

-log-verbose

-v

Enable more verbose logging.

-log-quiet

-q

Disable logging to file, use only debug output.

-trace-stream-events

-t

Enable tracing of streaming events as ‘ETL’ log. May have high runtime impact.

Note that you may need to run the SteamVR process in admin mode in order for certain traces to be captured.

-trace-local-events

-tle

Enable tracing of local events to xml file in log folder (see Local Event Traces (CloudXR Visual Profiler).

-trace-qos-stats

-tqs

Enable tracing of QoS statistics. Has high runtime impact.

-dump-images

-d

Dump streamed images to log folder periodically (currently every 300 frames).

-capture-client-bitstream

-ccb

Capture the client-received video bitstream to CloudXR log folder on client.

-capture-server-bitstream

-csb

Capture the server-sent video bitstream to CloudXR log folder on server.

-dump-audio

-da

Dump sent/received audio streams to CloudXR log folder.

-embed-server-info

-esi

Embed server information in frames during streaming.

-embed-client-info

-eci

Windows-only Embed client information in framebuffers.

-log-privacy-disable

-p

Disable privacy filtering in logging.

-enable-ir-decoder

-ird

Android-only Enable AImageReader decoder (needs SDK level 26)

-fallback-decoder

-fbd

If available, try to use a fallback video decoder for the platform.

-windowed

-w

Render to a standard window (instead of a fullscreen view for a headset).

-no-button-remap

-b

Do not remap various controller buttons to SteamVR system menu and other functions.

-max-res-factor N

-m N

Maximum stream resolution as factor of given device res (oversampling).

Value range is 0.5-2.0, default is 1.2 if not otherwise specified in client application code (which might want to explicitly set maxResFactor to 1.0 for no oversampling).

-latency-test

-l

Runs local latency testing, where screen is black when no input, changes to white with input. Helps to determine local presentation cost.

-enable-alpha

-a

Windows/Linux-only Enable alpha streaming and display (sets client deliveryType)

-enable-send-audio

-sa

Enable sending audio to the server (i.e., microphone capture). Disabled by default.

-disable-receive-audio

-dra

Disable receiving audio from the server (i.e., play server audio on client). Enabled by default.

-log-max-days N

-lmd N

Maximum number of days until which logs persist.

Value range is -1 to 365, where values 1+ specify days age to prune (so max age is one year), -1 resets to system default (5d), and 0 sets to never prune log files.

-log-max-kb N

-lmk N

Maximum log size in kilobytes.

Value range is -1 to 10242, where values 1+ specify KB size to cap (so max is 1GB file), -1 resets to system default (5MB), and 0 sets to uncapped.

-num-video-streams N

-ns N

In Generic streaming mode, this option specifies number of video streams opened from server to client and will depend upon a custom server application that sets up custom streams. Value range is 1-6.

-receiver-mode N

-r N

Choose XR or Generic receiver mode, values may be 0 or 1, where 0 means XR mode (fixed 2-stream), and 1 is generic mode (separate option -ns specifies stream count).

-graphics-type S

-g S

Choose graphics context type if need to override for some reason. Options are gles, cuda, or d3d11.

-user-data S

-u S

Send a user string to the server to exercise user data support.

-foveation N

-f N

Enable foveated scaling at given percentage scale.

Values from 25-100 as a percentage scale factor on original frame to destination post-foveated frame size. 0 to disable (or to override an options text file value from the command line). Defaults to 0.

We strongly recommend that you always enable for VR use. Suggested value is 50 percent, using -f 50 or explicitly preset in client code in foveatedScaleFactor)

-network-interface-client

-nic S

Choose the client network interface used to connect to the server. Options are ethernet, wifi5ghz, wifi24ghz, mobilelte, or mobile5g.

-network-topology

-nt S

Choose the network topology between the client and server. Options are lan or wan.

-requested-refresh-rate

-rrr N

Run the CloudXR Oculus Quest 2 client at the requested refresh rate. For example to run at 90Hz use -rrr 90. Note, when running at 90+Hz the AImageReader decoder will be used. Running CloudXR at values greater than 90Hz are untested and not guaranteed to work.

ARCore Client Command-Line Options

Long Format Name

Abbreviation

Description

-env-lighting N

-el N

Send client environment lighting data to server. Values are 0 or 1, 0 disables, 1 enables. Default is 1/enabled.

-res-factor N

-rf N

Scales down the client resolution sent to server to help manage encode/decode and bandwidth costs for high-res devices. Value range is 0.5-1.0, with a default of 0.75.