Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice
  2. Ever participated in one our Game Jams? Want pointers on your project? Our Evangelists will be available on Friday to give feedback. Come share your games with us!
    Dismiss Notice

Bug Video Player Stutters

Discussion in '2019.3 Beta' started by NamelessPerson, Aug 14, 2019.

  1. NamelessPerson

    NamelessPerson

    Joined:
    Apr 17, 2017
    Posts:
    26
  2. Charles_Beauchemin

    Charles_Beauchemin

    Unity Technologies

    Joined:
    Jan 18, 2017
    Posts:
    404
    What platform are you trying it on?
    Did it work in previous versions of Unity?
    How many mp4 videos are you playing?

    Please open a bug with the minimal project to reproduce this issue and our video team will be able to assist you.
     
  3. DominiqueLrx

    DominiqueLrx

    Unity Technologies

    Joined:
    Dec 14, 2016
    Posts:
    184
    Hi!

    Can you give us a bit more info? We'd need to know the platform and a more detailed description about the stuttering (skips one frame at a precise point, or constantly jittering, etc). If it's hard to describe, then maybe a screen recording of the problem while happening could be helpful. There are many reasons for stuttering, depending on system specs, video content and so on, so it's hard to say if this problem is the same as the other one you're pointing out.

    If you could submit a bug, this would be helpful: our QAs we'll be able to bisect when the problem started happening.

    Thanks for reporting this, hope we can address the problem quickly!

    Dominique
    A/V developer at Unity
     
  4. NamelessPerson

    NamelessPerson

    Joined:
    Apr 17, 2017
    Posts:
    26
    Was using in editor on Windows 10 Version 10.0.17134 Build 17134. It is a constant jitter where it appears to repeatedly hop back frames before progressing. I.e. the frame order looks something along the line of 1 -> 2 -> 1 -> 4-> 3 -> 6-> 5-> 8. This issue does not occur in 2019.1.12, 2019.1.7, 2019.1.1, or 2018.4.0 (these are all previous versions the application was developed in).

    Only one mp4 is played at a time but they are dynamically loaded from the system and swapped between.

    This is a very large project so it would be very difficult to create a minimal project version. I will look into creating a bug report when I have the chance.

    Hope this information helps.
     
  5. AlkisFortuneFish

    AlkisFortuneFish

    Joined:
    Apr 26, 2013
    Posts:
    779
    Does it do it on a build? It's normal for game updates (including the video player) to stutter in the editor, because of the editor itself redrawing, which is not a fast operation.
     
  6. NamelessPerson

    NamelessPerson

    Joined:
    Apr 17, 2017
    Posts:
    26
    I did not attempt a build. Currently I have a separate issue where if I try to open the alpha version it states I do not have a valid license. I believe this is because I am behind a proxy and Unity Hub gets blocked from trying to reach the server but it is weird since it does not happen with other versions. Once I am off the work network proxy I will attempt a build to test further.
     
  7. AlkisFortuneFish

    AlkisFortuneFish

    Joined:
    Apr 26, 2013
    Posts:
    779
    There’s a thread about that, you gotta delete ProgramData/Unity/Unity_lic.ulf

    https://forum.unity.com/threads/unity-2019-3-0a12-does-not-start.728009/#post-4859693
     
  8. NamelessPerson

    NamelessPerson

    Joined:
    Apr 17, 2017
    Posts:
    26
    Made a build and issue persisted. However upon testing with a video clip asset rather than a url loaded from the local machine storage the problem doesn't appear. Will attempt some more testing.

    EDIT: Stuttering is still happening on a video clip asset. The stuttering only disappears in a single scenario when I change render targets and video clip during play.

    On a separate note: had to remove Polybrush as it was causing build errors for 'ArrayUtility' not existing in current context.
     
    Last edited: Aug 19, 2019
  9. AlkisFortuneFish

    AlkisFortuneFish

    Joined:
    Apr 26, 2013
    Posts:
    779
    Interesting, that means that an editor script sneaked into player code. ArrayUtility is in one of the UnityEditor assemblies.
     
  10. SallyAnn

    SallyAnn

    Joined:
    Jun 5, 2019
    Posts:
    7
    I have this problem too and it's urgent. I am trying to play one mp4 on a render texture in my unity scene and it skips many frames, what can I do? Using Macbook pro. The audio is fine but the video is skipping most of the detail in the animation.
     
  11. mcmount

    mcmount

    Joined:
    Nov 15, 2015
    Posts:
    58
    Unity 2019.2.17f1, Win10 64bit, same problem, the video player plays-freezes-jumps, like it was doing constant buffering. 'Skip on drop' or 'wait for first frame' doesn't make any difference. This didn't happen with the same project and Unity 2017. Playing mp4 files without audio.
     
  12. AAK_Lebanon

    AAK_Lebanon

    Joined:
    May 30, 2015
    Posts:
    69
    I have exactly the same problem with Unity 2019.3.0f6 (I don't have this problem on Unity 2019.2.14f1)
     
  13. mcmount

    mcmount

    Joined:
    Nov 15, 2015
    Posts:
    58
    select your videofile, there is new internal compress for it, after that it's ok.
     
    JPressley99 and AAK_Lebanon like this.
  14. AAK_Lebanon

    AAK_Lebanon

    Joined:
    May 30, 2015
    Posts:
    69
    I choose the VP8 codec and it worked!, however, it is still annoying to compress everything just because I am on a new version of unity ...
     
  15. DominiqueLrx

    DominiqueLrx

    Unity Technologies

    Joined:
    Dec 14, 2016
    Posts:
    184
    Hi AAK_Lebanon!

    Can you share the details of your problem with us, ideally through a bug report?

    There's been a lot of work to get rid of these so we'd need to have a close look at your situation. Do make sure you have the latest 2019.3. There's one such fixes that will be soon available (a few repeated frames near the end of the clip, when running on some nVidia cards).

    The Windows/UWP version of the VideoPlayer is getting hardware-acceleration in 2019.3, so a few gotchas may have escaped our attention. Converting to VP8 is indeed a workaround, but then you introduce one more decompress-recompress cycle (for a slight quality loss) and you don't get any hardware acceleration during playback. But VP8 has its advantages (resolution limit much higher, and supports alpha), so it can be the right tool sometimes.

    However, I'm hoping you can leave your mp4 (or mov or m4v) sources intact so I'll make sure to have a look at your scenario. Also; this thread has mentions of both Windows and OSX problem scenarios: make sure to tell us what platform you're working on so we can look at the right place.

    Thanks for reporting this,

    Dominique
     
    AAK_Lebanon likes this.
  16. AAK_Lebanon

    AAK_Lebanon

    Joined:
    May 30, 2015
    Posts:
    69
    Actually that happened to me regardless of what platform I am using. I tested it when I switched to iOS and Android and PC, I always have this problem. any mp4 file will have this effect (the frames seem corrupted/repeating). u don't need to do anything, just put any mp4 in your assets folder and preview it in the inspector, you will notice it without using any Video Player ! I am using unity 2019.3.0f6 on a Toshiba laptop with nvidia GeForce 930M and an intel HD graphics 520, with core i7 and 8 GB of ram (with an SSD)
     
  17. DominiqueLrx

    DominiqueLrx

    Unity Technologies

    Joined:
    Dec 14, 2016
    Posts:
    184
    Hi!
    Interesting: are you saying you are getting this problem on the device (this would be a new issue) or just in the editor with the current target platform changed? If it's the latter, then it's expected: the video playback in editor doesn't change behaviour with a change of target platform.

    The fix I mentioned earlier is still queued for backport in 2019.3; I'm eager to get your feedback when it's finally in your hands. This is the issue tracker link for the problem: https://issuetracker.unity3d.com/is...ated-when-played-using-video-player-component
    The underlying playback engine is the same for the VideoPlayer and the VideoClip preview, so the behaviour you describe is coherent with the implementation.

    Thanks for this additional info: not all platforms/drivers/graphics hardware exhibit the problem with the same severity. So far, we've only witnessed the problem as being a few repeated frames near the end of the clip, and only on some nVidia hardware. Hopefully your situation is just a more obvious variant of the same root cause (a missing underlying texture synchronization between the video decoding device and the main graphics device).

    Thanks for the additional info!

    Dominique
     
  18. Hyp-X

    Hyp-X

    Joined:
    Jun 24, 2015
    Posts:
    259
    Ok, I see the Video Player issue like described "NamelessPerson"
    It really looks like the frames are played out of order.
    It looks like Video is played from a ring buffer of N frames and the ring buffer advances to a frame that hasn't been updated yet, so it shows content from N frames before.
    Like they said, the Audio track is not affected.
    (Also this is not about the last frames of the video, it happens from the start.)

    Now here's the thing.
    I've seen this bug on Windows Editor, Player and on PlayStation 4 as well.
    So this is a cross platform bug.

    We never saw this issue with Unity 2019.2 so this is definitely new in 2019.3

    All our attempt to make a minimal repro case failed so far.
    As soon as I start to delete stuff from our scene I start to lose reproducibility.
    On the PS4 we only saw the issue with Native Graphics Jobs so far, but not with Legacy.
    So this looks like a timing issue to me.

    Speaking of which, we usually test with vsync off, and I've seen the issue with 70 fps (on a 60 fps monitor), so I'll re-test later if vsync plays a part.
     
  19. DominiqueLrx

    DominiqueLrx

    Unity Technologies

    Joined:
    Dec 14, 2016
    Posts:
    184
    Hi Hyp-X,

    Thanks for the added information.

    As mentioned, the bugfix is still on its way to a near 2019.3.x release.

    However, the PS4 situation you have is new to us, so please let us know if you can reproduce. Please note that the Windows and PS4 implementation of video decoding share no code at all, so we should treat these as two separate issues. The Windows version of the code received a serious rework for 2019.3 to bring hardware acceleration, but the PS4 one stayed essentially intact, so we cannot treat them as the same bug.

    Hope we can quickly figure out the PS4 situation; thanks for your patience!

    Dominique
     
  20. Hyp-X

    Hyp-X

    Joined:
    Jun 24, 2015
    Posts:
    259
    Well, video playback on PS4 didn't work at all in our project with Unity 2019.2
    Checking early betas of Unity 2019.3 we saw that video playback works on the PS4, so we didn't raise an issue.

    I'll see if I can reproduce.
     
  21. Hyp-X

    Hyp-X

    Joined:
    Jun 24, 2015
    Posts:
    259
    I have a minimal repro for the PS4 stuttering issue:
    (Case 1222997) PS4 VideoPlayer stuttering
     
    LeonhardP and Charles_Beauchemin like this.
  22. DominiqueLrx

    DominiqueLrx

    Unity Technologies

    Joined:
    Dec 14, 2016
    Posts:
    184
    Update for the repeated/missing frames in mp4 playback on Windows in 2019.3: the fix has just landed in the 2019.3.4f1 version.
     
    Last edited: Feb 26, 2020
    Hyp-X and LeonhardP like this.
  23. Bodhid

    Bodhid

    Joined:
    Oct 7, 2015
    Posts:
    1
    Just experienced this in the latest version 2019.3.6f1 so it does not seem to be fixed completely.
    It looks like previous frames are being repeated as described in https://issuetracker.unity3d.com/is...ated-when-played-using-video-player-component

    It only happens in Fullscreen mode with VSync on. Borderless and/or VSync off works without issues.

    -The videoclip asset is not encoded through Unity.
    -The video is a MP4 file (x264, 3840x2160, 60FPS constant(matches refresh rate of monitor), ~50Mb/s)
     
  24. fherbst

    fherbst

    Joined:
    Jun 24, 2012
    Posts:
    566
    I still experience that in 2019.3.5f1 and 2019.3.6f1. This is clearly not fixed, and happens with most mp4 files I tried, most of the time (not all files, and not all of the time), both in Editor and in builds, on URP and HDRP (didn't try built-in).

    I recorded a video of the behaviour:
    @DominiqueLrx

    One peculiarity that I noted is that when trying to record, depending on the recorder, with some of them the issue was gone while recording was active. Stopping the recording would bring the jitter back immediately.
     
    hoesterey likes this.
  25. hoesterey

    hoesterey

    Joined:
    Mar 19, 2010
    Posts:
    556
    This is still not fixed. When can we expect a fix?
     
  26. hoesterey

    hoesterey

    Joined:
    Mar 19, 2010
    Posts:
    556
  27. DominiqueLrx

    DominiqueLrx

    Unity Technologies

    Joined:
    Dec 14, 2016
    Posts:
    184
    Hi!

    The scenarios that we were able to replicate over here are fixed. What's left is specific to certain graphics hardware / driver versions so we'll have to look at them one at a time. So I would encourage anyone (yourself, @fherbst and @Bodhid ) to submit a bug (possibly referring to this thread), with a simplified scene, the media being used, as well as the system info so we can find a similar system to work with. DX11 vs DX12 also makes a difference so it's important to specify which graphics API is in use.

    One thing that doesn't help is that "stutter" can mean many things, all of which are a different area of decoding / syncing video with the Unity game time. There can be such situations when hitting the loop point, or just when starting playback, etc. And a good chunk of this logic is platform-specific, so "fixing stuttering" is unfortunately not just fixing a single bug, behind the scene.

    For instance, the one you're referring to in here:

    is exposing the fact that the VideoPlayer's clock source is the system clock, and that this clock is not synced with the VSync. Because of this, the VideoPlayer sometimes has to make tiny adjustments in case the vsync and system clock drift a little bit or when the game iteration loop duration isn't stable enough to guarantee stable 60fps (which often happens in-editor, due to various contributing mechanisms such as UI refresh). I've actually closed this one, giving explanations of what's a good way to have vsync-friendly video playback in Unity.

    So: please keep these bug reports coming; the turnaround isn't great but we'll eventually get there with your help!

    Thanks for letting us know that this needs some more tuning,

    Dominique
     
  28. hoesterey

    hoesterey

    Joined:
    Mar 19, 2010
    Posts:
    556
    This isn't the type of bug where it's easy to repro in a base project thus with unity's bug reporting requirements it is challenging to report this bug. It seams to fall apart when the engine is under load.

    Also in the list of hardware is Xbox One a platform with known issues? The video player is falling apart entirely for us on that platform.
     
    Last edited: Mar 30, 2020
  29. DominiqueLrx

    DominiqueLrx

    Unity Technologies

    Joined:
    Dec 14, 2016
    Posts:
    184
    OK, so if you play the problematic clip in isolation, it's all fine, and as you start adding up more work then problems start to happen, correct? Can you capture your screen when the problems happen so I can see what "category" of stuttering this falls into? As I explained above, there are many types of stutter-y misbehaviours so it's important I know what type we're talking about here.

    I haven't seen such reports, so again, we'll need more details on what's going on. You can start with a minimal project that plays a small movie (small resolution, low frame rate) and then crank things up until you get to the breaking point so we know what we're facing. Note that on this platform (contrary to what's now done in Windows/UWP with hardware acceleration), the video decoding is done in software. So keep in mind that it competes with the rest of the game for CPU resources.

    Dominique
     
  30. hoesterey

    hoesterey

    Joined:
    Mar 19, 2010
    Posts:
    556
    Thanks for the help. We've tried several different unity versions now they all are having different behaviors. Some jump "Back" frames, some seam to have a issue playing the CPU at rate. Our code we have on top of the unity engine is optimized for the last product we shipped on PSVR so its hyper optimized, we are not hitting hardware hard promise.

    We found a configuration that works in Unity 2019.3.6f1. We had to do the following:
    -the callback for .Prepare() never gets called on videos, so we are waiting an arbitrary amount of time and that fixed some of the stuttering.
    -we downrezed the video to 2k from 4k. Odd that we can't play a video in 4k with nothing else going on in a scene but this is one of the bottlenecks.
    -on XBOX we had to re-encode to VP8 this is not in line with the Unity documentation that claims support for H264.
    -the only other thing that was running with the video is async loading. We tried disabling Async loading happening in the background early on and again to verify but this has no effect on playback, so this was not the bottleneck.
    - video.IsPlaying is not accurate. It returns true long before a video is actually playing on PC and XBox. We had to add the following code to ensure a video was actually playing:

    while(!m_OutroVideo.isPlaying)
    {
    //this does not work and will progress many frames before the video is actually playing.
    yield return null;
    }
    while (m_OutroVideo.frame <= 1)
    {
    yield return null;
    }

    With the above we have our videos functioning. It seams that some of the core features of the video player such as .Prepare() and IsPlaying() are not working as intended. Searching around on the forums others seam to be having similar issues.
     
  31. Hyp-X

    Hyp-X

    Joined:
    Jun 24, 2015
    Posts:
    259
    What I referred to in this thread is what fherbst posted a video about 3 posts above yours.
    I see this in 2019.3.7f1 in the Editor running DX11 on an GeForce GTX 1050 Ti
    I wasn't able to reproduce this in a test project - it looks like you need a specific load to make it happen.

    I saw the exact same effect in the repro I posted for PS4 (1222997)
    Due to the COVID situation I cannot test on PS4 at the moment unfortunately (working on it).
     
  32. DominiqueLrx

    DominiqueLrx

    Unity Technologies

    Joined:
    Dec 14, 2016
    Posts:
    184
    Hi again!

    So it seems the stutters you're getting right now (my asking for a movie of the problem "in action" stands... it will help with certain assumptions) seems to be of the variety where either the game loop doesn't sustain the rate for the video clip, or the decoding itself doesn't keep up. The kind of stutter I mentioned being fixed, above, is not related to load, and typically happens near the end of a clip (and on some instances will just show frames out of order consistently throughout playback), and these are related to a missing graphics operation that has now been added.

    The stutter you describe is even more plausible if your material is 60FPS: in-editor, it's very hard to have this guarantee held. One thing you can try (if there's no audio in your clips) is to disable the "skip on drop" setting in the VideoPlayer. "Skip on drop" will skip ahead to catch up with the clock when we detect a certain amount of drift. If this behaviour is not important for you, then disabling this will avoid some visual discontinuity. Also give VSync a try (in editor: via game view, or in game: via Project Settings -> Quality). And finally note that a solid frame rate is better fulfilled in a game build than in-editor.

    With all of this said, let's dive into the problems you're describing:

    This is quite well tested on our side, but who knows, maybe something's hiding. But make sure that
    1) you're attaching your prepareCompleted handler before Prepare() is invoked, on the off chance that it completes quickly.
    2) when you invoke Prepare(), make sure the preparation hasn't already been triggered earlier (as would be the case if Play on Awake is enabled, for example) or else it won't have any effect.
    3) try the Prepare() -> prepareCompleted -> Play() workflow in a simple separate scene to make sure you have this under control.

    I suggest you run this with Unity's profiler to see if there's something stealing cycles. You can also have a look at the video-specific data in the profiler: there isn't much but there's enough to let you know if the output buffering is underflowing. You can also consider "simplifying" the video by having it use the H.264 baseline profile instead of main or high, if this is at all possible. Also do give a try to lower frame-rate material (24, 25, 30) if you're currently using 50/60 fps to see if this plays a role in the issues.

    It does support H.264 although this is a fairly broad claim. As with everything here, start small and build from there. I'd suggest using a small resolution file with low frame rate (a modest 320x200@30fps), using the H.264 baseline profile and see where you land. Microsoft doesn't support the full range of the H.264 codec so you have to go with what's supported here. From Microsoft's doc, this seems to be around 1080p, 30fps, with H.264 up to high profile, level 4.2 (but I'd start with baseline profile). This is what the hardware can do, but they don't mention what are the capabilities of the software fallback. So I'd start way below this just to get a feel and see how it goes when you crank things up. Also, the various console versions have different limits for video, so make sure you familiarize with those.

    Again here, running with Unity's profiler - or XboxOne profiling tools, if this is where you test - may get you better answers.

    This depends on subtle nuances of what isPlaying means. I believe you expect it to mean "at least one frame was produced", whereas what it currently means is "whether the internal presentation clock has started rolling". So for instance, if you call Play() and "wait for first frame" is false, then the clock starts rolling immediately and the VideoPlayer will chase this clock and present frames that match it, even it if it takes a while before it can catch up. But all this time, the VideoPlayer is "playing". If what you want is to know if "at least one frame has been produced", then you may explore the frameReady event. But polling for a given frame value like you do is another - slightly less efficient - way.

    Hope that at least some of this is helpful and please: do submit bugs if despite all the explanation there's something I'm not understanding in what you're describing.

    Dominique
     
  33. DominiqueLrx

    DominiqueLrx

    Unity Technologies

    Joined:
    Dec 14, 2016
    Posts:
    184
    OK, thanks for the clarification. I've run tests on a GeForce RTX 2080 without trouble, and the same was also tested on a GeForce 1060 GTX. Right now, access to machines is a bit challenging as you may guess. But I'll try to see if we can re-validate with the 2019.3.7f1 on various GeForce cards.

    On your side, you can make sure you have the latest drivers (weak, agreed, but I had to ask), and maybe give a try to the onboard Intel graphics hardware if you happen to have one; it'd be a good data point. And of course, if you do happen to have a repro that fits in a project you can share (even if the "load" is entirely fake), please submit a bug!

    This is a completely different code base, so although the visual may be identical to what you get on Windows, I don't think the fix will share anything with whatever we end up doing for addressing the Windows situation. One thing I can think of here is maybe it's the media you are using that is triggering trouble in both of these decoding backends. Because I've seen frequent trouble on the Microsoft side with movies having b-frames (anything above the baseline H.264 profile), I tend to start with simpler videos when I assess a problem.

    Another thing I see when looking at the media you supplied with the bug report is that it's 25fps footage but you're mentioning your project runs at 30fps, so this may help explaining at least part of the issues. But I'm not a PS4 dev so until they can take time to have a deeper look, maybe you can experiment with altering the media you're using in case you can mitigate the problem.

    Hope this helps!

    Dominique
     
  34. fherbst

    fherbst

    Joined:
    Jun 24, 2012
    Posts:
    566
    • This happens under specific loads, not in a trivial separate scene
    • I'm saying "specific" and not "big" because it's not really dependant on framerate.
    • I've seen this on 1080 Ti Desktop as well as 2070 Max-Q on different devices
    • As I described above the issue in 90% of the cases went away when trying to screencapture which doesn't exactly makes it easier to reproduce and also also underscores that this is not due to heavy load (the load gets bigger with screen capture on).
    • "Skip on Drop" does not influence it
    • VR on/off does not influence it
    Maybe most importantly, never had that issue with AVPro Video (which I'm sure you looked into since it's the de-facto standard). I keep occassionally coming back checking what Unity has to offer for video playback and there's always something and the usual disclaimer that everything is working fine on your end... I'd love to finally see proper video support in Unity, and I know you guys are working hard on it, but please don't brush off customer issues like that.

    This is not about solving some kid's issues on a particular game ("please reinstall drivers"), for us having video in our Unity-based products is crucial and stutters like that, that happen on random conditions (and thus could theoretically happen on a 1000 sqm screen in front of tens of thousands of people) are unacceptable.

    EDIT: I tried to bisect the issue further. It seems to be triggered by having multiple cameras in a scene that render. It doesn't matter if they render to RTs, to the same display, different displays, but having two cameras that both render makes the difference between "tons of stutter as in the video above" and "no stutter" in my project right now.
    Unfortunately, that doesn't help much, as rendering to multiple cameras is a requirement here, and the same still isn't true in a simpler repro project.

    EDIT2: The issue is also gone if I use "Free Aspect" in Game View. It happens when I set the game view to a larger resolution (usually I work in 3840x2160, as that is the target resolution for many projects).

    With the above new info, I was able to reproduce the jitter in a clean project and reported a bug: Case 1232889 -

     
  35. DominiqueLrx

    DominiqueLrx

    Unity Technologies

    Joined:
    Dec 14, 2016
    Posts:
    184
    Hi!

    Thanks a lot for narrowing it down to something we can work on. I'll make sure we get the right hardware - given what the current conditions impose - to work on this as soon as possible. I'll intercept the bug in the incoming queue to make sure our QA pairs up with me for the investigation. This is indeed the kind of stutter that my previous fix addressed, obviously under different conditions, so we'll see what more is needed in this area to get rid of this situation. The introduction of DX11/DX12 hardware accelerated video decoding means 0% CPU usage to play videos on Windows/UWP, but it has obviously made playback more sensitive to graphics environment.

    It's every bit my intention that the info provided here demonstrates that we're taking this seriously and are acknowledging the issues at hand - within bandwidth constraints, I have to say. When I point out what works on our end according to internal testing, it's in the hope that we can find together where our coverage was incomplete and converge towards the required improvement. And your bug report does exactly this.

    So thanks again for taking the time to help and really hope Unity video can be part of your future success, which is the only way we can measure ours.

    Dominique
     
  36. fherbst

    fherbst

    Joined:
    Jun 24, 2012
    Posts:
    566
    Thanks for confirming. I'm a bit biased against Unity's "works on our end" part since there were so many incidents with that in the last years*. If stuff is broken on > 50% of our machines for various projects then I do believe QA should have catched issues earlier or is not stress-testing enough.
    That being said, really looking forward to Video leaving that (*) list and properly working in the future :)

    *: in case you're interested:
    • One year of fighting against bugs with the decision to localize the editor and not a single Unity developer testing this outside of en-us locale in a real project; basically all internal systems were broken (animation, shader timing, serialization) ...
    • Two years of fighting against VR bugs since no-one actually tried using URP+ShaderGraph+VR (everyone just saying "we can't test all combinations, can we")
    • Nearly one year of fighting against Quest bugs since no-one bothered actually trying to get a Quest app to build / upload / release properly
    • One year of AssetDatabase v2 issues getting rejected by QA because "yes its broken for me in your project but I can't reproduce in a new project, clearly this is not an issue"
     
    a436t4ataf, hoesterey and gif- like this.
  37. hoesterey

    hoesterey

    Joined:
    Mar 19, 2010
    Posts:
    556
    To this, our last project had to ship on three different versions of Unity. One for Xbox, one for Switch, another for PS4 and PC, because of game breaking/cert failing bugs in various versions of Unity. Last I checked we still can't technically patch a switch game without failing cert or getting an exception.

    I've been saying this for years but the biggest issue with the Unity test process is that there are no "Large games" being built internally at Unity and thus most of the engines issues are with "Large games" and don't repro in test projects.

    Here is one: Start() does not get called on all objects in a single frame when the engine is under extreme load. That means that when pre-loading (During scene loading) if you instantiate a ton of objects then disable them to "pool" Start() may be missed. In our last shipped project Bow To Blood on PSVR we had to spawn all objects on a grid far away from the level so physics wouldn't explode with overlapping objects that were not getting instantly disabled, wait an arbitrary amount of time so Start() would be called on all of them, then disable the game objects.... this type of inconsistent behavior happens in a ton of systems within the Unity engine when it is under load. The Unity team would benefit greatly from making a large game internally.
     
  38. a436t4ataf

    a436t4ataf

    Joined:
    May 19, 2013
    Posts:
    844
    That's fair, but ... this genuinely surprises me. The forums + google are full of people reporting what seems to be the same problem over and over again. 2019.3.x doesn't seem to have fixed anything for most people (I've personaly tested and reported these bugs on 2019.3.5 through 2019.3.10 (? can't remember precisely, there are so many point releases happening right now I can't keep up :) ) or so).

    (My hardware for those tests: win10 latest, latest nvidia game drivers, and latest stable nvidia non-game drivers, GTX 1060 - fairly standard setup for basic VR development ;). Given how common the 1060 is, I'm very surprised if I'm seeing hardware specific bugs that you guys can't reproduce!)

    So far as I'm aware: not your fault, but closing bugs like this with BYDESIGN can be harmful - Unity has kept your explanations private, while publically declaring "We won't fix this bug".

    The public issue tracker sucks, but ... I strongly recommend finding a better way to deal with public bugs than "BY DESIGN" until/unless Unity corp fixes the issue tracker to include workaround advice etc.

    (note: this is a feature that standard bug trackers - even the open-source ones - have had for 10-20 years at least, so it's a bit sad that Unity's proprietary system still hasn't come into the 21st century yet :(. I don't know what options you have internally to worakround problems like this, but I hope you have some)

    Multiple people I've spoken to about the VideoPlayer bugs in the last few weeks have said they won't submit bug reports any more because of the belief that the bugs are just being ignored anyway. Stuff like the BY-DESIGN mentioned above, andthe long-unfixed Chrome/WebGL bug that was reported last year and has been stuck in PENDING for months, and version after version it doesn't go in - even though it makes WebGL video impossible (Chrome is the most commonly used web browser by a long way right now).

    (It might be in by now? As I said, I can't keep up with the frequent point releases right now - I think Unity forgets that it takes a day or so to test each release on your game before doing an upgrade. One release a week is impossible for most teams, no-one can afford that amount of wasted time doing regression testing)

    FYI to other readers - my last round of VideoPlayer bugs were submitted more than 2 weeks ago, and I haven't yet had even the generic-QA response on them yet, so I would guess you can expect to wait at least 1 month before the video team gets to even see your bug. From that, I'm guessing fix time right now is ... 2-3 months min?
     
  39. a436t4ataf

    a436t4ataf

    Joined:
    May 19, 2013
    Posts:
    844
    Will this be added to 2018 LTS? (or did it go in already and I've found a new bug??)

    I believe it's affecting our 2018 projects right now: basically, forget about looping video. It just doesn't work (I've only tested on nvidia cards, so I can believe that it's an nvidia-specific issue - but that's such a big chunk of people we can't really ignore it :)).

    For private projects, we could force an upgrade to 2019 (and spend the significant time working aroudn the bugs that 2019.x UnityEditor/runtime has - painful, but most of them we already know about from other projects).

    But I have some stuff that's assetstore too ... where it's simply not an option.
     
  40. a436t4ataf

    a436t4ataf

    Joined:
    May 19, 2013
    Posts:
    844
    What would be ENORMOUSLY helpful is if Unity would document which hardware you've actually tested + verified on.

    (also: would be nice to see the VideoPlayer docs fixed. Off the top of my head, they currently state that only some H.264 profiles are supported, and hot-link to ... a vague description that "there are many profiles", so Unity never actually declares what you're supporting or testing against)

    Then we wouldn't all have to spend so much time chasing our tails, not knowing if the bugs we're seeing are "known but hardware specific", "unknown - new bug report needed", "possibly hardware specific - worth finding some other GPU to test on -- and which one to test, because no point checking another harwdare that Unity ALSO hasn't test on", etc.
     
    fherbst likes this.
unityunity