Announcement

Collapse
No announcement yet.

Is there NO freaking way to Benchmark Skeletal Mesh Draw Call Performance?

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

    Is there NO freaking way to Benchmark Skeletal Mesh Draw Call Performance?

    Hello Rendering Gurus. Can you please advise me the best Console Command Stat(s) to use to view Skeletal Mesh Merge with FSkeletalMeshMerge Draw Call Performance? I'm currently using 'Stat SceneRendering' and 'Stat RHI' monitoring 'Mesh Draw Call' and 'Primitive Draw Call'. From what I see, the Draw Calls increment identical to separate skeletal mesh components added. Not sure if these metrics are the correct ones to use, or the skeletal mesh merge is not working. I suspect the skeletal mesh merge is not working Any and All assistance is greatly appreciated, Thanks in advance.
    Separate Mesh Components
    Skeletal Mesh Merge
    GOD of DREAMs: A Unique FTPS/RPG Sandbox MMO

    #2
    Reducing draws does not improve my FPS. Reducing the Polygon Count does. I currently do not see any benefit to skeletal mesh merge
    GOD of DREAMs: A Unique FTPS/RPG Sandbox MMO

    Comment


      #3
      Wouldn't merging 2 pieces remove the adjacent tris? Meaning you remove a few poligons per piece merged and therefore increase performance? (Insignificantly, because it's like 10 to 20 tris total per merge on a good model)

      Comment


        #4
        Originally posted by MostHost LA View Post
        Wouldn't merging 2 pieces remove the adjacent tris? Meaning you remove a few poligons per piece merged and therefore increase performance? (Insignificantly, because it's like 10 to 20 tris total per merge on a good model)
        I dont know if the skeletal mesh merge code works that way. I can see draw calls drop, but the polygon count stays the same and fps stays the same. Ill try to post a video later.
        GOD of DREAMs: A Unique FTPS/RPG Sandbox MMO

        Comment


          #5
          MostHost LA ,

          Here's the video I promised. I rewrote the plugin code and changed up my method of benchmarking. I dont see code that removes the adjacent tris. Supposedly, the reduction is in the number of draw calls by merging multiple meshes into a single batch, minimizing state changes needed to draw each object. Reduces CPU cost. LOD is also taken into consideration. But, I dont see that behavior with the stats I'm looking at. Interesting enough, when using meshmerge I see draw calls/triangles drawn and FPS increases. When using separate mesh components. the opposite occurs draw calls/triangles drawn and FPS decrease.

          The result: There IS a FPS performance boost when merging, but, its only noticeable if the using the same material. So the use of a Texture Atlas appears justified. I dont understand whats going on with the stats.
          Skeletal Mesh Merge The 256 Test
          GOD of DREAMs: A Unique FTPS/RPG Sandbox MMO

          Comment


            #6
            I would zip this up and submit a bug report, at worse they tell you it's no bug, but at least you'll get an answer direct from the devs of the engine.
            Obviously the really low FPS is more due to the skeletal meshes then it is to the mesh-merge stuff, but the opposite stat reading is really odd.

            Comment


              #7
              FPS is all about optimizing bottlenecks.

              With a large number of skeletal meshes, you can easily be cpu bound due to pose evaluation. There are several different approaches to optimize skeleton evaluation - eg Multi Threaded Animation Update and the FastPath, URO, etc... see https://docs.unrealengine.com/en-US/...ion/index.html


              Use Stat Unit to figure out if you are Render ,Draw, or CPU bound.

              Render might mean draw less polys.
              Draw might mean reduce draw calls.
              CPU might mean too many skeletons.
              https://www.casualdistractiongames.com

              Comment


                #8
                If the separate mesh components use different materials, you'll get no draw call reduction at all because each different material still needs a separate draw call.

                Comment

                Working...
                X