Commit Graph

76 Commits

Author SHA1 Message Date
ben hoffman
d162291504 Add a test for the performance of evaluating input modifiers in Enhanced Input. This test will just tick the player input with a few input modifiers a bunch of times and report the min, max, and median timings for it.
This will make for a good A/B test when optimizing modifiers, which at the moment are the most expensive part of enhanced input ticking.

#rb justin.hare
#rnx

[CL 33872525 by ben hoffman in ue5-main branch]
2024-05-23 15:53:08 -04:00
robert manuszewski
3a4c065dba Restoring EInternalObjectFlags::Unreachable to make sure FObjectItem::IsUnreachable() is thread safe.
Deprecated GReachableObjectFlag, GMaybeUnreachableObjectFlag and GUnreachableObjectFlag. Moved the first two to an internal FGCFlags class which is the only thing that can manipulate GC reachability flags.

Deprecated a bunch of FUObjectItem functions that could manipulate reachability flags. These functions will be removed in UE 5.6.

#rb danny.couture, Johan.Torp

[CL 33716377 by robert manuszewski in ue5-main branch]
2024-05-17 03:32:15 -04:00
ben hoffman
0c75ece16d Add LLM memory tags for EKeys and the FKeyManager to reduce the number of "untagged" allocations
#jira UE-154196
#rnx
#rb Phillip.Kavan

[CL 33307946 by ben hoffman in ue5-main branch]
2024-04-29 14:17:12 -04:00
ben zeigler
7495e4cc00 Change FTickableGameObjects that use the soon-to-be-deprecated IsAllowedToTick to instead use IsTickable if it is actually needed
#jira UE-204963
#rb ben.hoffman

[CL 32402603 by ben zeigler in ue5-main branch]
2024-03-21 12:04:02 -04:00
oscar burga
50a511dcd3 EnhancedInputSubsystem continuous input injections are now handled through a managed map instead of adding and removing from root set to prevent GC.
FMockedEnhancedInputSubsystem is now a UCLASS so it can properly implement the managed map for the interface.

#rb ben.hoffman

#tests PIE touch input simulation, ran input automation tests

[CL 30241210 by oscar burga in ue5-main branch]
2023-12-11 12:22:35 -05:00
robert manuszewski
5acf09e035 Support for Incremental Gather Unreachable Objects
Split unreachable clusters destruction to DissolveUnreachableClusters (non-incremental as it's very fast)
Flipping MaybeUnreachable -> Unreachable flag is now a single Swap() function call (MaybeUnreachable / Unreachable flags are deprecated and replaced with interchangable Reachability flags)
GatherUnreachableObjects will now only gather unreachable objects for NotifyUnreachableObjects call and perf gains during unhashing and purging all objects.
Enable with gc.AllowIncrementalGather=1

#rb Johan.Torp, PJ.Kack

[CL 30033914 by robert manuszewski in ue5-main branch]
2023-12-01 04:39:57 -05:00
marc audy
763a611985 Fix C4072 warnings
#rnx

[CL 29852844 by marc audy in ue5-main branch]
2023-11-20 17:26:53 -05:00
ben hoffman
4aa0787d90 Add a flag on Default Mapping Contexts for Enhanced Input to register with the User Input settings by default.
#rb jules.blok

[CL 28051194 by ben hoffman in ue5-main branch]
2023-09-20 15:33:58 -04:00
robert manuszewski
d3991fec9b Fixing potential compile errors ahead of enabling TObjectPtr GC barrier
#rb trivial

[CL 26868625 by robert manuszewski in ue5-main branch]
2023-08-05 06:09:54 -04:00
ben hoffman
79cd1dad96 Update the label on the asset creation tab to mark Player Mappable Input Config types as deprecated
#rb justin.hare
#rnx

[CL 26775325 by ben hoffman in ue5-main branch]
2023-08-02 12:00:36 -04:00
ben hoffman
33cd570223 Fix a bad include that was automatically added
#rb trivial
#rnx

[CL 26418736 by ben hoffman in ue5-main branch]
2023-07-17 17:42:28 -04:00
ben hoffman
872cae6afd Mark the test input action to not show up in a class drop down
#rb trivial
#rnx

[CL 26344459 by ben hoffman in ue5-main branch]
2023-06-30 10:54:34 -04:00
ben hoffman
ae29db55de Add Unit tests for player mappable keys
#jira UE-188470
#rb me
#rnx

[CL 26292514 by ben hoffman in ue5-main branch]
2023-06-28 14:17:54 -04:00
ben hoffman
49ddb1d8f5 Mark all exec pins as advanced view on Input Action event nodes except for "Triggered". Most of the time the triggered event pin is what users should be connecting to, and making the other pins hidden will improve first time user UX and make it more obvious what pin you should be hooking up to.
There is an editor preference to change what pins show up by default in blueprints, but this change will hopefully point people towards using Input Triggers more instead of relying on undefined input behaviors and improve the first time user experience.

#jira UE-169056
#rb trivial
#preflight 645571d7d77a82d6a790be89

[CL 25395035 by ben hoffman in ue5-main branch]
2023-05-09 16:28:48 -04:00
ben hoffman
ade7c26f12 Remove dependency on InputBlueprintNodes from the InputEditor Module.
The Input Editor module has several features that are using the K2Nodes from enhanced input when it doesnt need to. The Blueprint Node logic should be kept in its own module.

This will allow the K2Nodes to actually read from editor settings and preferences in the rest of enhanced input, which would otherwise cause a circular depedency in the build graph.

This change is really just moving some functions from one module to another, neither module is publically exposed so no deprecation is required.

#rb trivial
#rnx
#preflight 645914ab4c3ec54e6e1070ec

[CL 25375925 by ben hoffman in ue5-main branch]
2023-05-08 15:46:28 -04:00
ben hoffman
824216e522 Add a Slate Notification if you add an Input Action that already has mappings in it within an IMC
#jira UE-161462
#rb nate.strohmyer
#rnx
#preflight skip

[CL 25363342 by ben hoffman in ue5-main branch]
2023-05-05 21:37:23 -04:00
DoubleDeez
36683495a9 PR #10403: Fix not being able to Copy & Paste the Mappings list in an Input Mapp? (Contributed by DoubleDeez)
#jira UE-184724
#rb me
#preflight skip

[CL 25309619 by DoubleDeez in ue5-main branch]
2023-05-02 18:24:17 -04:00
ben hoffman
4f75e6a7e7 Limit the length of a player mappable name to the max length of FName's to properly check for the max length.
#jira UE-181341
#rb jodon.karlik
#preflight skip

[CL 25309609 by ben hoffman in ue5-main branch]
2023-05-02 18:23:50 -04:00
yohann dossantos
8cb2e71dea - Fixed drag n drop issue with rows having expanded items.
=> code from CL 17423372 was disabling it explicitely, but I couldn't find any reason or have any repro. The comment talk about disabling between an item and its child, while with a EItemDropZone::BelowItem, it correspond to the bottom part of an item, and not the bottom item, so having the child item expanded or not won't change the drag n drop behavior.
- Fixed drag n drop issue for Input Mapping Context, where drag n dropping could give deterministic but incorrect result when more than 1 mapping exists for a group.
=> the reordering algorithm used requires that the content of the array is ordered by group, while it was not necessarily the case. Starting from this CL, it will (slower but safer algorithm).
- Prevent the drag n drop for Input Mapping Context between rows that are not part of the same parent node.


Tests:
-opened various Input Mapping Context from QA Game, like /Maps/Framework/EnhancedInput/EI_HelperAssets/Controls_3rdPerson/IMC_3rdPerson_Controls.uasset, that was failing 100% on some actions. Drag n dropped groups (collapsed or expanded), even on the last one, and on individual entries with 100% success. Did a lot of drag n drop test (between close elements, first and last, last and first, first and middle,...)
-tried to drag n drop across entries from different parent => it was blocked as expected.
-undo/redo after those operations.
-used drag n drop in other contexts (media play list, data table), no regression noticed when drag n dropping elements.

#jira UE-157906
#rb nate.strohmyer, karen.jirak
#preflight 644fd08e1c2846595c454ffa

[CL 25284259 by yohann dossantos in ue5-main branch]
2023-05-01 11:11:21 -04:00
ben hoffman
35daf13171 Deprecate the Input Editor pieces that reference Player Mappable Input Configs
#jira UE-175936
#prerflight 644ad724b208f61af83532af
#rb trivial

[CL 25225421 by ben hoffman in ue5-main branch]
2023-04-27 18:48:10 -04:00
ben hoffman
119aaac9f9 Specify what asset is using the mapping name if one exists already, making it much easier to track down in use mappings :)
Add in a cvar 'EnhancedInput.Editor.EnableMappingNameValidation' to toggle name validation, just to make sure that we can do sanity checks that the validation is actually accurate

#rb nate.strohmyer
#rnx
#preflight 643712e90c4277fc0bce6fdf

[CL 25018938 by ben hoffman in ue5-main branch]
2023-04-12 19:29:49 -04:00
ben hoffman
f180f2cf58 Add a name validator to player mappable setting names. This makes it easier to avoid mistakes and possibly stomping a key binding.
The "Name" here is the FName that will be used as a key to save each key mapping during serialization, so they should be unique for each key mapping that you want the player to be able to set.

#jira UE-177248
#preflight 63f4ef2290198dffba48f6ee
#rb benjamin.fox
#rb nate.strohmyer
#rnx

[CL 24344605 by ben hoffman in ue5-main branch]
2023-02-21 13:37:27 -05:00
ben hoffman
c7be5a35ea Deprecate the old FPlayerMappableOptions struct in favor of the more extensible PlayerMappableKeySettings.
Automatically populate the newer player mappable key settings based on any old data in the player mappable options.

Clean up call sites to the now deprecated stuff

#jira UE-175936
#rb benjamin.fox
#rnx
#preflight 63e54d307250a911fa85d9f7

[CL 24135344 by ben hoffman in ue5-main branch]
2023-02-11 11:38:39 -05:00
ben hoffman
a7e0d55954 Only attempt to auto upgrade to Enhanced Input if the project has a name. This solves an issue where you would get toasts about EI from the project launcher.
#jira UE-176155
#rb justin.hare
#pf 63e1344b797b029c0a65d67c

[CL 24034353 by ben hoffman in ue5-main branch]
2023-02-06 13:38:52 -05:00
nate strohmyer
80a4c6d6b8 Combo trigger Improvements.
Fixing issues with combo triggers being overriden
Can specify events that progress/cancel combo
some smaller UX fixes

#Jira UE-170233, UE-169334
#rb ben.hoffman
#preflight 63bf4f87c543a64b7d7320f6

[CL 23747881 by nate strohmyer in ue5-main branch]
2023-01-17 18:37:06 -05:00