diff options
author | mageven <62494521+mageven@users.noreply.github.com> | 2021-03-03 06:09:36 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-03 01:39:36 +0100 |
commit | ca5d8e58ddd0c089763645efcc58b5dc6614f8eb (patch) | |
tree | a5bca1cb574a50471d3fb1b6cc397f834ce3374d /ARMeilleure | |
parent | 31fca432a7274907c46f6ec254d54e96cb6446c6 (diff) |
Add progress reporting to PTC and Shader Cache (#2057)
* UI changes
* Add progress reporting to PTC & ShaderCache
* Account for null events and expand docs
Co-authored-by: Joshi234 <46032261+Joshi234@users.noreply.github.com>
Diffstat (limited to 'ARMeilleure')
-rw-r--r-- | ARMeilleure/Translation/PTC/Ptc.cs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/ARMeilleure/Translation/PTC/Ptc.cs b/ARMeilleure/Translation/PTC/Ptc.cs index 266bdba6..c931aaea 100644 --- a/ARMeilleure/Translation/PTC/Ptc.cs +++ b/ARMeilleure/Translation/PTC/Ptc.cs @@ -70,6 +70,10 @@ namespace ARMeilleure.Translation.PTC internal static PtcState State { get; private set; } + // Progress update events + public static event Action<bool> PtcTranslationStateChanged; + public static event Action<int, int> PtcTranslationProgressChanged; + static Ptc() { InitializeMemoryStreams(); @@ -772,6 +776,8 @@ namespace ARMeilleure.Translation.PTC ThreadPool.QueueUserWorkItem(TranslationLogger, profiledFuncsToTranslate.Count); + PtcTranslationStateChanged?.Invoke(true); + void TranslateFuncs() { while (profiledFuncsToTranslate.TryDequeue(out var item)) @@ -820,6 +826,7 @@ namespace ARMeilleure.Translation.PTC threads.Clear(); _loggerEvent.Set(); + PtcTranslationStateChanged?.Invoke(false); PtcJumpTable.Initialize(jumpTable); @@ -833,15 +840,15 @@ namespace ARMeilleure.Translation.PTC private static void TranslationLogger(object state) { - const int refreshRate = 1; // Seconds. + const int refreshRate = 100; // ms int profiledFuncsToTranslateCount = (int)state; do { - Logger.Info?.Print(LogClass.Ptc, $"{_translateCount} of {profiledFuncsToTranslateCount} functions translated"); + PtcTranslationProgressChanged?.Invoke(_translateCount, profiledFuncsToTranslateCount); } - while (!_loggerEvent.WaitOne(refreshRate * 1000)); + while (!_loggerEvent.WaitOne(refreshRate)); Logger.Info?.Print(LogClass.Ptc, $"{_translateCount} of {profiledFuncsToTranslateCount} functions translated"); } |