Search Unity

  1. Unity Asset Manager is now available in public beta. Try it out now and join the conversation here in the forums.
    Dismiss Notice

Resolved (Case 1280241) Performance regression with frame (rate) displaying of moving objects/characters

Discussion in '2020.2 Beta' started by unitedone3D, Sep 25, 2020.

  1. unitedone3D

    unitedone3D

    Joined:
    Jul 29, 2017
    Posts:
    160
    Hi there!
    So I decided to do a double double (since I rarely post bugs) (we don't want more bugs but (it's the 'but..bugs'..or 'bugs..but'), so continuing with another one. It may not be a 'real' bug but just performance regression of Unity 2020.2b2 (the very last one). The frame rate seems correct and I have not experienced the kind of frame rate loss some others have experienced (this can be due to this specific asset working, but with another one it might not); thus,

    I continued with the Creator FPS 3D kit, and wanted to verify something else, which is the actual moving/movement of objects and especially, characters. I am getting 90 fps, with the correct Time Delta/'Steps' settings (Project Settings > Time). I clearly saw that a too low or too high can drastically change the frame rate (as Unity either is rendering not enough steps (to get smoother frame rate) or too much (the engine is slowed down). In any case, the problem is not the frame rate, but the actual 'displaying' of 'moving objects/characters' - to that frame rate.

    What happens is that the characters are moving correctly (in that asset) but they 'tear', the frame rate shows tearing and the characters rendering seems to 'frame lag', it is not smooth but a big jerky/image tearing when they move. Now I know that is also related to V-Sync, which I tried Both On and Off (Projects Settings > Graphics > V-Synch On (each 1) or Off), it made barely no difference, ok it was slightly better with V-Synch on because it helps to reduce image tearing during moving objects. But, it did not remove it completely, there is still very strong 'strobing/tearing' each frame of the movement of characters moving around.

    How do I gauge that? I compared it to the same asset built in Unity 2020.1.a19 and in this version the tearing is very minimal if 100% gone; there is no 'frame movemement displaying lag/tearing'. Kind of like 'Ghosting' effect of moving things, but move 'tearing' than ghosting, you feel the image is coming is 'chunks' (that is due to V-Sync off and the no synchronisation between GPU and monitor - causing image tearing in the frame rate of movign objects).

    But, I did turn it on and still did not make that much difference, ok maybe it is to due with my GPU (AMD Radeon RX 470 old card and yes, I did turn off V-Sync in the settings of this card, but I still Did Not experience this tearing on Unity 2020.1.a19 - with No V-Sync).

    Thus, it means it is not a V-Sync problem but an engine (Unity) problem. The fact Unity 2020.1.a19 shows smooth (frames/clean frames) untearing movements while 2020.2beta2 shows unsmooth model/image tearnig ('chunks of image 'catching up' to display on monitor) of movements. IT seems V-sync the problem but it's not it's the 2020.2b engine having difficulty 'communicating' the data to process - fast enough - to avoid any image tearing of moving things.

    I did try Many different variants of Time Settings minimum/maximum steps (tried from 0.00001 to 10,000) - I turned on/off Graphics Job, tried Jobs Burst compilation on/off, turned on/off Optimization of Mesh (in Player Settigns), checked Transforms turned off/on optimization or off, I turned off Litterally everything in the Project Settings to try to pinpoint the problem, tried with no LZH compression to build it, in build the frame rate tearing is there. And of course V-synch. No dice, Thus, the problem is the engine itself (lagging?). Maybe Unity new version has a problem with my GPU/the fact Vsynch is off in settings of it (but not last a19 version of Unity for some reason).
    It is like it can't 'keep up' with the image frame rate,s o it causes very strong movement tearing/strobbing and like objects are not '1 display per 1 frame' but a disconnect/the character ends up 'moving 2 frames with a 'hole' in between - lacking a frame (and causing tearing/as the GPU or engine tries to 'display the moving character' but not fast enough (causing 'chunnks' of the image to appear each frame, instead othe full image/full scan 'progressive' (1080P (P for progressive scans/full image, not 'fields/odd/even/half-image each frame (one half, and later, another half causing tearing')),-- just like V-Synch off but Unrelated to it, as I can make it work in Unity2020.a19, no tearing very smooth and not 'lagging' of image to keep up with the movements of objects).

    One more thing, the regular Audio DSP is better in Unity 2020.2beta, for some reason this same Asset sounds a bit worse/subdued in Unity 2020.1.a19 - using same exact default settings, the sound is fuller/larger/deeper in new beta version (with regular default settings). But the image tearing is just too 'game breaking', the smoothness is jerky/looks bad because charactesr are unsmooth when moving/can't see where they move because image tearing all over them. That is a no go, I can do with a little bit muffled sound not jerky moving characters. I will stick to a19 (performance regression seems not so, but for the moving of objects (in that asset) it is so).

    Just a 2 cents.

    PS: I am sending bug report, just use the same asset and open Unity 2020.a19 and Unity 2020.2beta (last one), now download Creator Kit FPS use default settings and build it - and then check the image tearing/frames of the moving charactesr very close, they will strobe/tear when moving (only visibly up close to them). In Unity 2020.a19 the characters moving will be a 'smooth trail' of close tight frames, thus less tearing.
     
    Last edited: Sep 25, 2020
  2. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    First of all, which platform are you experiencing this on? Or can you reproduce this on multiple platforms?

    Secondly, any chance you could capture a video of this? I'm not entirely clear on what exactly you're seeing.
     
  3. unitedone3D

    unitedone3D

    Joined:
    Jul 29, 2017
    Posts:
    160
    Dear Tautvydas-Zilys, thank you, it was, after all, a V-Sync problem (I thought so it really looked like that, screen tearing is oftenly related to missynch between GPU/monitor as GPU/monitor wait and cause tearing). Thus, my GPU is the problem, I solved it after dabbing in the settings of GPU, trying different V-Sync settings, one of the settings worked 'Enhanced V-Sync', now the tearing is gone and I see full frames. It's strange that it worked without that V-Sync in the a19 version of Unity (maybe because more frames per second, thus smoother and might hide better the tearing); from now on, if I see tearing I know it's my GPU card the problem and that I would have V-sync turned off - on the GPU; no matter if V-Sync is On/Off - in Unity; it must be on The GPU control panel settings. Thank you again.
     
  4. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    Yeah the GPU control panel will overwrite whatever you set in Unity. Once you set a GPU setting, it will ignore whatever Unity tells it to do. The only way to get it to allow Unity control it is to set it to "Application controlled" in the control panel.