Jump to content

musk

Verified Members
  • Posts

    22
  • Joined

  • Last visited

Reputation

1 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Thanks for the quick reply, we'll work on the repro project and reach out to You soon.
  2. Hi, any progress with tackling these issues? We did some small tweaks/fixes/optimisations on our end, but those only helped in delaying the crashes, and nothing helped with the laggy tracking. Also, out of these two bugs, laggy tracking is a bit more problematic. When showing a demo to users, we can just restart the app every now and then to prevent it from crashing. But laggy tracking can happen randomly at any point, will make users sick, and it sometimes requires a full headset reboot to fix (as it's also present in the home area/lobby, not just in the app). Let me know if there's any more info we could provide to help with this.
  3. @Alex_HTC Hey, thanks again for looking into it. I tried all Your suggestions, but sadly non of them fixed the issues we're having 😕 Here's the results I got when trying each suggestion: 1) Decrease Render Scale: Changing it in the 'Wave XR Settings' did not change the render scale, but using 'XRSettings.eyeTextureResolutionScale' did. I managed to set it to as low as 0.1, but it didn't help. We're using built-in renderer, but I can try switching to URP as a test later. 2) Enable Adaptive Performance Mode: We're not using the WaveVR SDK, just the XR plugin, so I don't think this is available to change from code in this case. I can import and test the SDK later. There is an 'Adaptive Quality Mode' dropdown in 'Wave XR Settings' that was set to 'Performance Oriented Mode'. Not sure if that works though, since the 'ResolutionScale' slider didn't either. I'm attaching a screenshot of the 'Wave XR Settings' we're using, I also highlighted the RenderScale slider and the QualityMode dropdown I mentioned. 3) Encode with H264 and/or with lower bitrate: Bitrate doesn't seem to have any influence on this. I tried both very high values and very low values, and the issues are present either way. As for encoding in H264, I've already tried it before, but re-tested again. It creates some extra problems we could work around / deal with, but it still did not fix the main issues. In the Editor (on Windows), I get an error when trying to play the video: Resolution exceeds the Microsoft Media Foundation H264 decoder limit of 4096 x 2304 on Windows 8 and above. It plays fine on the Focus, with the exception of some playback slowdowns occasionally just after a seek, but other than that it works and looks the same as H265. 4) Stay within the boundary: Did all the tests within the boundary. 5) Call GC.Collect(): Added a call every time video is finished (to be more specific, after each playthrough / completing the video, we show the user some UI with results and let them retry - so it's a good spot to clear GC). 6) Audio codec: Audio used is AAC, stereo, 48.0 KHz, Variable bitrate (317 Kbps average, 430 Kbps max), format profile: LC As a test, I completely removed the audio stream from the file, as well as set the VideoPlayer in Unity to ignore audio (AudioOutputMode = None) And here's some clarifications and extra questions I have in regard to Your feedback: You mentioned increasing the buffer size for the video player - I don't see a way to do it though. Can you clarify? I can take a look at AVPro and see if it's possible to set buffer size there, but I've already tried using AVPro instead of Unity's VideoPlayer. Although it did seem to fix the main issues, it came with a bunch of other problems - bad performance, visual glitches and the colors were slightly off (we're showing a 180 video in the front, as well as a static 180 photo in the back to have a full 360 view, and mismatched colors completely brake the illusion). You warned against spamming the seeks - they only happen 2-3 times throughout a single playthrough. Basically, there's one big section (~30s) of the video when player can react (by pressing a button, basically) and then we seek to a corresponding reaction. Then there's one more short (~3s) time range when they can react again, and we may seek to either a completely different part of the video, or one just after that short time range. After that we show some UI with results and let users try again. So in worst-case scenario, two seeks might happen within a second or two of each other. The 40ms You mentioned is the time it took for the app to seek to a timestamp (in that particular case, it often takes a bit longer). We're trying to keep these very low, so that the video updates as fast as possible after user's reaction. You focused on this specific error: "Decoder will be in frame by frame mode" - from what I can see, it only appeared in one of the log files I attached, and never happened during my tests now. Not sure how relevant it is to these issues. And finally, to add a bit more info about the issues we're having: I think the crashes only happen while restarting the video - which means pausing/stopping it, seeking back to beginning, and then trying to play it again. I don't think it ever crashed while seeking somewhere during the video. While testing these problems initially, we noticed the crashes happen sooner when we use Stop() method instead of Pause() + seek to beginning. Calling the Prepare() method also seems to have some negative impact on this, but getting rid of it completely still didn't fix the issues. In general, the app works fine for the first couple playthroughs, then at some point it usually starts showing some minor video glitches. Finally, in the last couple playthroughs before the crash, it takes noticably longer for the video to start playing when user wants to retry. In the end, the headset freezes for a couple seconds and goes back to the lobby environment. The issue with laggy tracking on the other hand is pretty random. Sometimes I can manage to crash the app multiple times and it still doesn't show up, other times it can happen right after first playthrough, on a freshly rebooted headset.
  4. Thanks for the (quite lengthy!) response, I'll try these out as soon as possible.
  5. I've noticed there's a system update for the Focus today, version 5.0.999.676 - I installed it and re-tested the app, but no changes there. Can anyone from Vive please comment on the issues I posted above?
  6. I'm attaching some more logs, compressed into a zip because of file size limits: "log1" - straight logs from one person in QA who experienced the issues, and on restart it began occurring again for them on 2nd playthrough “log2” - logs from Headset filtered by Unity “log3” - doesn’t filter by Unity and includes outputs from android lvl logs Logs.zip
  7. Hi, we're developing an app for Vive Focus 3 which plays an interactive video - based on player actions we seek to different timestamps, and ultimately let users replay the video. However, we ran into following problems, only on the Focus 3 headset: after replaying the video several times, the app crashes (usually after ~15 replays) occasionally, headset's tracking becomes very laggy, and stays that way even after the app is closed or crashes it seems to happen randomly, and can happen at any point (shortly before app crash, or even during first video playback) seems to happen more often if user takes of the headset, waits for it to automatically 'go to sleep' after a few seconds, and puts it back on in order to fix it, the headset has to be rebooted Here's some of the things we tried/found out so far: tested the app on Oculus Quest 2 and Windows/PCVR - none of these issues appear there the problems seem to be related to the video playback - calling VideoPlayer methods like Stop() and Prepare() usually results in the app crashing sooner, than when we rewrote the game-logic to only use Pause() method no memory usage issues according to Unity Profiler - usage stays the same and there's plenty of free system memory doesn't seem to be related to thermals - waiting in the main menu for the headset to cool while the video is paused doesn't change anything once head-tracking becomes laggy, it sometimes helps to put the headset into standby mode (by clicking the power button in the rear part of the headset) and waking it up after a couple seconds And here's some more info about the project: built with the latest Unity LTS release (2021.3.14) and latest Vive Wave XR Plugin (5.0.3-r.5) using Unity's built-in VideoPlayer component to play the video (we also tried AVPro plugin - it fixes the crashing, but it causes visual glitches and is way worse performance in our case) video is 4096 x 8192 @ 29.97 frames/second, 180° sterescopic, 8 MBits bitrate, encoded with H.265 video is rendered into a RenderTexture with color format B10G11R11 (higher color depth options cause terrible performance) I'm also attaching logs from the app. com.ImmersionVR.Interactive360Experience-logcat.txt
  8. I'm trying to deploy my app to Beta on Viveport. I can build and run it on the device with no problems, but when I upload it to Viveport it fails and gives me a rather unhelpful error message: Deploying to Beta Failed Failed to deploy this build, please make sure the package name and android manifest are correct. Click “Edit” to make adjustments and submit again. For additional support, please contact us. Error code: -5 I can't see anything wrong with my manifest, here's what it looks like: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" xmlns:tools="http://schemas.android.com/tools"> <application android:icon="@drawable/app_icon" android:label="@string/app_name" android:theme="@style/Theme.WaveVR.Loading" android:resizeableActivity="false" tools:replace="android:theme"> <activity android:name="com.htc.vr.unity.WVRUnityVRActivity" android:label="@string/app_name" android:enableVrMode="@string/wvr_vr_mode_component" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:launchMode="singleTask" android:configChanges="orientation|keyboardHidden" android:screenOrientation="landscape"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <category android:name="com.htc.intent.category.VRAPP" /> </intent-filter> <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> <meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="true" /> </activity> <meta-data android:name="minWaveSDKVersion" android:value="1" /> <meta-data android:name="com.htc.vr.content.NumDoFHmd" android:value="6DoF"/> <meta-data android:name="com.htc.vr.content.NumDoFController" android:value="3DoF"/> <meta-data android:name="com.htc.vr.content.NumController" android:value="1"/> <meta-data android:name="no_controller_pairing" android:value="true" /> </application> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="com.htc.vr.core.server.VRDataWrite"/> <uses-permission android:name="com.htc.vr.core.server.VRDataRead"/> <uses-permission android:name="com.htc.vr.core.server.VRDataProvider" /> <uses-permission android:name="vive.wave.vr.oem.data.OEMDataRead" /> <uses-permission android:name="vive.wave.vr.oem.data.OEMDataWrite" /> <uses-permission android:name="com.viveport.CHECK_LICENSE" /> <uses-feature android:glEsVersion="0x00030000" /> <uses-sdk android:minSdkVersion="25" android:targetSdkVersion="26"/> </manifest> I'm using Unity 2019.2.19 and Wave SDK 3.1.4. I have another app that uses an older version of the Wave SDK and has identical manifest, except for targetSdkVersion, which in that case is 25. I tried changing to 25 in this app as well, but the build fails and WaveSDK dialog complains that the recommended setting is 26. I attached a screenshot from Unity's console when trying to build with target=25. @JustinVive @Cotta @Tony PH Lin @Albert H. @Corvus
  9. In my experience, the only way I ever got it working was by deleting the old version, and then importing the new one. I don't know about the newest WaveSDK version though, I'm currently on 3.0.2. I did succesfully update this way to 3.1.1 (Beta), but then I couldn't build the application anymore, and some of WaveSDK components were overriding some of my own in the editor, like camera movement. This SDK was always a giant headache and source of problems in projects I worked on.
  10. I don't know if you're using Unity, but if so, then maybe what you want is the OnApplicationFocus(bool focus) callback? I use it in my game and it works for detecting when user leaves the application (goes to Home, Library, Settings etc), but I haven't tested if it detects when user takes the headset off.
  11. I don't think the error "[EGL] Unable to acquire context (...)" has anything to do with this issue, because I always get a whole bunch of them when a scene is loaded. It's super annoying because I have an in-game debug display and it gets spammed with these errors making it hard to see any useful ogs at the beginning of the game. I've been using Wave SDK 3.0.2 and various versions of Unity, currently 2018.4.5. However I also tested my game on Unity 2019.1.X a couple times and didn't have any issues, though I had to make a small tweak to BuildCheck script to make it work at all... In case it helps anyone, the tweak was to add Application.unityVersion.StartsWith("2019.") to this if statement: if (Application.unityVersion.StartsWith("2017.") || Application.unityVersion.StartsWith("2018.")) @Cotta @Tony PH Lin
  12. @Cory_HTC So when can we expect the Focus to work natively in Unity without the Wave SDK?
  13. I'm still getting 2.2KB of garbage generated every frame by the RenderLoop coroutine (using WaveSDK 3.0.2) when testing on the headset. It is the only source of garbage collection at runtime in my project, and it causes dropped frames every couple seconds, so it's very important to fix this. What's your ETA on this fix?
×
×
  • Create New...