Commit Graph

88 Commits

Author SHA1 Message Date
jordi rovira
ad70584cc5 [mutable] Move resource key cache to the System instead of keeping in in every Model.
Add a CVar to control the size of the generated resource cache.
Modify the generated resource cache IDs to include the root address and save time and boilerplate on resource generation.
Cleanup streamers by splitting reader and writer.
[REVIEW] [at]pere.rifa
[REVIEW] [at]gerard.martin
#rnx

[CL 26229303 by jordi rovira in ue5-main branch]
2023-06-26 02:16:47 -04:00
jordi rovira
db4b160865 [mutable] Ensure more temporary image memory is tracked for the budget control.
Fix bug with image magnify on non-blank images.
#rnx
[REVIEW] [at]genis.sole

[CL 26206355 by jordi rovira in ue5-main branch]
2023-06-23 02:01:13 -04:00
alexei lebedev
0c08cd8f31 #rnx
[CL 26178600 by alexei lebedev in ue5-main branch]
2023-06-22 06:24:44 -04:00
alexei lebedev
6bb081518a #rnx
[CL 25929632 by alexei lebedev in ue5-main branch]
2023-06-12 11:06:50 -04:00
pere rifa
03f3c0022b [Mutable] Added logging to most API methods to get and set parameter values of the descriptor.
- Warn about uncompiled CO and missing parameters.
- Small changes in naming some variables to keep them consistent between methods.

#rnx
#rb alexei.lebedev
#rb gerard.martin
[FYI] [at]daniel.broder

[CL 25927467 by pere rifa in ue5-main branch]
2023-06-12 09:36:23 -04:00
gerard martin
efaaed02af [Mutable] Better Load/Save descriptor documentation.
- Changed API to make clear when bUseCompactDescriptor is true, and its implications.
- Improved documentation.

[REVIEW] [at]alexei.lebedev
#rnx

[CL 25868900 by gerard martin in ue5-main branch]
2023-06-08 08:38:29 -04:00
gerard martin
debfcc8050 [Mutable] Renamed TODOs.
#rnx

[CL 25761053 by gerard martin in ue5-main branch]
2023-06-02 10:39:09 -04:00
gerard martin
4347ffc886 [Mutable] Change ClearWorkingMemoryOnUpdateEnd CVar name.
[FYI] [at]alexei.lebedev
#rnx

[CL 25721620 by gerard martin in ue5-main branch]
2023-06-01 04:30:20 -04:00
jordi rovira
23df59ed92 [mutable] Ensure full mip chain after patch operation, if necessary.
Honor "disable layouts" flag in debugger.
Fallback to ensure full mipmap chain reaches Unreal in case Mutable fails.
Bypass mipmap operation if all mips are already there.
#preflight 6476210b0d55081f541d44b6
#rnx
[REVIEW] [at]pere.rifa

[CL 25697771 by jordi rovira in ue5-main branch]
2023-05-31 02:39:45 -04:00
pere rifa
8155615c89 [Mutable] Cache merged skeletons to avoid loading and merging skeletons with every update.
Add all skeletons involved in the merge as compatible.

#rnx

[CL 25663927 by pere rifa in ue5-main branch]
2023-05-29 10:25:59 -04:00
jordi rovira
10a2a5036b [mutable] Fix bug with image-size-relative operation setting incorrect size. Better message and checks for mutable images with unexpected sizes.
Some additional portability and indentation cleanups.
#preflight 6470e2be6f68dafa2f4214e8
#rnx
[REVIEW] [at]pere.rifa

[CL 25650591 by jordi rovira in ue5-main branch]
2023-05-26 15:05:33 -04:00
gerard martin
5e30b8780d [Mutable] Fix crash when closing the editor.
[REVIEW] [at]alexei.lebedev
#preflight 646dcea9807b157b8b0d58f3
#rnx

[CL 25602690 by gerard martin in ue5-main branch]
2023-05-24 10:22:36 -04:00
alexei lebedev
7786e4642b #rnx
[CL 25601934 by alexei lebedev in ue5-main branch]
2023-05-24 09:51:14 -04:00
jordi rovira
9c1cbd7eaf [mutable] Implement memory budget control for image operations.
Cleanup memory budget interface.
Remove unused image operations.
#prefight 646c958c4422ba05f47ea1e6
#rnx
[REVIEW] [at]genis.sole
[REVIEW] [at]gerard.martin
[REVIEW] [at]pere.rifa
[REVIEW] [at]alexei.lebedev

[CL 25598403 by jordi rovira in ue5-main branch]
2023-05-24 02:50:03 -04:00
gerard martin
4de6e3074d [Mutable] Fix issues with Texture Parameters.
This CL solves two main issues:
- Texture Parameters where choosing the incorrect texture. Solved by not reusing ids.
- Texture Parameter were released to early. Solved by added a reference counter system.

Changes:
- Image Provider now cache the images automatically when there is an update. The user still can force to cache/uncache images at any given time.
- Add Core FString serialization functions.
- Changed the type of EXTERNAL_IMAGE_ID.
- Used changed hardcoded types to EXTERNAL_IMAGE_ID.
- Removed SetTextureParameterSelectedOptionT from CO API.

Lifetime of a Texture Parameter:
1. UpdateSkeletalMeshAsync called
2. All Texture Parameters inside Parameters are cached (System reference = 1)
3. MIP Data Provider is created (System reference = 2)
4. FinishGlobalUpdate (System reference = 1)
5. MIP Data Provider is destoryed (System reference = 0). Uncaches Texture Parameters.

[REVIEW] [at]alexei.lebedev, [at]jordi.rovira, [at]daniel.broder
#preflight 64663452ca2c3d1f2e5ed73f
[FYI] [at]genis.sole
#rnx

[CL 25541872 by gerard martin in ue5-main branch]
2023-05-19 06:11:26 -04:00
gerard martin
f9509530d5 [Mutable] Fixed MIP tasks holding time critical Update tasks.
- Created a new FMutableTaskGraph holding all functoins and members related to the Mutable tasks system.
- Added new Low Priority Mutable Tasks.
- Allow canceling low priority tasks.
- Moved ClearMutableTaskIfDone from AdvanceCurrentOperation to System's Tick.

[REVIEW] [at]alexei.lebedev
#preflight 6461e223cf788a25580de9a2
#rnx

[CL 25470981 by gerard martin in ue5-main branch]
2023-05-15 05:50:59 -04:00
pere rifa
7277d848c1 [Mutable] Reuse textures between LODs when using AutoLODs from mesh
#rnx
#rb jordi.rovira
#rb alexei.lebedev

[CL 25402615 by pere rifa in ue5-main branch]
2023-05-10 08:29:50 -04:00
pere rifa
05693316de [Mutable] Add per surface BoneMaps to reduce the required bones per section on the final mesh.
+ Addapt MutableMeshPreviewUtils and related classes to use the new BoneMaps structure.
+ Remove the need to specify a reference skeletal mesh to generate the meshes in the debugger.
+ Fix MutableMeshViewport FOV.
+ Change the naming of some variables to follow the UE standards.

#rnx
#rb jordi.rovira

[CL 25402031 by pere rifa in ue5-main branch]
2023-05-10 07:27:16 -04:00
gerard martin
769e4c253a [Mutable] Fix mutable.StreamingCacheMemory 0 case.
[REVIEW] [at]jordi.rovira
[FYI] [at]genis.sole
#rnx

[CL 25385400 by gerard martin in ue5-main branch]
2023-05-09 07:39:18 -04:00
jordi rovira
3e18196b21 [mutable] Support texture references in the core.
#rnx
[REVIEW] [at]alexei.lebedev
[REVIEW] [at]pere.rifa
#preflight 644a7512693defa68d5eacb7

[CL 25238804 by jordi rovira in ue5-main branch]
2023-04-28 15:57:31 -04:00
daniel broder
3f1d475f05 Fixed compile error in non-Editor builds.
#UE5

[CL 25219903 by daniel broder in ue5-main branch]
2023-04-27 14:07:44 -04:00
daniel broder
4cedc533f6 Added logging an Error to UCustomizableObjectSystem::AddUncompiledCOWarning, and also added an optional parameter for the caller to add more info to the log (so we can easily log the source of the call to figure out what is being called that is trying to use a CO that hasn't been compiled yet).
Created a private helper function FCustomizableObjectInstanceDescriptor::AddUncompiledCOWarning(...), which makes sure the System exists, is valid, and isn't being destroyed before calling to AddUncompiledCOWarning on the System.

SetIntParameterSelectedOption(FString ParameterName,...) now ensures and calls to AddUncompiledCOWarning (which logs an error, makes an on-screen display, and sends a notfiication in Editor) if the CO that the descriptor is associated with is not compiled.  If it is compiled, but the named parameter is not found, it ensures (in non-shipping builds only) and logs an error (in all builds).

SetIntParameterSelectedOption((const int32 IntParamIndex, ...) now also ensure and calls AddUncompiledCOWarning  as the string version does if its CO is not compiled.  If it is compiled, but the IntParamIndex is invalid, it logs an error and bails.

(We should make similar ensure/logging changes to all other parameter type setters.
 I'll investigate that in the near future.)

#RB Joel.Anderson, Pere.Rifa



#UE5

[CL 25219708 by daniel broder in ue5-main branch]
2023-04-27 14:01:55 -04:00
alexei lebedev
3219e7149e [FYI] [at]henry.falconer, [at]ricard.rovira
#rnx

[CL 25211778 by alexei lebedev in ue5-main branch]
2023-04-27 05:10:23 -04:00
jordi rovira
61ca16c911 [mutable] Remove parameter decorations. Restore parameter relevancy calculations.
#rnx
[REVIEW] [at]gerard.martin
[REVIEW] [at]ricard.rovira
#preflight 644792c8773f23812d7d14d4

[CL 25177733 by jordi rovira in ue5-main branch]
2023-04-25 06:07:49 -04:00
alexei lebedev
ea35c16644 [FYI] [at]todd.eckert
#rnx

[CL 25174975 by alexei lebedev in ue5-main branch]
2023-04-24 22:59:10 -04:00