Announcement

Collapse
No announcement yet.

Upcoming Performance Enhancements - Live From Epic HQ

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #16
    Originally posted by Nate View Post
    It seems most assets loaded in editor has RF_Standalone flag which prevent them been garbage collected inside editor even there's no references, which brings the problem that when editing resource intense level, the memory usage will continue growing and the only solution is to do a full editor restart. I assume it's originally done to minimize assets loading time from HD, but now since the popularity of SSD, is it still a valid decision?
    Load time is the major component of editor startup times on any non-trivial project even with an SSD, so it's certainly still important to keep loaded assets around to some degree. I suspect it was also done so that asset editors don't need to worry about the asset being unloaded out from under them, although it's certainly feasible for the editors to keep a strong reference to them directly (and most recent editors should be doing this anyways). I don't think we have any plans to change this (stop using RF_Standalone) right now, but I'd recommend posting this to the Feedback forum as it's own request, since it would certainly be useful to have something like an 'unload un-needed assets' command that drops the flag and does a force GC to get you a bunch of memory back quickly.

    Cheers,
    Michael Noland

    Comment


      #17
      Hi Michael, thanks for the answer

      Originally posted by Michael Noland View Post
      1) DX12 support remains experimental in 4.11 and 4.12. Currently both APIs are tied to specific platforms / OS versions, so they are nice to have but most games can't rely on them to fix all their woes (e.g., most desktop games are going to want to support Windows 7 as well for the foreseeable future).
      Vulkan should work fine on Windows 7, right? So it's Vulkan for Windows 7, 8, 10, Linux, Android and Metal for iOS and Mac. How long will it take until the Vulkan implementation is roughly same far as DX12? I've seen a lot of commits in github regarding Vulkan, but I don't know how finished the implementation really is. Can I enable it experimentally in 4.11 or 4.12?



      Originally posted by Michael Noland View Post

      2) The improvements and optimizations were specific to cloth and will not impact destruction.
      What a pity, I hope there will be improvements in the future. Performance with destructibles is a bit problematic at the moment.
      Easy to use UMG Mini Map on the UE4 Marketplace.
      Forum thread: https://forums.unrealengine.com/show...-Plug-and-Play

      Comment


        #18
        I don't know the answer for Vulkan.

        RE: Destructables, are you seeing problems with render / GPU perf or CPU perf? For my global game jam game this year (http://globalgamejam.org/2016/games/...e-grave-looter) we used destructible meshes for the graves and were initially having bad GPU perf problems but mostly solved them by using a unfractured static mesh until we started the destruction (the fracturing was bloating the triangle count of each tomb and also massively increasing the cost to render the shadows for the skinned mesh). We just set up a destructable blueprint that had both the static mesh component and destructable mesh component and an event to trigger the fracture hiding one mesh and showing the other IIRC (NickD wrote that bit so I don't remember the details).

        Cheers,
        Michael Noland
        Last edited by Michael Noland; 02-18-2016, 09:56 PM.

        Comment


          #19
          Swapping them out was a huge win. The original grave stone mesh was something like 1,000 polys, once I fractured it, it became a something like 13,000 polys and I'm guessing it goes through a more expensive rendering pipeline that expects a hugely dynamic skinned mesh being updated. If someone can go around your level sort of plinking lots of little surfaces your perf would eventually drop too low, but if you use them like us where it's just for a temporary explosion of all the things, and then have them disappear a few seconds later, it's a huge win. Especially since we had a large shadow casting light in the scene, so not only were we originally having to render 13,000 poly meshes in the main view, but then they had to be rendered from the standpoint of the dynamic moon directional light - which was pretty expensive on my macbook pro. I'm guessing we had around 100 grave stones in the map.
          Last edited by Nick Darnell; 02-18-2016, 10:51 PM.

          Comment


            #20
            Originally posted by Michael Noland View Post
            I don't know the answer for Vulkan.
            Ok, maybe someone else who knows more about the Vulkan integration in UE4 can comment on it


            Originally posted by Michael Noland View Post
            RE: Destructables, are you seeing problems with render / GPU perf or CPU perf? For my global game jam game this year (http://globalgamejam.org/2016/games/...e-grave-looter) we used destructible meshes for the graves and were initially having bad GPU perf problems but mostly solved them by using a unfractured static mesh until we started the destruction (the fracturing was bloating the triangle count of each tomb and also massively increasing the cost to render the shadows for the skinned mesh). We just set up a destructable blueprint that had both the static mesh component and destructable mesh component and an event to trigger the fracture hiding one mesh and showing the other IIRC (NickD wrote that bit so I don't remember the details).
            The problems I remember were only with the game thread, not the GPU. I am already spawning the destructible mesh the second the mesh got hit by something, so it's only around if it needs to be. And there's one little annoying bug with this, the frame the DM is spawned it's actually invisible. This bug got introduced in 4.8 or 4.9, and you seem to have workarounded it with just switching visibility of regular mesh and DM instead of spawning it, but in my case that does not work. I guess you had GPU perf problems.

            For better performance I am also killing the debris immediately and instead spawn my own physics objects there so that I have full control about when and how to fade them out. The main problem I have is that I need the "Form Extended Structures" feature enabled, and it causes hitches between 200ms and 1000ms if you spawn one DM with "Form Extended Structures" enabled close to another DM. And hitches of up to 1 second don't feel that good in a game.

            The other huge problem were that once you reach a certain number between 8000 and 9000 fractures in your whole scene, the performance suddenly decreases a lot for a few frames after you added more fractures. And this affects GPU time even more than CPU time. Almost as if there is some hard coded value between 8000 and 9000. The game basically becomes unplayable after you reached that number.
            Easy to use UMG Mini Map on the UE4 Marketplace.
            Forum thread: https://forums.unrealengine.com/show...-Plug-and-Play

            Comment


              #21
              So looking forward to this!!!

              Comment


                #22
                TArray pre-alocated for 8192 fractures?
                [Gamedev programmer at Darewise (Paris) - We are hiring]
                UE4 Git LFS 2.x Source Control Plugin 2.14-beta for UE4.23 - (v1 integrated by default since UE4.7)
                UE4 Plastic SCM Source Control Plugin 1.4.6 for UE4.23 - (integrated by default in Beta status since UE4.24)

                Comment


                  #23
                  TArray pre-alocated for 8192 fractures?
                  Edit: or some cpu/gpu cache size somewhere...
                  [Gamedev programmer at Darewise (Paris) - We are hiring]
                  UE4 Git LFS 2.x Source Control Plugin 2.14-beta for UE4.23 - (v1 integrated by default since UE4.7)
                  UE4 Plastic SCM Source Control Plugin 1.4.6 for UE4.23 - (integrated by default in Beta status since UE4.24)

                  Comment


                    #24
                    Is this available on video to watch, I missed the broadcast

                    Comment


                      #25
                      Originally posted by ajbombadill View Post
                      Is this available on video to watch, I missed the broadcast
                      Yes, Twitch keeps an archive of all streams :
                      http://www.twitch.tv/unrealengine/profile

                      Edit: and know it is also on YouTube https://youtu.be/1x-RohHcjv4
                      Last edited by SRombauts; 02-23-2016, 02:39 AM. Reason: YouTube
                      [Gamedev programmer at Darewise (Paris) - We are hiring]
                      UE4 Git LFS 2.x Source Control Plugin 2.14-beta for UE4.23 - (v1 integrated by default since UE4.7)
                      UE4 Plastic SCM Source Control Plugin 1.4.6 for UE4.23 - (integrated by default in Beta status since UE4.24)

                      Comment


                        #26
                        Hi there,

                        Great video, I am using 4.14 and Im trying to use the ShowMaterialDrawEvents, but this command seems to have changed?

                        https://youtu.be/1x-RohHcjv4?list=LL...mJy0GYQ&t=1142

                        Cheers

                        Edit: Figured it out r.ShowMaterialDrawEvents 1 - for anyone who wanted to know

                        Comment

                        Working...
                        X