Commit Graph

45 Commits

Author SHA1 Message Date
Patrick Boutot
35e97f55a6 Slate: Split the Invalidation update loop for better performance tracking.
#preflight 60c108e31ab0310001892cca

[CL 16612339 by Patrick Boutot in ue5-main branch]
2021-06-09 16:49:03 -04:00
Patrick Boutot
370cfaa4ca Slate: Remove some shared ptr copy. Fix slot access in FChildren and add a ForEach function.
#jira UE-115497
#rb vincent.gauthier
#preflight 60b524a6f45a940001e24a28

[CL 16510610 by Patrick Boutot in ue5-main branch]
2021-05-31 15:42:59 -04:00
Patrick Boutot
097426f18c Slate: Add update flag for volatile prepass. These widgets always need a prepass in fastpath. Fix issue with collapsed, the desired size was not updated when a parent was also collapsed. Fix the wrong position of elements inside a Retainer when the Retainer moves. Keep an array of all widgets that always need to be updated (tick, timer, paint). That prevents notifying the proxy and the final list once the widget got painted and ensure that all elements are updated.
#preflight 609aa2bc8f637500016ce3f2

[CL 16276861 by Patrick Boutot in ue5-main branch]
2021-05-11 14:15:32 -04:00
Patrick Boutot
f46af25282 Slate: Fix attributes update order in GlobalInvalidation.
[CL 16050094 by Patrick Boutot in ue5-main branch]
2021-04-19 09:03:16 -04:00
Patrick Boutot
ee9c7f8dcb Slate: Move visibility flag to WidgetProxy. Keep track of the Collapsed and the Visible state to update the Attribute as in SlowPath. Convert RenderTransform and RenderTransformPivot to SlateAttribute. Make the Visibility attribute update first (needs more work in the SlateAttributeInitializer to enforce it). Update Attribute in 2 steps. Update the Collapsed first (that can change the visibility), then update the "not collapsed" attribute.
#fyi mikko.mononen, sebastian.nordgren, lauren.barnes
#review-16007738 vincent.gauthier

[CL 16007736 by Patrick Boutot in ue5-main branch]
2021-04-14 12:59:44 -04:00
Patrick Boutot
653f4981cf Slate: Remove duplicated UpdateFlag in WidgetProxy.
#jira UE-107822
#rb vincent.gauthier
#preflight 605ce693a8aabd00017a707d

[CL 15834996 by Patrick Boutot in ue5-main branch]
2021-03-25 19:05:43 -04:00
Patrick Boutot
73f1355ee0 Slate: Fix bugs with GlobalInvalidation and SlateAttributes.
Rework the PreInvalidate algo to make it more clear the order of the different invalidations should be processed.
Add a flag to FWidgetAttributeIterator since MoveToWidgeIndexOnNextAdvance was using Invalid as the invalid state and the last element.
Rework the failed condition for the "Slate.InvalidationRoot.Verify*" to stop the process and only output once the error.
Only add the widget to the FinalUpdateList if an update is needed.
#preflight 605b7fb2d88d2d0001be8520

[CL 15805546 by Patrick Boutot in ue5-main branch]
2021-03-24 15:05:05 -04:00
Patrick Boutot
4e0d784c3f Slate: Update child order invalidation in order similar to other invalidation. It create a path for other invalidations to be processed in that same order. It reduce the number of Layout invalidation that are already processed by the child order invalidation. Add Slate Attribute InvalidationWidgetReason. For FastUpdate, add list of attributes that need to be updated each frame.
[CL 15398555 by Patrick Boutot in ue5-main branch]
2021-02-12 14:16:03 -04:00
Marc Audy
bf80889353 UE5/Release-Engine-Staging to UE5/Main
This represents UE4/Main up to CL# 14958402

[CL 15028197 by Marc Audy in ue5-main branch]
2021-01-08 19:56:07 -04:00
Patrick Boutot
2f6348b707 Slate: Update WidgetList with FParse::Bool.
#rnx

[CL 14954282 by Patrick Boutot in ue5-main branch]
2020-12-18 07:28:31 -04:00
Marc Audy
ada7c144fa Merge //UE5/Release-Engine-Staging @14903491 to //UE5/Main
[CL 14906022 by Marc Audy in ue5-main branch]
2020-12-11 14:21:20 -04:00
Patrick Boutot
c8b2ae9472 Slate: Add SlateInvalidationWidgetList a container, similar to a paged array, that can update the fast path list faster. It uses 2 indexes instead of one. It only rebuilds the elements that are affected by the update. Use FSlateInvalidationWidgetIndex and FSlateInvalidationWidgetSortIndex. FWidgetProxy is currently used but will be phase out soon to remove duplication and improve performance.
#jira UE-99527, UETOOL-2349

[CL 14795597 by Patrick Boutot in ue5-main branch]
2020-11-20 08:38:28 -04:00
Patrick Boutot
595e36d594 WidgetReflector: Add support for GlobalInvalidation.
#rb vincent.gauthier

[CL 14781816 by Patrick Boutot in ue5-main branch]
2020-11-18 16:33:17 -04:00
Marc Audy
7379fa99c5 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14229157
[CL 14233282 by Marc Audy in ue5-main branch]
2020-09-01 14:07:48 -04:00
Marc Audy
a7c9001a94 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14075166
#rb
#rnx

[CL 14075271 by Marc Audy in ue5-main branch]
2020-08-11 01:36:57 -04:00
Marc Audy
11f5b21210 Merging //UE5/Release-Engine-Staging @ 13752110 to Main (//UE5/Main)
#rnx

[CL 13753156 by Marc Audy in ue5-main branch]
2020-06-23 18:40:00 -04:00
bob tellez
313066bebd Back out changelist 13065813. Likely cause of AutoTest assert
[FYI] Vincent.Gauthier

#ROBOMERGE-SOURCE: CL 13120511 via CL 13120512 via CL 13120518
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v687-13115495)

[CL 13120521 by bob tellez in Main branch]
2020-04-30 13:23:54 -04:00
vincent gauthier
a2a9200bc3 Fix to a bug where InvalidationPanel failed to update correctly when used in another panel. This could have lead to widget not updating display when they are properly invalidated.
#rb Matt.Kuhlenschmidt
[FYI] Nick.Darnell



#ROBOMERGE-SOURCE: CL 13065813 via CL 13065814 via CL 13065819
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v686-13045012)

[CL 13065824 by vincent gauthier in Main branch]
2020-04-29 11:16:39 -04:00
lukasz furman
1a33ae7203 fixed crash on rebuilding UI invalidation path
[FYI] Nick.Darnell


#ROBOMERGE-SOURCE: CL 11459874 via CL 11459877 via CL 11459880
#ROBOMERGE-BOT: (v654-11333218)

[CL 11459881 by lukasz furman in Main branch]
2020-02-17 10:37:19 -05:00
Rolando Caloca
5b82f15def Copying //UE4/Dev-RenderPlat-Staging@11388153 to //UE4/Main
#rb none
#rnx

[CL 11388545 by Rolando Caloca in Main branch]
2020-02-12 13:27:19 -05:00
nick darnell
12f10b22eb Slate - Faster and safer draw element submitting for invalidation painting. This should fix issues with difficult to reproduce crashes involving cached element lists that have been deleted but are being accessed (suspected).
Improved CSV stats we're tracking for cached elements.  This version should fix the issue with weakptrs getting corrupted.

Removing memstacks and using inline allocators with enough slack, the memstacks don't work as expected over multiple frames.

Cleaning up cached lists from the new array when the corresponding widget's handle is cleaned up.

#author Matt.Kuhlenschmidt
#editor Nick.Darnell
#rb Nick.Darnell
[FYI] Matt.Kuhlenschmidt, Andrew.Ladenberger




#ROBOMERGE-SOURCE: CL 11068394 via CL 11068413 via CL 11068420
#ROBOMERGE-BOT: (v637-11041722)

[CL 11068429 by nick darnell in Main branch]
2020-01-20 16:30:39 -05:00
bob tellez
2f797bdf39 Back out changelist 10981122. Client crash
[FYI] Nick.Darnell


#ROBOMERGE-SOURCE: CL 11025062 via CL 11025214 via CL 11025315
#ROBOMERGE-BOT: (v633-10983880)

[CL 11025423 by bob tellez in Main branch]
2020-01-16 00:43:13 -05:00
nick darnell
2c5c6f23d5 Slate - Faster and safer draw element submitting for invalidation painting. This should fix issues with difficult to reproduce crashes involving cached element lists that have been deleted but are being accessed (suspected).
Improved CSV stats we're tracking for cached elements.  This version should fix the issue with weakptrs getting corrupted.

Removing memstacks and using inline allocators with enough slack, the memstacks don't work as expected over multiple frames.

#author Matt.Kuhlenschmidt
#editor Nick.Darnell
#rb Nick.Darnell
[FYI] Matt.Kuhlenschmidt, Andrew.Ladenberger




#ROBOMERGE-SOURCE: CL 10981122 via CL 10981129 via CL 10981131
#ROBOMERGE-BOT: (v632-10940481)

[CL 10981133 by nick darnell in Main branch]
2020-01-14 09:34:05 -05:00
nick darnell
cf563e8faa Undo changelist 10949647
#ROBOMERGE-SOURCE: CL 10949682 via CL 10949683 via CL 10949684
#ROBOMERGE-BOT: (v632-10940481)

[CL 10949685 by nick darnell in Main branch]
2020-01-12 17:47:35 -05:00
nick darnell
0259841247 Slate - Faster and safer draw element submitting for invalidation painting. This should fix issues with difficult to reproduce crashes involving cached element lists that have been deleted but are being accessed (suspected).
Improved CSV stats we're tracking for cached elements.  This version should fix the issue with weakptrs getting corrupted.

Additional changes to try and solve issues with tests.

#author Matt.Kuhlenschmidt
#editor Nick.Darnell
#rb Nick.Darnell
[FYI] Matt.Kuhlenschmidt, Andrew.Ladenberger




#ROBOMERGE-SOURCE: CL 10949647 via CL 10949648 via CL 10949649
#ROBOMERGE-BOT: (v632-10940481)

[CL 10949650 by nick darnell in Main branch]
2020-01-12 16:28:32 -05:00