### Example UECommandLine.txt Configuration Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ts-unreal-insights-ue5 A concrete example of the UECommandLine.txt content for a specific project setup. ```text ../../../QuestUE5Demo/QuestUE5Demo.uproject /Game/Maps/VRTemplateMap -trace=log,counters,cpu,frame,bookmark,file,loadtime,gpu,rhicommands,rendercommands,object -statnamedevents -tracehost=127.0.0.1 -tracefile=/sdcard/UnrealGame/QuestUE5Demo/MostRecentTraceCapture.utrace ``` -------------------------------- ### Start GPU Render Stage Trace via Command Line Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ts-gpusystrace Use this command to initiate a GPU render stage trace for a specified application. Ensure you are in the correct directory and have Python 2.7 installed. ```bash python2 systrace.py --app="" app renderstage ``` -------------------------------- ### Install Application APK Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ts-adb Install an APK file onto the connected device. Use the '-r' option to overwrite an existing installation. ```bash adb install ``` ```bash adb install C:\\Dev\\Android\\MyProject\\VrApp.apk ``` ```bash adb install ~//Dev//Android//MyProject//VrApp.apk ``` ```bash adb install -r ``` -------------------------------- ### Install Pixi and PyVRS Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/xrsim-unreal-automated-testing-1.0 Installs Pixi, a task runner and package manager, and then installs PyVRS using Pixi. ```powershell # Install pixi (details can be found: https://pixi.sh/latest/#__tabbed_1_2) iwr -useb https://pixi.sh/install.ps1 | iex pixi run install_pyvrs ``` -------------------------------- ### Example Integration: Setting Enqueue-Time Data Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-matchmaking-skill-queries Native C++ example demonstrating how to enqueue a user with specific data settings for matchmaking. It includes setting integer, string, and bitmask data. ```cpp MatchmakingOptionsHandle matchmakingOptionsHandle = MatchmakingOptions_Create(); MatchmakingOptions_SetEnqueueDataSettingsInt(matchmakingOptionsHandle, "player_level", 10); MatchmakingOptions_SetEnqueueDataSettingsString(matchmakingOptionsHandle, "game_mode", "CaptureTheFlag"); MatchmakingOptions_SetEnqueueDataSettingsInt(matchmakingOptionsHandle, "map_size", 0x4); // Example: large map size MatchmakingOptions_SetEnqueueQueryKey(matchmakingOptionsHandle, "my_query"); // Enqueue the user with these options // ... Enqueue2(..., matchmakingOptionsHandle, ...); MatchmakingOptions_Destroy(matchmakingOptionsHandle); ``` -------------------------------- ### Unreal Engine Launch Command Line Example for VR Template Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ts-unreal-insights An example command line for launching a specific Unreal Engine project ('QuestUnrealDemo') using the VR Template, targeting the 'MotionControllerMap' with detailed tracing enabled. ```bash QuestUnrealDemo.uproject /Game/Maps/MotionControllerMap -trace=log,counters,cpu,frame,bookmark,file,loadtime,gpu,rhicommands,rendercommands,object -statnamedevents -tracehost=127.0.0.1 -tracefile=/sdcard/UE4Game/MostRecentTraceCapture.utrace ``` -------------------------------- ### Start Colocation Session Advertisement (C++) Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/unreal-colocation-discovery Starts advertising a colocation session with optional metadata. Use this when you want to host a session that others can discover. The metadata is limited to 1024 bytes. ```cpp TSharedPtr StartSessionAdvertisementAsync( const TArray& Metadata, FStartSessionAdvertisementRequest::FCompleteDelegate InCompletionDelegate ); ``` -------------------------------- ### Example Integration Setting Enqueue-Time Data Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-matchmaking-skill-queries Provides a native C++ example of enqueuing a user with specific data settings for matchmaking. ```APIDOC ## Example Integration Setting Enqueue-Time Data ### Description This example demonstrates how to enqueue a user with specific data settings for matchmaking, using the previously defined data like `player_level`, `game_mode`, and `map_size`. ### Code Example (Native C++) ```cpp // Assume MatchmakingOptionsHandle handle is already created and populated // Example: Setting player_level to 10 MatchmakingOptions_SetEnqueueDataSettingsInt(handle, "player_level", 10); // Example: Setting game_mode to "CaptureTheFlag" MatchmakingOptions_SetEnqueueDataSettingsString(handle, "game_mode", "CaptureTheFlag"); // Example: Setting map_size to large (assuming 0x4 represents large map size) MatchmakingOptions_SetEnqueueDataSettingsInt(handle, "map_size", 0x4); // Example: Specifying a query key MatchmakingOptions_SetEnqueueQueryKey(handle, "my_query"); // ... enqueue the user using the populated handle ... ``` ``` -------------------------------- ### Install and Launch Android App Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ts-scriptable-testing Installs an APK to the device and then launches a specific activity within that app. Requires the APK path, package name, and activity name. ```python def installAndStartApp(apkPath, packageName, activityName, deviceId=None): __runAdbCommand(f"install {apkPath}", deviceId) __runAdbShell(f"am start -S {packageName}/{activityName}", deviceId) ``` -------------------------------- ### Install APK with Expansion Files Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-assets Commands to push an APK to a device, install it with granted permissions, and then clean up the temporary APK file. This is part of the local testing workflow for expansion files. ```bash adb push -p bundles.apk /data/local/tmp // Pushes the APK file to the device's temporary storage directory. adb shell pm install -g /data/local/tmp/bundles.apk // Installs the APK file on the device, granting all runtime permissions requested by the app. adb shell rm /data/local/tmp/bundles.apk // Removes the APK file from the device's temporary storage directory after installation. ``` -------------------------------- ### Install and Execute Test APK Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ts-scriptable-testing Install your application's APK and execute your test activity using ADB commands. This is a common step in automated testing workflows. ```bash > adb install /path/to/my_app.apk > adb shell am start -S com.my.app.packagename/.MainTestActivity ``` -------------------------------- ### Compositor Layer Log Output Example Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/os-compositor-layers Example output from `adb logcat -s CompositorClient` showing details of a single compositor layer. ```text LogLayers: Client 12 (com.Sample.UnityAppSpaceWarp:11432) Layer 0: Type QUAD Flags CLIP_TO_TEXTURE_RECT DIRECT_PROJECTION VIEW_FRUSTUM_CULLING Quad translation (0.4137005, -0.091204815, -0.9783828) Quad rotation (-0.997699, -9.291795e-10, 0.06780008, -6.314374e-11) Quad anchor translation (0, 0, 0) Quad anchor rotation (1, 0, 0, 0) Quad anchor id 0 version 0 Quad size (0.4, 0.40000007) Corners not rounded Corner Rect size (0, 0) Corner Rect offset (0, 0) ApertureId 134bc4800000000c Placement 80 ColorScale (1, 1, 1, 1) ColorOffset (0, 0, 0, 0) Src Blend Color BLEND_SRC_ALPHA Dst Blend Color BLEND_ONE_MINUS_SRC_ALPHA Src Blend Alpha BLEND_SRC_ALPHA Dst Blend Alpha BLEND_ONE_MINUS_SRC_ALPHA SwapChain[0] : TEXTURE2D : 333 : image 0x7024a248f8 (500 x 500) array index 0 TextureRect[0] : (0.002, 0.002, 0.996, 0.996) ``` -------------------------------- ### Start a match (matchmaking with skill only) Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-matchmaking-api `ovr_Matchmaking_StartMatch()` signals that the match has started, to be called when players have been successfully matched and the match is beginning. ```APIDOC ## Start a match (matchmaking with skill only) ### Description Signals that the match has started. Call this method when your app has successfully matched players and the match is beginning. ### Method `ovr_Matchmaking_StartMatch()` ``` -------------------------------- ### Retrieve Leaderboard Entries (HTTP GET) Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-leaderboards-s2s Example HTTP GET request to retrieve leaderboard entries, including user details, rank, score, and timestamp. Authentication requirements depend on the 'start_at' and 'filter' parameters. ```http GET /leaderboard_entries/?api_name=best_leaderboard&fields=user{id, alias, profile_url}, rank, score, timestamp, extra_data_base64&filter=NONE&start_at=OFFSET&offset=10&summary=true&limit=2 Host: graph.oculus.com Authorization: Bearer OC|1234757621998335|1234f7a788b0c0b270f9691d0a06d5a5 ``` -------------------------------- ### Retrieve Leaderboard Data Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-leaderboards-s2s Example HTTP GET request to retrieve data about leaderboards in an application, such as sort order and entry count. Requires authentication with an app token. ```http GET /12347576219/leaderboards/?api_name=best_leaderboard &fields=sort_order,entry_write_policy,entry_count Host: graph.oculus.com Authorization: Bearer OC|1234757621998335|1234f7a788b0c0b270f9691d0a06d5a5 ``` -------------------------------- ### Display ADB Help Information Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ts-adb Run this command to see a list of available ADB commands and options. ```bash adb help ``` -------------------------------- ### Get Launch Details Blueprint Example Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-deep-linking This blueprint node retrieves information about how an Unreal application was launched, specifically handling the FOvrNotification_ApplicationLifecycle_LaunchIntentChanged notification to process deep link data. ```blueprint Application Lifecycle Get Launch Details ``` -------------------------------- ### Unreal Engine Launch Command Line Example Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ts-unreal-insights An example of a command line used to launch an Unreal Engine project with specific tracing and analysis flags enabled. This includes project details, map name, trace channels, and host/file configurations. ```bash ../../..//.uproject /Game/Maps/ -trace=log,counters,cpu,frame,bookmark,file,loadtime,gpu,rhicommands,rendercommands,object -statnamedevents -tracehost=127.0.0.1 -tracefile=/sdcard/UE4Game/MostRecentTraceCapture.utrace ``` -------------------------------- ### Request Permissions in GameMode BeginPlay Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/unreal-movement-sample In your GameMode's BeginPlay event, call the RequestPermissions method on the AC_AndroidPermissions component to request necessary permissions. Refer to BP_MovementSampleGameMode for an example setup. ```blueprint During your GameMode BeginPlay, you should request the relevant permissions, by calling the RequestPermissions method on the component. ``` -------------------------------- ### Get Challenge Details Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-challenges-s2s Retrieves detailed information about a specific challenge, including its ID, title, description, start and end dates, and leaderboard status. This endpoint is useful for displaying challenge information to users. ```APIDOC ## GET /{$challenge_id} ### Description Retrieves details for a specific challenge. ### Method GET ### Endpoint https://graph.oculus.com/{challenge_id} ### Parameters #### Query Parameters - **access_token** (string) - Required - The access token for authentication. - **fields** (string) - Optional - A comma-separated list of fields to retrieve. Possible values: `id`, `title`, `description`, `start_date`, `end_date`, `leaderboard`, `creation_type`, `visibility`, `entries`, `invited_users`, `participants`. ### Request Example ``` curl -G https://graph.oculus.com/$CHALLENGE_ID -d "access_token=OC|$APP_ID|$APP_SECRET" -d "fields=id,title,description,start_date,end_date,leaderboard" ``` ### Response #### Success Response (200) - **id** (string) - The unique identifier of the challenge. - **title** (string) - The title of the challenge. - **description** (string) - A description of the challenge. - **start_date** (string) - The start date of the challenge. - **end_date** (string) - The end date of the challenge. - **leaderboard** (object) - Information about the challenge's leaderboard. #### Response Example ```json { "title": "sample_challenge", "description": "Let's see who can climb the highest!", "id" : "2643098232993236", "leaderboard": { "id": "7410520479067243" } } ``` ``` -------------------------------- ### Upload PC-VR Binary with Asset Files Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-assets Use the `upload-rift-build` command with `--assets_dir` and `--asset_files_config` to upload a binary with accompanying asset files. Ensure asset files match previously uploaded versions. ```bash $ ovr-platform-util upload-rift-build -a 12345 -s 1234 -d path/to/mygame.zip --assets_dir /path/to/myGame/assets --asset_files_config /path/to/config-file.json -c ALPHA ``` -------------------------------- ### Launch Rejoin Dialog C++ SDK Example Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-rejoin This C++ example demonstrates invoking the Rejoin functionality using the delegate-based API from the Meta XR Platform SDK. The response indicates whether the user chose to rejoin the session. ```cpp #include "OVRPlatformCppRequests.h" OvrPlatform_GroupPresence_LaunchRejoinDialog( GameInstance, FString(TEXT("123")), FString(TEXT("456")), FString(TEXT("my_destination_name")), OvrPlatform_GroupPresence_LaunchRejoinDialog_Delegate::CreateLambda( [](bool bIsError, FOvrRejoinDialogResultPtr Response, FString ErrorMsg) { if (bIsError) { // Handle error } else if (Response.IsValid()) { bool bRejoinSelected = Response->RejoinSelected; // Handle the user's rejoin decision } })); ``` -------------------------------- ### Setup Device for Test Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ts-scriptable-testing Configures the device for testing by logging in a test user and connecting to Wi-Fi. This method also disables guardian and dialogs. ```bash > adb shell content call --uri content://com.oculus.rc --method SETUP_FOR_TEST \ --extra 'WIFI_SSID:s:my_wifi_ssid' \ --extra 'WIFI_PWD:s:my_wifi_password' \ --extra 'WIFI_AUTH:s:WPA' \ --extra 'EMAIL:s:my_test_user@tfbnw.net' \ --extra 'PWD:s:my_test_user_password' ``` -------------------------------- ### Launching Another App with FOvrApplicationOptions in C++ Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-app-to-app-travel Example of setting up and launching another application using `FOvrApplicationOptions` in C++. This is used for initiating App to App Travel. ```cpp FOvrId AppID = 123454321; FOvrApplicationOptions Options; Options.DeeplinkMessage = TEXT("a_message"); Options.DestinationApiName = TEXT("example_destination"); Options.LobbySessionId = TEXT("1234"); Options.MatchSessionId = TEXT("5678"); Options.RoomId = 1474275639758625; OvrPlatform_Application_LaunchOtherApp(GetGameInstance(), AppID, Options, OvrPlatform_Application_LaunchOtherApp_Delegate::CreateLambda( [](bool bIsError, FStringPtr StringPayload, FString ErrorMsg) { // Handle result })); ``` -------------------------------- ### Clear Buffer and Start Filtered Logging Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ts-logcat Combines clearing the Logcat buffer with starting a filtered log session. This ensures that only logs matching the specified tag, starting from the moment the command is entered, are displayed. ```bash adb logcat -c; adb logcat -s XrPerformanceManager ``` -------------------------------- ### Example Achievement Definition Response Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-achievements This is an example of a successful response when creating or updating an achievement definition. ```json {"id":"1074233745960170"} ``` -------------------------------- ### Start Matchmaking (C++) Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-oss-sessions Call this C++ function to enqueue the user in the Matchmaking service. Pass the key for the matchmaking pool you created. ```cpp StartMatchmaking() ``` -------------------------------- ### VrApi Stats Example Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/os-compositor-layers Example segment of VrApi stats output relevant to compositor layer profiling. ```text TW=2.80ms,App=1.11ms,GD=0.23ms,CPU&GPU=6.41ms,LCnt=5(DR14,LM2) ``` -------------------------------- ### Example ndk-stack Usage Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ts-logcat Outputs a more detailed stack trace to stack.log, using the symbol path for an arm64-v8a build and the backtrace from crash.log. ```bash ndk-stack -sym /symbols/arm64-v8a -dump crash.log > stack.log ``` -------------------------------- ### Try Get Closest Surface Position Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/unreal-mr-utility-kit-features Gets the position on the nearest surface that is closest to the given position. ```C++ TryGetClosestSurfacePosition() ``` -------------------------------- ### Execute Test Comparison and Installation Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/xrsim-unreal-automated-testing-1.0 Runs the Pixi tasks to install Python dependencies and execute the test comparison script. ```powershell pixi run pip_install pixi run run_test ``` -------------------------------- ### Create and Navigate to Plugins Directory Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/vsdk-integrate-voice Use these commands in PowerShell to create a 'Plugins' directory and navigate into it if it doesn't already exist. ```powershell mkdir Plugins cd Plugins ``` -------------------------------- ### Install APK via ADB Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/unreal-scene-mesh Use this command to install the compiled APK onto your Meta Quest device via ADB. ```bash adb install /path/to/app.apk ``` -------------------------------- ### Start Match Signaling (Skill-Based) Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-matchmaking-api Signals that a match has officially started. Call this method once players have been successfully matched and the game is commencing. ```cpp ovr_Matchmaking_StartMatch() ``` -------------------------------- ### Custom Perfetto TraceConfig Example Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ts-perfettoguide Example of a custom Perfetto TraceConfig in JSON format. This is used when the Perfetto Settings Preference is set to Custom. ```json { "duration_ms": 10000, "write_into_file": true, "buffer_size_kb": 131072, "file_write_period_ms": 500, "trace_categories": [ "gfx", "view", "input", "hal", "ipc", "view", "app", "sched", "freq", "dal", "res", "sync", "audio", "video", "camera", "window", "activity", "power", "pmem", "disk", "load", "stats", "db", "res", "renderthread", "renderdoc", "vulkan", "gpu_freq", "gpu_mem", "gpu_renderstages", "gpu_active", "gpu_context" ], "track_event_config": { "track_event_whitelist": [ "LODManager.Update" ] } } ``` -------------------------------- ### Setting Matchmaking Options and Enqueuing Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-matchmaking-skill-queries This snippet demonstrates how to create matchmaking options, set integer and string data settings, specify a query key, and enqueue a player into a matchmaking pool. It also shows how to destroy the options object when finished. ```cpp ovrMatchmakingOptionsHandle matchmakingOptions = ovr_MatchmakingOptions_Create(); ovr_MatchmakingOptions_SetEnqueueDataSettingsInt(matchmakingOptions, "player_level", 10); ovr_MatchmakingOptions_SetEnqueueDataSettingsString(matchmakingOptions, "game_mode", "CaptureTheFlag"); // I want large map size ovr_MatchmakingOptions_SetEnqueueDataSettingsInt(matchmakingOptions, "map_size", 0x4); // Specify which Matchmaking Query to use with the Data Settings we provided ovr_MatchmakingOptions_SetEnqueueDataSettingsInt(matchmakingOptions, "my_query"); ovr_Matchmaking_Enqueue2("my_pool", matchmakingOptions); // Destroy the matchmaking options now that we are done with it ovr_MatchmakingOptions_Destroy(matchmakingOptions); ``` -------------------------------- ### Save Spatial Anchors C++ Example Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/unreal-spatial-anchors-features Example of how to call the SaveAnchors function in C++ and bind to its result callback. The callback handles post-save logic. ```cpp EOculusXRAnchorResult::Type SaveAnchors(const TArray& Components) { EOculusXRAnchorResult::Type OutResult; // Detailed immediate (non-async) result code OculusXRAnchors::FOculusXRAnchors::SaveAnchors( Components, FOculusXRSaveAnchorsDelegate::CreateLambda([]( EOculusXRAnchorResult::Type Result, const TArray& SavedAnchors) { // Post save anchors logic here }), OutResult ); return OutResult; } ``` -------------------------------- ### Set Up Oculus Spatializer Plugin on Windows Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/audio-osp-fmod-overview Copy the OculusSpatializerFMOD.dll and associated .js and .PNG files to the FMOD Studio plugins directory on Windows. ```bash 1. Navigate to the Oculus Spatializer folder `AudioSDK\Plugins\FMOD\x64`. 2. Find and copy the 64-bit version of `OculusSpatializerFMOD.dll` to the plugins folder under the FMOD installation location, typically `Program Files\FMOD SoundSystem\FMOD Studio (VERSION)\plugins`. 3. Navigate to `\ovr_audio_spatializer_fmod_(VERSION)\FMOD\Studio`. 4. Find and copy the .js and PNG files to the plugins folder under the FMOD installation location, typically `Program Files\FMOD SoundSystem\FMOD Studio (VERSION)\plugins`. ``` -------------------------------- ### Example Attestation Token with Device Ban Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-attestation-api An example of an attestation token that includes device ban information, indicating if a device is banned and the remaining ban time. ```json { "request_details": { "exp": 1684606153, "nonce": "JMxMPp1H6kCxGzPRsjKFLw==", "timestamp": 1684519753 }, "app_state": { "app_integrity_state": "StoreRecognized", "package_cert_sha256_digest": [ "c8a2e9bccf597c2fb6dc66bee293fc13f2fc47ec77bc6b2b0d52c11f51192ab8" ], "package_id": "com.example.name123", "version": "1" }, "device_state": { "device_integrity_state": "Advanced", "unique_id": "442ab6392117e89759e8872852de0495aa58f22bd8a1253123123" }, "device_ban": "is_banned": true, "remaining_ban_time": 48960 } } ``` -------------------------------- ### Create Matchmaking Session (C++) Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-oss-sessions Call this C++ function to create a session and enqueue it in the Matchmaking service. Set bShouldAdvertise to true. To remove the room, call UpdateSession with bShouldAdvertise set to false. ```cpp CreateSession(NewSessionSettings.Settings, NewSessionSettings.bShouldAdvertise) UpdateSession(UpdatedSessionSettings.bShouldAdvertise) ``` -------------------------------- ### Setup Device for Test Function Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ts-scriptable-testing This Python function prepares a connected device for testing. It factory resets the device, connects to a specified Wi-Fi network, and logs in a test user. It requires test user credentials, Wi-Fi credentials, and optionally a device ID. The function uses ADB shell commands to interact with the device. ```python def setupDeviceForTest( testUserEmail, testUserPassword, testUserPin, wifiSSID, wifiPassword, deviceId=None, ): # Factory reset the device to get a clean test environment. This is a requirement # of the subsequent SETUP_FOR_TEST call. WIPE_DEVICE will reset the device but also # preserve ADB access after the subsequent reboot. result = __runAdbShell( f"content call --uri content://com.oculus.rc --method WIPE_DEVICE " f"--extra 'PIN:s:{testUserPin}'", deviceId, ) if result.returncode == 0 and "Success=true" in result.stdout: __runAdbCommand("wait-for-disconnect", deviceId) __waitForDeviceBootCompleted(40, deviceId) else: print( f"WIPE_DEVICE call failed: returncode={result.returncode}; {result.stdout}; {result.stderr};" ) return -1 # Connect to wifi and log in the test user. result = __runAdbShell( f"content call --uri content://com.oculus.rc --method SETUP_FOR_TEST " f"--extra 'WIFI_SSID:s:{wifiSSID}' --extra 'WIFI_PWD:s:{wifiPassword}' --extra 'WIFI_AUTH:s:WPA' " f"--extra 'EMAIL:s:{testUserEmail}' --extra 'PWD:s:{testUserPassword}'", deviceId, ) if result.returncode == 0 and "Success=true" in result.stdout: __runAdbCommand("wait-for-disconnect", deviceId) __waitForDeviceBootCompleted(40, deviceId) __waitForDumpSys("Horizon logged in: true", 25, deviceId) else: print( f"SETUP_FOR_TEST call failed: returncode={result.returncode}; {result.stdout}; {result.stderr};" ) return -1 ``` -------------------------------- ### Upload Quest Build with Expansion and Asset Files Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ps-assets Use this command to upload a Quest build, including an OBB file and additional asset files. Ensure asset and expansion files match previous uploads if updating. ```bash ovr-platform-util upload-quest-build -a 12345 // Specifies the app ID for the app you want to upload the build to -s 1234 // Specifies the app secret for the app you want to upload the build to. -d path/to/mygame.zip // Specifies the path to the APK file for the Quest build. --obb path/to/myGame.obb // Specifies the path to the OBB file for the Quest build. --assets_dir /path/to/myGame/assets // Specifies the directory containing additional asset files for the Quest build. --asset_files_config /path/to-config-file.json // Specifies the path to a JSON configuration file that lists the required asset files and their metadata. -c ALPHA // Specifies the release channel for the build (in this case, "ALPHA"). ``` -------------------------------- ### Example Per-Draw Trace Output Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/ts-ovrgpuprofiler This is an example of the output generated when performing a per-draw trace. It shows frame and draw numbers, LRZ state, and requested metric values. ```text Tracing for 3.0 seconds... Process com.YourApp has 30 commandbuffers Frame 1 : Draw 1 Label 0xffffffff LRZ State: TestEnabled, WriteEnabled <0x03> Clocks : 58912.000 % Vertex Fetch Stall : 0.061 % Shaders Busy : 39.907 Fragments Shaded : 3.203 Frame 1 : Draw 2 Label 0xffffffff LRZ State: TestEnabled, WriteEnabled <0x03> Clocks : 44008.000 % Vertex Fetch Stall : 0.000 ... ``` -------------------------------- ### Install OculusSpatializerWwise.dll for x86 Source: https://developers.meta.com/horizon/llmstxt/documentation/unreal/audio-osp-wwise-unity-install Copy the OculusSpatializerWwise.dll file to the specified x86 DSP folder for the x86 target platform. ```bash cp "Oculus Spatializer Wwise download package folder\Win32\bin\plugins\OculusSpatializerWwise.dll" "{Unity Project}\Assets\Wwise\Deployment\Plugins\Windows\x86\DSP\" ```