Commit Graph

99 Commits

Author SHA1 Message Date
jonathan bard
a3bca9782f Fixed ensure when analyzing the grass map count in parallel, but on the game thread
#jira UE-224151
#rb luc.eygasier, danny.couture
#p4v-cherrypick 36303913

[CL 36312078 by jonathan bard in 5.5 branch]
2024-09-16 15:11:23 -04:00
chris tchou
7486f936af Add validation to landscape subsystem assumptions to investigate crashes.
#rb luc.eygasier

[CL 35675363 by chris tchou in ue5-main branch]
2024-08-20 18:39:47 -04:00
jonathan bard
14472af0db Fixed incorrect parallel-for when retrieving the list of outdated landscape proxies
#rb chris.tchou, luc.eygasier
#jira UE-221322

[CL 35380855 by jonathan bard in ue5-main branch]
2024-08-07 16:39:41 -04:00
luc eygasier
ccf3442696 Prevents GetActionableMessage from ticking in PIE or simulating world.
Parallelize dirty landscape proxies check.

#jira UE-220551
#rb chris.tchou

[CL 35213152 by luc eygasier in ue5-main branch]
2024-07-31 10:36:08 -04:00
chris tchou
d7feed5e13 Make landscape texture streaming manager consider all other worlds when turning off streaming requests, to fix an assert when running PIE.
Also fixes an issue where the streaming manager was not being deleted when the landscape subsystem is deinitialized, potentially leading to a memory leak.

#rb jonathan.bard
#jira UE-218229

[CL 35113021 by chris tchou in ue5-main branch]
2024-07-26 13:14:54 -04:00
jonathan bard
c1e679c40d Removed redundant calls to SupportsLandscapeEditing when ticking landscape proxies for grass. This is to avoid O(N^2) complexity when iterating on landscape proxies for ticking grass.
#rb chris.tchou

[CL 34532280 by jonathan bard in ue5-main branch]
2024-06-20 12:09:55 -04:00
chris tchou
0f8f85f4ea Optimize of grass instance generation, replace TWeakObjectPtr with TObjectPtr
This saves about 9-15% of the update cost at runtime

#rb jonathan.bard

[CL 34140771 by chris tchou in ue5-main branch]
2024-06-05 17:13:58 -04:00
chris tchou
a797ecd070 Fix for landscape texture streaming getting disabled after garbage collection
Here we just reset the flag post-garbage collection to ensure streaming requests aren't lost

#rb jonathan.bard
#jira UE-214866

[CL 34140073 by chris tchou in ue5-main branch]
2024-06-05 16:51:42 -04:00
jonathan bard
ec48e0a9e0 Don't display landscape on-screen warnings while the landscape is being edited to avoid flickering of the message while stuff get updated in the background
#rb luc.eygasier, roey.borsteinas

[CL 33928916 by jonathan bard in ue5-main branch]
2024-05-27 14:42:12 -04:00
chris tchou
b0c2107e6b Fix for excessive material instance invalidation in Landscape PostLoad
Initial Editor Load:
	ALandscapeProxy::PostLoad		14.3s --> 385 ms
PIE:
	ALandscapeProxy::PostLoad		16.5s --> 31.6 ms

#rb brandon.dawson, jonathan.bard, luc.eygasier
#jira UE-212574

[CL 33498347 by chris tchou in ue5-main branch]
2024-05-07 18:01:23 -04:00
jonathan bard
337cfd7dbd Adjustments to actionable (landscape) messages UX:
* Added tooltip when the widget is collapsed to help the user understand what it's about without having to expand it
* Show the number of affected landscape actors even in the "dirty actors" case to help the user assess how much "out-of-date" the overall landscape is

Misc:
* Dirty actors are now handled part of out-of-date landscape proxy flags
* Optimized update by gathering all out-of-date flags at once (~33% of what it used to cost)
#rb luc.eygasier
#tests editor

[CL 32926879 by jonathan bard in ue5-main branch]
2024-04-12 08:45:48 -04:00
luc eygasier
7e99d6a926 Updates landscape actionable messages.
#jira UE-204527
#rb Jonathan.Bard

[CL 32336110 by luc eygasier in ue5-main branch]
2024-03-19 15:34:32 -04:00
luc eygasier
d48454bf5b Adds SActionableMessageViewportWidget in Viewport's toolbar.
This widget will host warnings or messages with the ability to automate actions for the user.

Current actionable messages:
* Invalid Landscape grassmaps, with associated rebuild action
* Invalid Landscape physical materials, with associated rebuild action
* Invalid Landscape nanite meshes with associated rebuild action
* Invalid grassmaps, physical materials, nanite meshes will be agregated to only one message if multiple rebuild are necessary
* Landscape proxy packages needs to be updated, with associated mark dirty action

#jira UE-204527

#rb Jonathan.Bard

[CL 32224398 by luc eygasier in ue5-main branch]
2024-03-13 15:34:54 -04:00
luc eygasier
29c904b3e3 Undo //Fortnite/Release-29.20/Engine/... changelist 32186488
#jira UE-204527

[CL 32191590 by luc eygasier in ue5-main branch]
2024-03-12 16:45:06 -04:00
luc eygasier
c409a75cc9 Adds SActionableMessageViewportWidget in Viewport's toolbar.
This widget will host warnings or messages with the ability to automate actions for the user.

Current actionable messages:
* Invalid Landscape grassmaps, with associated rebuild action
* Invalid Landscape physical materials, with associated rebuild action
* Invalid Landscape nanite meshes with associated rebuild action
* Invalid grassmaps, physical materials, nanite meshes will be agregated to only one message if multiple rebuild are necessary
* Landscape proxy packages needs to be updated, with associated mark dirty action

#jira UE-204527

#rb chris.tchou, jonathan.bard

[CL 32190792 by luc eygasier in ue5-main branch]
2024-03-12 16:29:49 -04:00
jonathan bard
482f350315 Removed deprecated code in landscape and water (anything prior to, and including, 5.3)
#rb chris.tchou

[CL 31690527 by jonathan bard in ue5-main branch]
2024-02-21 13:42:05 -05:00
chris tchou
b61d745e8e Build fix for non-editor compile issue caused by 31435399
#rb luc.eygasier

[CL 31437696 by chris tchou in ue5-main branch]
2024-02-13 13:45:52 -05:00
chris tchou
d711e15481 Fix to allow Landscape grass maps to update in editor when an out-of-date landscape is level instanced into the current level.
#rb jonathan.bard

[CL 31436177 by chris tchou in ue5-main branch]
2024-02-13 13:18:43 -05:00
chris tchou
fe222f2b68 Fix for ensures hit on Landscape creation undo.
After an undo, we double check the state of all of our streamed in textures.

#rb jonathan.bard

[CL 30928146 by chris tchou in ue5-main branch]
2024-01-26 12:05:47 -05:00
emanuel masciarelli
c88d6f7387 Added the ability to debug draw grass exclusion volumes via the grass.DrawExclusionVolumes cheat.
Also added the number of grass exclusion volumes to `stat foliage` since the exclusion volumes can really hit performance negatively right now.

#rb jonathan.bard
#tests PIE, Win64 Client
#rnx

[CL 30485258 by emanuel masciarelli in ue5-main branch]
2024-01-08 13:11:30 -05:00
jonathan bard
a4ede235c6 Added profile tags to landscape code called several times in editor
#rb luc.eygasier

[CL 30246363 by jonathan bard in ue5-main branch]
2023-12-11 14:48:05 -05:00
chris tchou
99570ed07c Fixes to make Runtime Grass Generation work on all platforms
- Use the correct landscape material on every platform.
- Use pooled render targets for render and readback, instead of UObject based render targets that may be deallocated by GC.
- Added an optional async fetch stage controlled by a cvar and disabled by default.
- Incorporated the check for zero into the grassmap readback copy to reduce the time spent in fetch.
- Small optimization on Populated components.
- Runtime grass is disabled by default, controlled by cvar.
- Converted editable opt-in to hidden opt-out on landscape proxy settings.

#rb jonathan.bard

[CL 30190260 by chris tchou in ue5-main branch]
2023-12-07 15:01:22 -05:00
don boogert
d222fbb136 Landscape: Added new CVar to control the number of simultaneous Landscape Nanite builds.
#rb jonathan.bard
#jira UE-199022

[CL 29575713 by don boogert in ue5-main branch]
2023-11-08 17:20:11 -05:00
chris tchou
5062c530e6 Async Runtime Grass Map Generation
Intended to save disk space and runtime memory, at the cost of generating grass density maps at runtime.

Enabled per platform via cvar "grass.GrassMap.UseRuntimeGeneration" (disabled by default), and enabled per landscape via the "bUseRuntimeGrassMapGeneration" object property (also disabled by default).  Both must be enabled at cook time for disk and memory savings.

Original review in Main:  https://p4-swarm.epicgames.net/reviews/29027747

#rb jonathan.bard
#tests console testers tested grass in cooked builds on all platforms, I ran and profiled game projects in editor and cooked standalone, and tested grass editing in game projects in editor

[CL 29539554 by chris tchou in ue5-main branch]
2023-11-07 18:20:01 -05:00
sarah noonan
982d79d9bb Remove invalid check for grass exclusion boxes every frame - instead only remove invalid entries after garbage collection.
[CL 29138385 by sarah noonan in ue5-main branch]
2023-10-26 12:01:20 -04:00