From ca5d8e58ddd0c089763645efcc58b5dc6614f8eb Mon Sep 17 00:00:00 2001 From: mageven <62494521+mageven@users.noreply.github.com> Date: Wed, 3 Mar 2021 06:09:36 +0530 Subject: 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> --- ARMeilleure/Translation/PTC/Ptc.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'ARMeilleure') 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 PtcTranslationStateChanged; + public static event Action 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"); } -- cgit v1.2.3