Grass Tool causing massive performance drop

Hey all,

So I ran the project on my end in the editor and during play and below are my results. I am not noticing the extreme drop in performance you guys are saying you experience. This does not mean I do not believe you, and just an observation as to what I am seeing on my end. We are working with some fairly powerful machines, so the difference in results could be due to hardware differences as well.

Painted Foliage in Editor

Landscape Grass in Editor

Painted Foliage PIE

Landscape Grass PIE

As you can see, I do have a slight difference is shadow depth cost when comparing painted foliage versus landscape grass, but not nearly as extreme as you are explaining. With all of this said, since there seem to be a number of users claiming this does occur on their end, which merits a bug report so our engineers can investigate further.

I will return to this post once I have reported the issue and have further information to share.

Thank you,

I just tested the demo map provided by as well.

For ShadowDepths I got 1.63ms with FoliagePainter map, For the GrassNode map I got 2.02ms. Not a huge increase for me, however I am not convinced there isn’t a major problem.

Recently I was considering buying an asset on the Marketplace, and the creator was advising against using much grass; he was reporting similar issues to this thread which I found surprising.

I was a huge fan of the Kite Demo, it handled lots of grass quite well, among other things. So I decided to create a new project and package the unmodified Kite Demo on 4.15. The performance was an unplayable slide show.

Then I reinstalled 4.8, re-downloaded the Kite Demo and packaged it again on 4.8.3, this time is was as smooth as I remembered it being. Something is clearly wrong.

Without doing a lot of further testing I can’t be sure the issues are related, but I’m hoping they are.

same issue here UE 4.15

Hey all,

So I went ahead and entered the bug report as mentioned. I appreciate everyone’s patience and for providing me with the necessary information to complete the report. Below is a link to the issue on our public tracker.

UE-43093

Once the issue has been addressed by our engineers the ticket will be updated and reflected in the public tracker. Let me know if you have further questions or need additional assistance.

Cheers,

Bumping this as I see the issue fix is targeted for 4.17. I had to stop using the grass material that performed so well in KiteDemo and all my other landscape projects in 4.15 . Similar to above comments these same projects work fine in older versions. A side by side comparison of KiteDemo on two different versions of the engine but on the same rig should help diagnose. It would be great to know what workarounds there are to get the performance back to where it was in the meantime ahead of the issue fix if there are any.

Workarounds would be to use the Foliage Paint tool as often as possible to avoid populating your entire scene with Grasses from the landscape grass tool. Secondly, if you do use the landscape grass tool I would look at reducing the cull distances and making sure you have established LODs to handle transitions. Try also reducing the density for the grass tool a bit as sometimes you can a convincing look with half the amount of foliage.

Aside from that, you will need to wait for the release we have it marked to be fixed. Thanks for your patience.

H

Glad I’m not the only one that noticed this issue

thank you Andrew

Well target fix was 4.16, then 4.17, now 4,18. Is there any hope to see it fixed before 4.19 ?

No problem. We are currently working to optimize the Landscape and Foliage tools to have better performance. We have made some progress, but some of these changes are not fully implemented just yet. Thanks for your patience while we work to improve these systems.

I’ve experienced the same problem with the Kite Demo when preparing a benchmark - see here: Systematic rendering performance problem with 4.17 - Debugging, Optimization, & Profiling - Unreal Engine Forums
In 4.14, everything runs smooth. Starting with 4.15 up to 4.17 the kite demo is a “mess” when it comes to performance - as you said, an “unplayable slide show”. Maybe its the grass tool, maybe something else. My tests showed that most of the frame time is spend in the Dynamic part of the BasePass,

I’m experiencing the same problem with Kite Demo on 4.17, on 4.14 it’s run smooth.
My rig is not that bad:
i7 4960X 6core 3.4GHz 64GB 2x nVidia 780 TI SLI
I’m getting around 6-8 fps in the open areas.

Hi, any update on the status of this bug? Basically the grass tool is unusable in production since March 2017… I can see UE-43093 is targetted to 4.18 but several bugs are targetted to some release but don’t make it into such release. This one is a major bug, can we be sure it will be handled in 4.18?

Any updates? :slight_smile:

Hi @,

I was wondering if you’re still seeing the exact same issue when using 4.18?

Simply want to be sure the info is still up to date, as i’m going to tackle this quite soon, so dont expect it for 4.19, it’s a big changes. As on my side on 4.19(early dev) i see the shadow depth cost to be really high in both cases, not only the grass one, so basically both behave the same using a GTX 1060.

And as said, the more component you have the higher the draw call counts, thus rendering cost. Grass system do not work the same way than the painted foliage. For painted foliage you have 1 component (thus 1 draw call) for each foliage type, where as for grass, you have 1 draw call for each landscape component + component for grass, as they are both relaying on the same distribution system.

Which come down to comparing system 1 to be :

  • 101 normal draw call (100 landscape components + 1 foliage component)
  • 101 shadow draw call (100 landscape components + 1 foliage component)
    = 202 draw calls

VS system 2

  • 200 normal draw call (100 landscape components + 100 foliage component)
  • 200 shadow draw call (100 landscape components + 100 foliage component)
    = 400 draw calls

Obviously the second one will have a much higher shadow cost.

I’m simply explaining so everyone is on the same page as of the current implementation.

As for Kite Demo performance, i can’t speak from before, but i can assure you guys that it’s not landscape and mostly not foliage related (from what i have seen, disabling grass didn’t increase perf that much)

Hope it help clarity a bit the current system.

Thanks

@eyoli I know there is perf issue in Kite demo, all i’m saying it that it’s not relate to landscape, and i’m quite certain it’s not foliage related either, as if you disable the grass rendering you dont gain that much fps.

Keep in mind that while optimizing the landscape rendering i used the Kite demo as a test map, and if you do a “stat landscape” you will see that the landscape is really not taking much of the rendering cost.

I would need to check the foliage to be 100% certain, but it’s something else that is costing a lot in this map, probably some new feature that were added in the engine, but the map was’nt updated accordingly to tweak params properly.

@Michel.Dupuis: you may want to test the Kite demo, if it is crawling like crazy there is a problem, last time I checked it was (not with 4.18 but 4.16 or 4.17).

@Michel.Dupuis: you may want to test the Kite demo, if it is crawling like crazy there is a problem, last time I checked it was (not with 4.18 but 4.16 or 4.17).

Hi Michel,

I’m testing on 4.18 now.
Here are my landscape settings:

https://i.imgur.com/ikZBm9a.jpg

Here’s the cost on GPU, around 8ms.

https://i.imgur.com/klzI1BH.jpg

Here’s the cost on GPU with a single bush (around 170 tris per instance), around 23ms.

https://i.imgur.com/SMSFWR8.jpg

I’m running a GTX 970 at 1080p.
Please note that while the landscape is 1x1 Kilometers, the grass is being spawned only on small circle around the player and is not covering the entire 1x1 Kilometers. Also there are 64 components total but there isn’t grass on all of them as you can see.

The massive performance cost is still coming from shadow depths as soon as grass node is used.
Also please notice that we’re dealing with only 1 mesh here where in outdoors we’d need many different pieces linked to the grass node.

If you need any additional information please let me know.
Thanks.

Can you provide some info on the mesh you’re using? i.e triangle counts, LOD counts, etc?

Thanks